Водич за Пајтон 2.6/For петље

Овде је нова вежба куцања за ово поглавље:
једандодесет = range(1, 11)
for бројање in једандодесет:
print бројање
и увек присутни излаз:
1
2
3
4
5
6
7
8
9
10
Излаз изгледа страшно познато, али код програма изгледа другачије. Прва линија користи range функцију. Функција range узима два аргумента као range(почетак, крај). почетак је први број који се ствара. крај је за један већи од последњег броја. Имајте на уму да се овај програм могао урадити на краћи начин:
for бројање in range(1, 11):
print бројање
Ево неких примера који показују шта се дешава са range командом:
>>> range(1, 10)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(-32, -20)
[-32, -31, -30, -29, -28, -27, -26, -25, -24, -23, -22, -21]
>>> range(5,21)
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>>> range(5)
[0, 1, 2, 3, 4]
>>> range(21, 5)
[]
Следећа линија for бројање in једандодесет: користи for контролну структуру. for контролна структура изгледа као for променљива in листа:. листа кроз кроз коју је прошао почевши од првог елемента листе и иде до последњег. Као што for иде кроз сваки елемент листе ставља сваки у променљива. То дозвољава да се променљива која се користи у сваком сукцесивном времену покреће кроз for петљу. Овде је други пример (не морате да га куцате) за приказивање:
демолиста = ['живот', 42,'универзум', 6, 'и', 9, 'све']
for члан in демолиста:
print "Тренутни члан је:",
print члан
Излаз је:
Тренутни члан је: живот
Тренутни члан је: 42
Тренутни члан је: универзум
Тренутни члан је: 6
Тренутни члан је: и
Тренутни члан је: 9
Тренутни члан је: све
Приметите како for петља иде кроз и поставља члан сваком елементу листе. Обратите пажњу како, ако не желите print команда да иде до следеће линије додај зарез на крају изјаве(нпр. Ако желите да одштампате нешто друго на тој линији). Па, за шта је добра for петља? Прва употреба је да иде кроз све елементе листе и уради нешто са сваким од њих. Ево га брз начин да саберете све елементе:
листа = [2, 4, 6, 8]
збир = 0
for број in листа:
збир = збир + број
print "Збир је:", збир
Са једноставним излазом:
Збир је: 20
Или можете да напишете програм да бисте сазнали да ли постоје дупликати у листи, овако програм ради:
листа = [4, 5, 7, 8, 9, 1, 0, 7, 10]
листа.sort()
прет = листа[0]
del листа[0]
for члан in листа:
if прет == члан:
print "Дупликат", прет, "је нађен"
прет = члан
И за добро мерење:
Дупликат 7 је нађен
Добро, па како се то ради? Овде је специјална верзија отклањања грешака која ће вам помоћи да разумете (не морате да куцате ово):
л = [4, 5, 7, 8, 9, 1, 0, 7, 10]
print "л = [4, 5, 7, 8, 9, 1, 0, 7, 10]", "\t\tл:", л
л.sort()
print "л.sort()", "\t\tл:", л
прет = л[0]
print "прет = л[0]", "\t\tпрет:", прет
del l[0]
print "изб л[0]", "\t\tл:", л
for члан in л:
if прет == члан:
print "Дупликат", прет, "пронађен"
print "if прет == члан:", "\t\tпрет:", прет, "\tчлан:", члан
прет = члан
print "прет = члан", "\t\tпрет:", прет, "\tчлан:", члан
Са излазом који је:
л = [4, 5, 7, 8, 9, 1, 0, 7, 10] л: [4, 5, 7, 8, 9, 1, 0, 7, 10]
л.sort() л: [0, 1, 4, 5, 7, 7, 8, 9, 10]
прет = л[0] прет: 0
del л[0] л: [1, 4, 5, 7, 7, 8, 9, 10]
if прет == члан: прет: 0 члан: 1
прет = члан прет: 1 члан: 1
if прет == члан: прет: 1 члан: 4
прет = члан прет: 4 члан: 4
if прет == члан: прет: 4 члан: 5
прет = члан прет: 5 члан: 5
if прет == члан: прет: 5 члан: 7
прет = члан прет: 7 члан: 7
Дупликат 7 пронађен
if прет == члан: прет: 7 члан: 7
прет = члан прет: 7 члан: 7
if прет == члан: прет: 7 члан: 8
прет = члан прет: 8 члан: 8
if прет == члан: прет: 8 члан: 9
прет = члан прет: 9 члан: 9
if прет == члан: прет: 9 члан: 10
прет = члан прет: 10 члан: 10
Разлог зашто сам ставио много print у коду је тај да можете да видите шта се дешава у свакој линији. (Уосталом, ако не можете да схватите зашто програм не ради, покушајте да много штампате изјаве тако да можете да видите шта се дешава.) Прво програм почиње са досадном старом листом. Следеће програм сортира листу. То је зато што се неки дупликати стављају један поред другог. Програм затим иницијализује прет(ходну) променљиву. Следеће је, први елемент листе се брише, тако да није погрешно мислио да је прва ставка дупликат. Затим for петља је нестала. Свака ставка листе се проверава да се види да ли је иста као претходна. Ако јесте дупликат је пронађен. Вредност прет се онда мења тако да се следећи пут for покреће кроз прет и то је претходна ставка у тренутну. Наравно, утврђено је да је 7 дупликат. (Приметите како се \t користи за штампање таба.)
Други начин да користите for петље је да урадите нешто одређени број пута. Овде је неки код за штампање првих 9 бројева Фибоначијевих серија:
a = 1
b = 1
for c in range(1, 10):
print a,
n = a + b
a = b
b = n
са изненађујућим излазом:
1 1 2 3 5 8 13 21 34
Све што се може урадити са for петљама такође се може одрадити са while петљама али for петља нам дозвољава да на лакши начин прођемо кроз све елементе листе или да урадимо нешто одређени број пута.
en:Non-Programmer's Tutorial for Python 2.6/For Loops


LaTeX/Увод

1 Шта је TeX?
ТеX је језик за обележавање и програмирање ниског нивоа креиран од стране Доналда Кнута за атрактивно и доследно уређивање типа документа. Knuth је почео да пише TeX механизам за уређивање типа текста 1977 да би истражио потенцијал дигиталне штампарске опреме that која је почела да инфилтрира издавачку индустрију у том времену, посебно у нади да би он морао да преокрене тренд погоршања штампарског квалитета који је он видео да утиче на његове књиге и чланке. Са издавањем 8-битне
подршке знакова у 1989, TeX развој је био у суштини залеђен само су се периодично издавале исправке грешака. TeX је програмски језик у смислу да подржава if-else конструкцију: са њим можете правити калкулације (које се извршавају док компајлирате документ), итд., али ће вам бити веома тешко да радите с њим нешто друго се уређивања типа текста. Добра контрола коју TeX нуди над структурама докумената и форматирању, њега чини моћним и силним алатом. TeX је познат по томе да је екстремно стабилан, за могућност покретања на многим различитим врстама рачунара, и зато што је практично без грешака. Бројеви верзија TeX-а конвергирају ка <math>\pi</math>, са тренутним бројем верзије 3.1415926.
Име TeX је намењено од стране програмера да буде /'tɛx/, са финалним сугласником ''лох'' или ''бах''. (Доналд Е. Кнут, ''The TeXbook'') Слова имена су намењена да репорезентују велика грчка слова тау, епсилон, и чи, како је TeX скраћеница за ''τέχνη'' (ΤΕΧΝΗ – technē), грчка реч за "уметност" као и за "знанат", која је такође корен речи ''technical''. Људи који говоре енглески га често изговарају /'tɛk/, kao prvi slog kod ''technical''.
Програмирање у TeX генерално напредује по веома постепеној криви учења, захтевајучи значајну инвестицију времена да се направе прилагођени макрои за форматирање текста. Срећом, системи припремања дукумената на бази TeX, који се састоје од колекције пре изграђених макроа, постоје. Ови унапред направљени макрои штеде време, и аутоматизује одређене задатке који се понављају и и помаже у смањењу корисничких уведених грешака; међутим, ова погодност долази по цени комплетне флексибилности дизајна. Један од најпопуларнијих макро пакета се назива LaTeX.
2 Шта је LaTeX?
LaTeX (изговара се или "Lah-tech" или "Lay-tech") је макро пакет базиран на TeX кога је направио Лесли Лампорт. Његова сврха је да упрости TeX уређивање типова текста, посебно за документе који садрже математичке формуле. Унутар система уређивања типова текста, негово име се форамтира као .
Многи каснији аутори су допринели екстензије, који се називају ''пакети'' или ''стилови'', за LaTeX. Неки од њих су груписани са TeX/LaTeX софтверском дистрибуцијом; а више их се може наћи у свеобухватној мрежи TeX архива.
Пошто се LaTeX састоји од групе TeX команди, LaTeX процесуирање докумената је у суштини програмирање. Можете да направите текстуалну датотеку у LaTeX језику за означавање, коју LaTeX чита за производњу завршног документа.
Овај приступ има неке недостатке у поређењу са WYSIWYG (What You See Is What You Get) програмима као што су OpenOffice.org writer или мајкрософт ворд.
У LaTeX-у:
* (Обично)Не видите коначну верзију документа док га уређујете.
* Углавном требате знати неопходне команде за LaTeX језик за обележавање.
* Понекад може бити тешко добити одређен изглед документа.
Са друге стране, постоје сигурне предности LaTeX приступа:
* Извори докумената се могу читати и разумети са било којим едитором текста, за разлику од комплексних бинарних система и XML формата коришћених са WYSIWYG програмима.
* Можете се концентрисати потпуно на структуру и садржај документа, а не да се хватате у коштац са површним проблемима изгледа.
* Не морате ручно да подешавате слова, величину текста, висину редова, или проток текста за читљивост, пошто LaTeX води рачуна о овим стварима аутоматски.
* У LaTeX-у структура документа је видљива кориснику, и може се лако копирати на другом документу. У WYSIWYG апликацијама није увек очигледно како је одређено форматирање произведено, и може бити немогуће да га ископирате директно за употребу у другом документу.
* Изглед, слова, табеле су константне кроз документ.
* Математичке формуле се могу лако уређивати по типу текста.
* Индекси, фусноте, цитати и референце се лако генеришу.
* Пошто је извор документа обичан текст, табеле, фигуре, једначине, итд. се могу програмски генерисати са било којим језиком.
* Приморани сте да правилно структуришете ваше документе.
LaTeX документ је датотека обичног текста који садржи саджај документа, са додатним ознакама. Када изворну датотеку обрађују макро пакети, може да произведе документе у неколико форамта. LaTeX изворно подржава DVI и PDF, али коришћењем другог софтвера можете лако направити PostScript, PNG, JPEG, итд.
3 Филозофија коришћења
3.1 Флексибилност и модуларност
Једна од најфрустрирајућих ствари са којом почетници па чак и напредни корисници могу да се сусретну при коришћењу LaTeX-а је недостатак флексибилности у вези са дизајном документа и изгледа. Ако желите да дизајнирате ваш документ на врло специфичан начин, можда ћете имати проблема са постизањем овог циља. Имајте на уму да LaTeX ''врши'' форматирање за вас, и, углавном, на прави начин. Ако није тачно оно што сте желели, онда LaTeX начин макар није лошији, ако није бољи. Један начин гледања на ово, је да је LaTeX скупина макроа за TeX која циља да изврши све у вези са форматирањем документа, тако да писац само мора да води рачуна о садржају. Ако заиста желите флексибилност, користите обичан TeX.
Једно решење ове дилеме је да искористите LaTeX могућности моделирања. Можете правити своје макрое, или да користите макрое које су други направили. Ви вероватно нисте прва особа која се сусрела са одређеним проблемом форматирања, и неко ко се сусрео са сличним проблемом раније је можда објавио своје решење у облику пакета.
је добро место за проналажење многих ресурса у вези са TeX и изведених пакета. То је прво место где би требало да почнете са претрагом.
3.2 Питања и документација
Поред интернет ресурса који су у изобољу, најбољи извор документације остаје официонални приручник за сваки специфичан пакет, и референтна документација, т.ј., ''TeXbook'' од стране D. Knuth и ''LaTeX: A document preparation system'' од стране L. Lamport.
Зато пре него што пожурите на вашем омиљеном интернет претраживачу, стварно вас позивамо да погледате документацију пакета који вам прави невоље. Ова званична документација је најчешће инсталирана заједно са вашом TeX дистрибуцијом, или се може наћи на .
4 Термини који се тичу TeX-а
;Системи припреме докумената:
LaTeX је систем припремања докумената базиран на TeX. Тако да је систем комбинација језика и макроа.
;Дистрибуције:
TeX дистрибуције су колекције пакета и програма (компајлера, слова, и макро пакета) који вам омогућавају да уређујете типове текста без потребе да ручно преузимате датотеке и конфигуришете ствари.
;Програми:
Програм је извршна машина која може да претвори ваш извршни код у штампани излазни формат. Програм сам по себи само управља синтаксом, он такође мора да учита слова и макрое да би потпуно разумео изворни код и правилно генерисао излаз. Програм одређује коју врсту изворног кода може да прочита, и који формат може да избацује (обично DVI или PDF).
Све у свему, дистрибуције су лак начина за инсталацију онога што вам је потребно да користите програме и системе које желите. Дистрибуције обично циљају одређени оперативни систем. Можете да користите различите системе на различитим програмима, али понекад постоје рестрикције.
Кодови написани за TeX, LaTeX или ConTeXt су (углавном) не комапатабилни међу собом.
Додатно, програмско специфични кодови (као што су слова за XeTeX) можда не могу бити састављени од стране сваког програма.
Када тражите информације о LaTeX-у, можете се сусрести са XeTeX, ConTeXt, LuaTeX или другим именима каја имају -TeX суфикс.
Хајде да се подсетимо већине термина у овој табели.
Системи, Описи
ConTeXt, TeX-базиран систем припремања документа (као што је и LaTeX) са веома константном и лаком синтаксом и подршком за pdfTeX, XeTeX и LuaTeX програме.
LaTeX, TeX-базиран систем припремања документа дизајниран од стране Леслија Лампорта. Он је заправа скуп макроа за TeX. Он циља да води рачуна о процесу форматирања.
MetaFont, Систем слова високог квалитета дизајниран од стране Доналда Кнута заједно са TeX.
MetaPost, Описни језик векторске графике базиран на MetaFont.
TeX, Оригиналан језик дизајниран од стране Доналда Кнута.
Програми, Описи
luatex, lualatex, TeX програм са уграђеним Lua скриптинк програмом који циља на начини TeX унутрашњости флексибилнијим.
pdftex, pdflatex, Програми (PDF компајлери).
tex, latex, Програми (DVI компајлери).
xetex, xelatex, TeX програм који користи уникод и подржава широко популарана .ttf и .otf слова. Погледајте слова.
TeX Дистрибуције, Описи
MacTeX, TeX Live базирана дистрибуција која циља мак ОС X.
MiKTeX, TeX дистрибуција за виндоус.
TeX Live, Међу-платформна TeX дистрибуција.
5 Шта је следеће?
У следећем поглављу ћемо наставити до инсталације. Онда ћемо саставити нашу прву LaTeX датотеку.
Током читања ове књиге такође требате искористити друга средства за учење о LaTeX-у. Добри извори су:
* IRC канал на Freenode,
* Q&A,
* FAQ,
* и заједница.
de:LaTeX/_Einleitung
en:LaTeX/Introduction


Водич за Пајтон 2.6/Дефинисање функција

0.1 Стварање функција
За почетак овог поглавља даћу Вам пример тога шта бисте могли да урадите а не би требало (па не куцајте ово):
a = 23
b = -23
if a < 0:
a = -a
if b < 0:
b = -b #Или користите команду: elif (if+else)
if b > 0:
elif:
print("Добро")
print("Не")
излаз је:
Апсолутне вредности 23 или 23 су једнаке
Програм се изгледа мало понавља. Програмери не воле да понављају ствари -- за то су ипак рачунари створени! (Имајте на уму да је проналажење апсолутне вредности променило вредност променљиве, зато штампа 23, а не -23 у излазу.) На срећу, Пајтон Вам дозвољава да створите функцију да уклоните дупликате. Овде је преписан пример:
def апсолутна_вредност(n):
if n < 0:
n = -n
return n
a = 23
b = -23
if апсолутна_вредност(a) == апсолутна_вредност(b):
print "Апсолутне вредности", a, "и", b, "су једнаке"
else:
print "Апсолутне вредности", a, "и", b, "су различите"
па је излаз:
Апсолутне вредности 23 и -23 су једнаке
Кључна карактеристика овог програма је def изјава. def
(укратко дефинисање) почиње дефинисање функције. def је праћено именом функције апсолутна_вредност. Затим долази '(' праћено параметром n (n је прошао
програм у функцији када се позове функција). Изјаве после ':'
се извршавају када се користи функција. Изјаве се настављају док
се увучени изрази завршавају или је наишао на
return. return изјава враћа вредност
назад на место где је позвана функција.
Имајте на уму како се вредности a и b не мењају.
Функције се могу користити да понове задатке који не враћају
вредности. Овде су неки примери:
def здраво():
print "Здраво"
def површина(w, h):
return w * h
def штампај_добродошли(име):
print "Добродошли", име
здраво()
здраво()
штампај_добродошли("Фред")
w = 4
h = 5
print "ширина =", w, "висина =", h, "површина =", површина(w, h)
са излазом:
Здраво
Здраво
Добродошли Фред
ширина = 4 висина = 5 површина = 20
Примери показују још неке ствари које можете урадити са
функцијама. Приметите да можете користити без аргумената, са два или више.
Обратите пажњу и када функција не треба да врати вредност,
враћање није обавезно.
0.2 Променљиве у функцијама
Када елиминисање понавља код,често имате променљиве у поновљеном коду.
У Пајтону, они су се бавили на посебан начин. До сада све виђене променљиве
су глобалне променљиве. Функције имају посебну врсту променљивих названу
локалне променљиве. Ове променљиве постоје док се функција покреће.
Када локална променљива има име као друга променљива (као што је глобална
променљива), локална променљива крије другу. Звучи збуњујуће? Па, ови
следећи примери (који су помало неприродни) би требало да помогну да разјасне ствари.
a = 4
def штампај_функ():
a = 17
print "у штампај_функ a = ", a
штампај_функ()
print "a = ", a,"што је глобална променљива додељена пре функције штампај_функ"
Када се покрене, добијамо овакав излаз:
у штампај_функ a = 17
a = 4 што је глобална променљива додељена пре функције штампај_функ
Променљиве задате унутар функције не замењују глобалну променљиву, оне
постоје само унутар функције. Иако је a добило нову вредност у
функцији, ова недавно добијена вредност је била релевантна само штампај_функ, када
функција заврши покретање, и вредност a је поново штампана, видимо
првобитно додељене вредности.
0.3 Сложени пример
a_пром = 10
b_пром = 15
c_пром = 25
def a_функ(a_пром):
print "у a_функ a_пром = ", a_пром
b_пром = 100 + a_пром
d_пром = 2 * a_пром
print "у a_функ b_пром = ", b_пром
print "у a_функ d_пром = ", d_пром
print "у a_функ c_пром = ", c_пром
return b_пром + 10
c_пром = a_функ(b_пром)
print "a_пром = ", a_пром
print "b_пром = ", b_пром
print "c_пром = ", c_пром
print "d_пром = ", d_пром
Излаз је:
у a_функ a_пром = 15
у a_функ b_пром = 115
у a_функ d_пром = 30
у a_функ c_пром = 25
a_пром = 10
b_пром = 15
c_пром = 125
d_пром =
Траг (послењи позив):
Фајл "C:\Python24\def2", line 19, in -toplevel-
print "d_пром = ", d_пром
NameError: име 'd_пром' није дефинисано
У овом примеру променљиве a_пром, b_пром, и d_пром
су локалне променљиве када су унутар функције a_функ.
После покретања изјаве return b_вар + 10, све оне престају да
постоје. Променљива a_пром је аутомацки локална променљива откад је
то име име параметра. Променљиве b_пром и d_пром су локалне
променљиве откад се појаве на левој страни знака једнакости у функцији у
изјавама b_пром = 100 + a_пром и d_пром = 2 * a_пром .
Унутар функције a_пром нема вредност која јој је додељена. Када се
функција позове са c_пром = a_функ(b_пром), 15 је додељено
a_пром јер у том тренутку b_пром је 15, прави се
позив функције a_функ(15). Ово се завршава подешавањем
a_пром у 15 када је унутар a_функ.
Као што можете да видите, једном када функција заврши са радом, локалне променљиве
a_пром и b_пром које су сакриле глобалне променљиве истог
имена су нестале. Онда изјава print "a_пром = ", a_пром штампа
вредност 10 а не вредност 15 пошто је локална варијабла
која је сакрила глобалну променљиву нестала.
Још једна ствар коју треба приметити јесте NameError која се дешава на крају.
Ово изгледа да променљива d_пром више не постоји откад је
a_функ завршена. Све локалне променљиве су избрисане када функција
постоји. Ако желите да добијете нешто из функције, онда ћете морати да користите
return нешто.
Једна последња ствар за приметити је да вредност c_пром остаје непромењена
унутар a_функ откад није параметар и никад се не појави на левој
страни знака једнакости унутар функције a_функ. Када је
глобална променљива доступна у функцији то је глобална променљива
споља.
Функције дозвољавају локалне променљиве које постоје само у функцији и
које могу сакрити и друге варијабле које су ван функције.
0.4 Примери
температура2.py
# претвара температуру из фаренхајта у целзијус
def штампај_опције():
print "Опције:"
print " 'p' Опције за штампање"
print " 'c' Претварање из целзијуса"
print " 'f' Претварање из фаренхајта"
print " 'q' Напусти програм"
def целзијус_у_фаренхајт(c_темп):
return 9.0 / 5.0 * c_темп + 32
def фаренхајт_у_целзијус(f_темп):
return (f_темп - 32.0) * 5.0 / 9.0
while избор != "q":
if избор == "c":
темп = input("Температура у целзијусу: ")
print "Фаренхајт:", целзијус_у_фаренхајт(темп)
elif избор == "f":
temp = input("Температура у фаренхајтима: ")
print "Целзијус:", фаренхајт_у_целзијус(темп)
elif избор == "p":
штампај_опције()
избор = raw_input("опција: ")
Sample Run:
Опције:
'p' Опције за штампање
'c' Претварање из целзијуса
'f' Претварање из фаренхајта
'q' Напусти програм
опција: c
Температура у целзијусу: 30
Фаренхајт: 86.0
опција: f
Температура у фаренхајтима: 60
Целзијус: 15.5555555556
опција: q
површина2.py
# Од стране Амоса Сатерлија
print
def здраво():
print 'Здраво!'
def површина(ширина, висина):
return ширина * висина
def штампај_добродошлицу(име):
print 'Добродошли,', име
име = raw_input('Ваше име: ')
здраво(),
штампај_добродошлицу(име)
print
print 'Наћи површину правоугаоника,'
print 'укуцај ширину и висину изнад.'
print
w = input('Ширина: ')
while w <= 0:
print 'Мора бити позитиван број'
w = input('Ширина: ')
h = input('Висина: ')
while h <= 0:
print 'Мора бити позитиван број'
h = input('Висина: ')
print 'Ширина =', w, 'Висина =', h, 'Површина =', површина(w, h)
Пример:
Ваше име: Џош
Здраво!
Добродошли, Џоше
Наћи површину правоугаоника,
укуцај ширину и висину изнад.
Ширина: -4
Мора бити позитиван број'
Ширина: 4
Висина: 3
Ширина = 4 Висина = 3 Површина = 12
0.5 Вежбе
Преправити површина2.py програм из Примери изнад да бисте раздвојили функције за површину на квадрат, површину правоугаоника, и површину круга (3.14 * радијус ** 2). Овај програм треба да садржи интерфејс менија.
en:Non-Programmer's Tutorial for Python 2.6/Defining Functions


LaTeX/Стварање наслова

За документе попут основних чланака, резултат аргумента је често прикладан, али дужи документи (као што су књиге и извештаји) често захтевају напредније форматирање. Ми ћемо детаљно прећи процес овде.
Постоји неколико ситуација где бисте можда желели да направите наслов у формату по жељи, уместо у формату који LaTeX класе већ подржавају. Мада је могуће променити резултат , то може бити јако компликовано чак и са ситним променама у наслову. У том случају, често је боље направити наслов изнова, а овај одељак ће Вам показати како то да урадите.
1 Стандардни наслови
Многе класе докумената ће створити наслов или страницу наслова за Вас. Потребно је одредити чиме ће се попунити коришћењем ових команди, смештених у top matter:
Датум се искључује из наслова коришћењем:
. Аутоматски пребацује на
ако је изостављен у изворном фајлу.
Да би направили наслов, користите
Ово би требало да иде након претходних команди. За већину класа докумената, ово ће створити одвојену страницу, док ће класа документа ставити наслов на врх прве странице. Ако такође желите да имате одвојену насловну страницу за чланак, користите documentclass опцију .
Фусноте у оквиру насловне странице могу бити одређене командом . На пример, можете додати
команда може бити коришћена и у .
Од класе документа зависи које ће се команде користити у наслову створеним командом .Указивање на документацију ће довести до поузданих информација.
2 Насловне странице по жељи
Нормално, предности коришћења LaTeX-а уместо традиционалног програма за обраду речи, су у томе што Вам LaTeX даје слободу да се концентришете на садржај кроз рад на маргинама, оправдању, и другим typesetting проблемима. С друге стране, ако желите да напишете свој насловни формат, управо је супротно: морате се побринути за све - овог пута LaTex неће урадити ништа како би вам помогао. Стварање Вашег формата може бити захтевно пошто LaTex није дизајниран да буде графички интерактиван у поставци распореда. Процес је сличан раду са новим сировим HTML-ом, са додатним кораком да сваки пут када хоћете да видите Ваш резултат, морате да поново компилирате извор. Док ово можда изгледа као већа непријатност, предност је у томе што једном када напишете жељени формат, он служи као шаблон за све остале документе који би користили формат наслова који сте управо направили. Другим речима, једном када имате жељени распоред, можете га користити за било који други документ где бисте желели исти распоред, без додатног подешавања распореда.
Наслов књиге или извештаја је прво што ће читалац видети.
Имајте то на уму када припремате насловну страницу.
2.1 Направите наслов књиге или извештаја
Насловна стран извештаја за универзитетску диплому је веома статична, не мења се током времена. Можете спремити насловну страницу, у сопственом малом документу и pdf са једном страном који ћете касније укључити у прави документ. Ово је веома корисно ако насловна страница треба да има потпуно другачије маргине у односу на остатак документа. Такође штеди време компилације, мада не много.
Морате познавати основе LaTeX команди распореда да би могли савршено да подесите ваши насловну страницу. Углавном страница која се ради по жељи не садржи семантичко означавање, све је ручно израђено. Ево неких најпотребнијих ствари:
; Поравнање :
ако желите да центрирате текст, само користите ово . Да бисте поравнали другачије можете користити окружење за ''десно''-равнање и за ''лево''-равнање.
; Слике :
команда за убацивање слика(на пример лого) је следећа :
.
Нема као што би иначе користили пошто не желите да буде floating, желите је само тачно тамо где треба да буде. Када рукујете командом, запамтите да је TeX мотор сматра великом кутијом.
; Величина текста :
ако желите да промените величину неког текста, просто га ставите у заграду, ''{овако}'', и можете користити следеће команде (по реду величине):
,
, ,
, ,
,
,
,
. Тако на пример:
Запамтите, ако имате блок текста у различитим величинама, чак и ако је мало текста у једном реду, завршите га са .
; Попуњавање странице :
команда као последња ствар вашег садржаја ће додавати празан простор док се страница не напуни. Ако је ставите у оквиру странице, сав текст иза команде ће бити на дну странице.
2.1.1 Практични пример
Сви ови савети су Вас можда збунили. Ево практичног примера који се може компилирати. Слика која се користи иде уз пакет mwe и треба бити доступна уз сваку комплетну LaTeX инсталацију. Можете почети са тестирањем одмах.
Као што видите, код изгледа "прљавије" од стандардног LaTeX source-а зато што се морате позабавити и резултатом. Ако почнете да мењате фонтове, постаје још компликованије, али Ви то можете: то је само за наслов, а Ваш компликован код ће бити изолован од осталих у свом фајлу.
Резултат је приказан испод
2.1.2 Интеграција насловне странице
Уколико сте направили насловну страну извештаја у другом документу, на пример reportTitlepage2015.pdf, можете га врло просто укључити. Ево кратке поставке документа.
2.2 Наслов за вишеструко коришћење
Неки универзитети, одељења и компаније имају строга правила о томе како насловна страна извештаја треба да изгледа. Да би осигурали исти резултат за све извештаје, препоручује се редефиниција команде.
Ово би било најбоље да уради искуснији LaTeX корисник. Следи прост пример, као и обично нема ограничења у погледу сложености.
На почетку, LaTeX пакет под називом columbidaeTitle.sty се ствара, и дефинише комплетан наслов. Касније ће га крајњи корисник сакрити. Идеално би било да особа која ствара пакет тај пакет и одржава дуже време, направи пратећу документацију и осигура подршку.
Овај пакет може бити учитан у оквиру уобичајеног документа. Корисник може да одређује променљиве за title . Које команде су присутне, а које могу бити изостављене треба написати у документу који иде заједно са пакетом.
Погледајте шта се дешава ако изоставите једну команду.
}
3 Пакети за наслове по жељи
пакет пружа контролу над typesetting-ом и команди. пакет представља више стилова дизајна за насловне стране. Италијански корисници ће можда желети да користе
пакет.
4 Напомене и референце
pt:Latex/Título
en:LaTeX/Title Creation
de:LaTeX/_Eine_Titelseite_erstellen
zh:LaTeX/生成封面和标题
es:Manual de LaTeX/La estructura de un documento en LaTeX/Cuerpo/Portada del documento


Водич за Пајтон 2.6/НПП

;''Питања:'' Не могу да користим програме са улазом. :''Одговор:'' Ако користите IDLE онда покушајте да користите командну линију. Овај проблем изгледа да је решен у IDLE 0.6 и новијим. Ако користите старију верзију IDLE-а покушајте надоградњу на Пајтон 2.0 или новији.
; Да ли постоји верзија слободна за штампање? : Да, погледајте наредно питање.
; Да ли постоји PDF или зипована верзија? : Да, идите на за неколико другачијих верзија. Запамтите да ово неће увек бити у току са верзијом Викикњиге. Бикикњига се може штампати са Верзија за штампање.
; Чиме је написан водич? : Првобитно, Латекс, погледајте easytut.tex датотеку.
; Не могу да куцам у овом програму више од једне линије. : Ако покренете програм чим га унесете, потребно је да уредите датотеку уместо да га куцате у интерактивном режиму. (Наговештај: интерактивни режим је режим са >>> наведен испред њега.)
; Овде нема одговора на моје питање. : Питајте на страници за разговор. Молимо вас да поставите изворни код ако је све релеватно(чак, (или можда посебно) ако не ради). Корисне ствари које треба укључити су оне које сте покушали да урадите, шта се догодило, шта сте очекивали да се догоди, поруке о грешкама, Пајтон верзија, Оперативни систем, и да ли је или не ваша мачка стајала на тастатури. (Мачка у мојој кући има склоност за барове размака и контролне тастере.)
; Желим да прочитам ово на другом језику. : Постоји пар превода за које знам. Један је корејски и доступан је на . Други је на шпанском и он је на . Има на италијанском и доступан је наhttp://www.python.it/doc/tut_begin/index.html. Има и на грчком и доступан је на . Неколико људи је рекло да ће одрадити превод на други језик као што је француски, али нисам добио одговор на то. Ако сте радили преводе или знате неке преводе, молим вас пошаљите ми или ми пошаљите линк.
; Како правим GUI у Пајтону? : Можете користити TKinter на или WXPython на
; Како да направим игрицу у Пајтону? : Вероватно најбоља метода је да користите PYgame на
; Како направити извршавање у Пајтон програму? : Кратак одговор: Пајтон тумачи језике, тако да је немогуће. Дужи одговор је да се нешто слично може извршити узимањем Пајтон интерпретатора и датотека и њиховим спајањем у расподелу. За више о том проблему погледајте . Пројекат који не чини извршење Пајтон фајлова је py2exe - погледај .
; Треба ми помоћ са вежбом : Наговештај, програм са шифром захтева две променљиве, један за праћење колико пута је лозинка укуцан, а друга да пратите која је последља шифра унета. Такође можете преузети решења са
; Шта и када је последња ствар променила?
* 2000-Дец-16, додата грешка руковања поглављем.
* 2000-Дец-22, Уклоните стари поступак инсталирања.
* 2001-Јан-16, Фиксна грешка у програму, додати примери и податци са члановима листе.
* 2001-Апр-5, Правопис, граматика, додат још један начин да се пробије програм, урл фик за ПДФ верзију.
* 2001-Мај-13, Додато поглавље за дебаговање.
* 2001-Нов-11, Додата вежбања, исправљена граматика, правопис, и надам се побољшано објашњење неких ствари.
* 2001-Нов-19, Додата вежба за шифру, прерађен је део са референцама.
* 2002-Феб-23, Три пута је премештена вежба за шифру, промењено л у листу примера вежбе. Додат нови пример у поглавље Одлуке, додате две нове вежбе.
* 2002-Мар-14, ПРОМЕНА abs У МОЈ_abs јер Пајтон није дефинисао abs функцију.
* 2002-Мај-15, Додат је фак о стварању извршења. Додат је коментар на пример листе. Преправљене штампарске грешке.
* 2002-Јун-14, Промењен је програм да користи док је тачно уместо док је 1 да би било јасније.
* 2002-Јул-5, Преправљено је поглавље функције. Промена фиба програма, надамо се да ће бити јасније.
* 2003-Јан-3, Додати примери просека у поглављу одлуке.
* 2003-Јан-19, Додат је коментар о средњој вредности a_var. Поправљена је грешка у средњавредност2.py програму.
* 2003-Сеп-5, Промењене idle инструкције за Run->Run Модул.
* 2004-Јан-1, Постављено на Бикикњиге
* Од тада су све промене видљиве кроз верзију Викикњиге уласка у систем.
en:Non-Programmer's Tutorial for Python 2.6/FAQ


Водич за Пајтон 2.6/Дебаговање

0.1 Шта је дебаговање?
:"Чим смо почели са програмирањем, открили смо на наше изненађење да није лако да добијемо прави програм као што смо мислили. Откривање грешака, дебаговање, морало би да буде откривено. Ја могу да се сетим тачног тренутка када сам схватио да је то велики део мог живота од тада сам решио да би требало да се потроши у проналажењу грешке у својим програмима." —''Maurice Wilkes discovers debugging'', 1949
Ако сте се до сада играли са програмима вероватно сте схавтили да програм понекад ради нешто што ви нисте желели да уради. Ово је прилично уобичајено. Дебаговање је процес разумевања шта рачунар ради и онда га напишете да ради тачно оно шта хоћете. То може бити незгодно. Једном сам провео готово недељу у промалажењу и фиксирању грешке која је узрокована нечијим стављањем x где је y требало да буде.
Ово поглавље ће бити више апстрактно него претходна поглавља.
0.2 Шта би програм требало да ради?
Прву ствар коју треба да уради (ово звучи очигледно) је да схвати шта
би програм требало да ради ако је добро покренут. Смислите неки
тест случајева и видите шта се дешава. На пример, да кажемо да имам
програм за рачунање обима правоугаоника (збир дужине
свих ивица). Имам следеће тестове:
висина, ширина, обим
3, 4, 14
2, 3, 10
4, 4, 16
2, 2, 8
5, 1, 12
Сада покрећем програм на свим случајевима теста и видим да програм ради оно
што сам очекивао. Ако не ради онда морам да сазнам шта рачунар ради.
Чешћи су неки од случајева да ће тест радити од неких да неће. Ако је то случај требало би да покушате и схватите Шта они који раде имају заједничко.
На пример овде је излаз за израчунавање обима (видећете код за тренутак):
Висина: 3
Ширина: 4
обим = 15
Висина: 2
Ширина: 3
обим = 11
Висина: 4
Ширина: 4
обим = 16
Висина: 2
Ширина: 2
обим = 8
Висина: 5
Ширина: 1
обим = 8
Приметите да није радио за прва два уноса, радио је за следећа
два и није радио на последњем. Покушајте да схватите шта је заједничко
онима који раде. Једном када имате идеју шта је проблем проналажење
узрока је лакше. Са вашим личним програмима требало би да покушате са више тестова ако вам затребају.
0.3 Шта програм ради?
Следећа ствар коју треба да урадите је да погледате изворни код. Једна од најважнијих ствари које треба да урадите док програмирате јесте да читате изворни код. Основни начин да урадите ово је да прођете кроз код.
Пролазак кроз код почиње на првој линији, и таје док се програм не заврши. While петње и if изјаве значе да неке линије можда никад неће бити покренуте и да ће неке бити покренуте више пута. На свакој линији схватате шта је Пајтон урадио.
Почнимо са једноставним програмом обима. Не куцајте га, само га прочитајте, и не покрећите. Изворни код је:
висина = input("Висина: ")
ширина = input("Ширина: ")
print "обим =", ширина + бисина + ширина + ширина
;''Питање:'' Шта је прва линија што Пајтон покреће?
:''Одговор:'' Прва линија се увак прва покреће. У овом случају то је: висина = input("Висина: "); Шта та линија ради?
: Штампа  Висина: , чека да корисник укуца број, и ставља то у променљиву висина.
; Шта је следећа линија коју покреће?
: У општем случају, то је следећа линија што је: ширина = input("Ширина: "); Шта та линија ради?
: Штампа Ширина: , чека да корисник укуца број, и ставља то у променљиву ширина.
; Шта је следећа линија коју покреће?
: Када следећи ред није увучен више или мање од тренутне линије, то је линија одмах након тога, па је то: print "обим = ", ширина + висина + ширина + ширина (Такође може покренути функцију у одговарајућем реду, али то је следеће поглавље.) Шта та линија ради?
: Прво штампа обим = , затим штампа  ширина + висина + ширина + ширина.
; Да ли  ширина + висина + ширина + ширина рачуна обим правилно?
: Да видимо, обим правоугаоника је доња страница (ширина) плус лева страница (висина) плус горња страница (ширина) плус десна страница (ха?). Последњи податак би требало да буде душина десне странице, или висина.
; Да ли разумете зашто је у неко време обим био рачунан "правилно"? : Био је добро рачунана када су висина и ширина једнаке.
Следећи програм који ћемо радити проласком кроз код је програм који би требало да штампа пет тачака на екрану. Међутим, ово је оно што програм избацује:
. . . .
И овде је програм:
број = 5
while број > 1:
print ".",
број = број- 1
print
Пролазак кроз овај програм је много сложенији јер сада има увучене делове (или контролне структуре). Хајде да почнемо.
; Која је прва линија кроз коју ће проћи?
: Прва линија датотеке: број = 5; Шта ова линија ради?
: Ставља број 5 у променљиву број.
; Која је следећа линија?
: Следећа линија је: while број > 1:; Шта она ради?
: Па, while изјава у глобалу на њихов израз, и ако је то тачно раде следећи блок кода, у супротном прескоче увучени блок кода.
; Па шта сада ради?
: Ако је број > 1 тачно онда ће се покренути две следеће линије.
; Да ли је број > 1?
: Последње две дате вредности број су 5 и 5 > 1 тако да јесу.
; Па шта је у следећој линији?
: Одкад је  while тачно следећа линија је: Print ".",; Шта та линија ради?
: Штампа једну тачку и пошто се изјава завршава са ',' следећа изјава штампања неће бити у другој линији реда.
; Шта је у следећој линији?
:број = број - 1 пошто је то следећа линија и ту нека никаквих промена.
; Шта то ради?
: Рачуна број - 1, што је одговарајућа вредност број (или 5) који одузима 1, и ствара нову вредност броја. Па у основи мења  број'ну вредност са 5 на 4.
; Шта је следећа линија?
: Па, следећи ниво опада тако да морамо да погледамо шта је тип контролне структуре. То је while петња, па морамо да се вратимо на while тачку што је while број > 1:; Шта ово ради?
: Погледа вредност броја, што је 4, и пореди је са 1 и пошто је 4 > 1 while петља се наставља.
; Шта је следећа линија?
: Пошто је while петља тачна, следећа линија је: print ".",; Шта она ради?
: Штампа следећу тачку у линији.
; Шта је следећа линија?
: Ништа се не мења па је: број = број - 1; И шта ово ради?
: Узима одговарајућу вредност броја (4), одузме 1, што даје 3 и на крају ствара 3 нову вредност броја.
; Шта је следећа линија?
: С обзиром на то да је промена изазвана на крају while петље, следећа линија је: while број > 1:; Шта она ради?
: Пореди одговарајућу вредност броја (3) са 1. 3 > 1 па се while петља наставља.
; Шта је у следећој линији?
: С обзиром да су услови у while петљи тачни следећа линија је: print ".",; И шта ради?
: Трећа тачка је уписана у линији.
; Шта је следећа линија?
: То је: број = број - 1; Шта ради?
: Узима одговарајућу вредност броја (3) одузима му 1 и прави 2 као нову вредност броја.
; Шта је следећа линија?
: Назад до почетка while петље: while број > 1:; Шта ради?
: Пореди одговарајућу вредност броја (2) са 1. Пошто је 2 > 1 while петља се наставља.
; Шта је следећа линија?
: Пошто се while петља наставља: print ".",; Шта ово ради?
: Открива значење живота, универзума и свега. Шалим се. (Морам да се побринем да сте будни.) Линија штампа четврту тачку на екрану.
; Шта је следећа линија?
: То је: број = број - 1; Шта ради?
: Узима одговарајућу вредност броја (2) одузима му 1 и добија 1 нову вредност броја.
; Шта је следећа линија?
: Повратак у while петљу: while број > 1:; Шта та линија ради?
: Пореди одговарајућу вредност броја (1) са 1. Пошто 1 > 1 је нетачно (један није веће од један), while петља постоји.
; Шта је следећа линија?
: С обзиром да је стање while петље нетачно следећа линија је линија после while петље, или: print; Шта та линија ради?
: Чини да екран пређе у следећи ред.
; Зашто програм не штампа 5 тачака?
: Петља излази једну тачку раније.
; Како можемо то да исправимо?
: Направимо да петља изађе једну тачку раније.
; И како то да урадимо?
: Постоји неколико начина. Један начин је да променимо while петљу у: while број > 0: Други начин је да променимо услове у: број >= 1 Постоји још неколико.
0.4 Како преправљам програм?
Морате да разумете шта програм ради. Треба да схватите шта би програм требало да ради. Нађите разлику између ова два. Дебаговање је вештина која мора да буде увежбана да би била научена. Ако не мођете да разумете после сат времена, направите паузу, разговарајте са неким о проблему или размишљајте о влакну у вашем пупку. Вратите се у петљу и вероватно ћете имати нове идеје за овај проблем. Срећно.
en:Non-Programmer's Tutorial for Python 2.6/Debugging


LaTeX/Представљање процедуралних графика

У поглављу о увозу графике, научили сте да можете да убацујете или повезујете графике у LaTeX, као што су графике које сте направили у неком другом програму или их добавили на неки други начин. У овом подглављу, научићете како да направите или убаците графике директно у LaTeX документ. Графика се означава коришћењем команди које су сличне подешавању bold текста или прављењу математичких формула, као што следећи пример убачене графике показује:
Постоје неколико пакета који подржавају прављење графика директно у LaTeX-у, укључујући picture, xy-Pic и PGF/TikZ, описани су у следећим одељцима.
У поређењу са WYSIWIG алатима као Xfig или Inkscape, овај приступ узима више времена, али производи боље резултате. Такође, излаз је савршено интегриран у вашем документу (без контраста у величини и фонту).
Погледајте Importing Graphics за више детаља о убацивању графика и покушајима да се заобиђе проблем интеграције.
1 Преглед
picture окружење омогућава програмирање слика директно у LaTeX-у. Са једне стране, постоје веома строга ограничења, као што су нагиби делова линија као и радијуси кругова који су ограничени на узак избор вредности. Са друге стране, окружење слике LaTeX2e-а доноси са собом у \qbezier команди, "q" што означава ''квадратну''. Доста најчеће коришћених кривих као што су кругови, елипсе, и catenaries могу се задовољавајући апроксимирати користећи Безијерове криве, ово ипак захтева математички тежак посао. Ако се користи програмски језик као Java за прављење \qbezier блокова LaTeX улазних фајлова, окружење слике постаје моћно.
Иако је прављење слике директно у LaTeX-у веома ограничено, и често одузима доста времена, и даље постоје разлози да се слика баш у њему прави. Документи прављени на овај начин су "мали" у бајтовима, и нема додатних фајлова графика које морају да иду уз фајл.
Пакети као што су epic, eepic или pstricks побољшавају оригинално окружење слике, и доста ојачавају графичку моћ LaTeX-а.
Док су два претходна пекета само побољшавала окружење слике, pstricks пакет има његово сопствено окружење за цртање, pspicture. Моћ pstricks овог пакета се огледа у чињеници да овај пакет доста користи могућности PostScript-а. На жалост има једну велику ману: као такав, не ради са pdfLaTeX-ом. Да бисте произвели PDF документ од TeX извора, морати ићи из TeX-а у DVI у PDF, где губите хиперлинкове, метадату, и микротипографичке могућности pdflatex-а у току процеса.
Такође, небројано пакета писано је да служи одређеној сврси. Један од њих је ''XY-pic,'' описан на крају овог подглавља. Доста ових пакета детаљно је описано у''The LaTeX Graphics Companion'' (немојте мешати са ''The LaTeX Companion'').
Можда најмоћнији графички алат у LaTeX-у је MetaPost, близанац Доналд.Е.Кнутовог METAFONT. MetaPost има веома моћан и математички софистициран програмски језик METAFONT. У супротности са METAFONT-ом, који прави битмапе, MetaPost прави затворене PostScript фајлове, који се могу убацити у LaTeX. Као увод, погледајте ''Приручник за MetaPost.'' Веома темељна дискусија о LaTeX и TEX стратегијама за графику (и фонтове) може се пронаћи на ''TEX Unbound.''
Последњи али не и мање битни су PGF/TikZ и Asymptote системи. Док су се претходни системи (picture, epic, pstricks или metapost) фокусирали на то ''како'' да цртају, TikZ и Asymptote се фукусирају више на то''шта'' се црта. Може се рећи да оно што TikZ и Asymptote представљају за цртање у LaTeX-у, то LaTeX представља за дигитални typesetting. Препоручује се коришћење једног од ових пакета ако их Ваша LaTeX дистрибуција укључује. TikZ је чисти (La)TeX систем, који не зависи од спољашњег софтвера, док је Asymptote екстерни систем који се неприметно интегрира (La)TeX-ом. Ако користите Asymptote, помоћиће Вам да бисте се снаши приликом компилационих корака.
У много случајева, посебно у напреднијим дијаграмима, можда је лакше цртање графика коришћењем ектерног векторског програма за цртање графика, па га онда убацити у документ (погледајте ../Убацивање графика). Међутим већина софтвера не подржава LaTeX фонтове или математичку нотацију, што може да резултује неподобну и недоследну графику. Постоје неколико решења за овај проблем.
en:LaTeX/Introducing Procedural Graphics


Демократија и аристократија

Животи и мишљења великих философа | []
<< Философија државе: Брак и васпитање | Философија државе: Демократија и аристократија | Критика >>
----
Примена таквих мера обазривости у религији, у васпитању, и у поретку породичнога живота, очуваће сваки традиционални облик владавине. Сви облици садрже и добра и зла, и различним условима различно су прилагођени. Најбољи облик владавине био би теориски сједињење целе политичке моћи у рукама најбољега човека. Хомер има право: »Рђава је власт многих; дајте нека само један влада и води.« Таквом човеку закони би били пре средства него ли ограничење; »за људе овакве врсте нема никаквог закона, јер они су сами закон. Шта више, ко би хтео да донесе закон за њих, учинио би се смешан, и они би таквом законодавцу вероватно одговорили онако као лавови у Антистеновој басни, кад су у скупштину животиња дошли зечеви и захтевали за све једнака права: — »А где су ваше шапе?«
Ну, у пракси, монархија је обично најлошији облик владавине, јер значајне способности и велика врлина нису блиске рођаке. Отуда најбољи облик владавиве јесте аристократија, власт одлично школованих и способних људи. Владавина је и сувише сложена ствар да би о потребним мерама решавало одгласавање — већ су и мање важне мере везане за знање и способност. »Решење о томе ко правилно лечи припада само ономе ко је и сам лекар ... Тако и остали имају полагати рачун само пред онима који су њима једнаки... Према томе, требало би мислити да ствар исто тако стоји и са избором чиновника, јер је и правилно бирање ствар стручњака, као што, на пример, само геометричар може да бира геометричара, или стручњак у бродарству крмилара... Зато гомили не би требало поверавати власт да бира чиновнике и да их позива на одговорност.«
Главна тешкоћа наследне аристократије лежи у недостатку сталне економске основице; непрестани приток нових богаташа раније или доцније отвара државне службе ономе који највише понуди. »... Рђаво је стање ... кад се државне службе могу да купе. Такав закон даје више почасти богатству него ли способности, и такво стање изазива лакомост у целој држави. Јер према ономе што главарима државе важи као часно вазда се управља суд осталих грађана.« (»Prestige imitation ili подражавање достојанственика« у модерној социјалној психологији.) »А где способност не заузима прво место немогућно је да се аристократски устав дуго одржи.«
Демократија је редовно резултат револуције против плутократије. »Користољубље владајуће класе води до сталног смаљивања те класе (по Марксу »елиминација средње класе«) и до јачања гомиле која напослетку устаје против својих господара и заснива демократију«. Ова »владавина оних који су без средстава« има нека преимућства. »Јер свако узет појединачно имаће, можда, лошији суд него ли стручњаци, али сви заједно имаће бољи или не лошији. Друго, у неким стварима уметник који је свршио неко дело није ни једини ни најбољи судија... На пример, не може о кући да доноси мишљење само онај ко ју је саградио ... него онај коме она треба, т. ј. домаћин . .. Исто тако гост о јелу, а не кувар.« И »гомила и о многим другим стварима има бољи суд него ли појединац, био он ма ко. — Затим, велика гомила мање је изложена кварењу. И као ни велика количина воде, тако ни гомила не може да се лако поквари као појединац. Обузме ли појединца гнев или. каква друта слична страст, његово суђење мора да се помути, али би се тешко могло догодити да би страст све обузела и да би сви погрешили.«
Уопште узевши, демократија је инфериорнија него ли аристократија, јер се она оснива на лажној претпоставци једнакости; она »настаје из схватања да ће они који су у неком погледу једнаки (на пример, пред законом) бити једнаки у свима стварима; како су људи једнако слободни, они траже право на потпуну једнакост«. Резултат је да се обдареност жртвује броју гласова, а бројем гласова управљају смицалице. Како се народ лако може завести и како је он у својим схватањима несталан, то би требало да се право гласања ограничи на интелигенцију. Прави пут је комбинација аристократије и демократије.
Ово срећно сједињење може да се нађе у облику конституционалне владавине. То није најбољи облик владавине који се може замислити, — то би била аристократија васпитања, — али то је најбољи могућни облик државе. »Али, који је устав најбољи, и који је живот за већину држава и за већину људи најбољи? Ту се не може погодити решење ако се постави мерило једне врлине која је страна просту човеку, или ако се прихвати Васпитање за које се изискују нарочито срећне природне способности и богата средства, или ако се претпостави и устав који је идеал наших жеља, — него тако ако се има у виду живот којии већина људи може да живи, и устав који може да се одржи у највећем броју држава.« Расправљањима о држави мора претходити један приицип, наиме да онај део државе који владавину жели да одржи мора бити јачи него ли други део који то не жели; а јачина се не састоји ни у броју ни у самом поседу, ни у војничким и политичким способностима, него у комбинацији тога тако да треба узети у обзир »слободу, имање, културу и отмено порекло, као и чисту нумеричку супериорност«. А где може да се нађе економска већина која би потпомогла нацртану уставну владавину? Најпре у средљој класи, и тако бисмо опет пред собом имали златну средину, као што баш уставна владавина претставља средину између демократије и аристократије. Ова држава биће довољно демократска чим свакоме допусти успињање у државне службе; она ће бити довољно аристократска ако саме службе отвара само таквим кандидатима који су се истински успели и потпуно су образовани. С које год се стране човек приближи вечном политичком питању, једнако долази до истога закључка: заједница мора сама себи постављати циљеве, а потребна средства морају одабирати и примењивати стручњаци. Избор мора бити демократски пропшрен, али државна служба мора се строго резервисати за одлично спремљене и одабране обдаренике.
----
<< Философија државе: Брак и васпитање | Философија државе: Демократија и аристократија |Критика >>


LaTeX/Прављење 3D графикa

За прављење 3D графика, постоји основна функционалност у PGF/TikZ пакету, ипак цртање 3D графика са PGF/TikZ је веома нефлексибилно, углавном зато што има недостатак функционалности за идентификацију површина које су закривљене другим површинама и које би требало да буду искључене из обрађене слике.
Пакет које се може адекватно носити са овим је пакет.
Још један начин за прављење 3D графика је да користите Asymptote.
И још један начин за прављење 3D графика је да користите .
en:LaTeX/Creating 3D graphics


Водич за Пајтон 2.6/Више са листама

Већ смо видели листе и како се могу користити. Сада када имате мало више предзања ићи ћу у више детаља о листама. Прво ћемо погледати више начина да се добију елементи у листи, а онда ћемо причати о копирању.
Ево неких примера коришћења приступа индексирања једном елементу листе:
>>> неки_бројеви = ['нула', 'један', 'два', 'три', 'четири', 'пет']
>>> неки_бројеви[0]
'нула'
>>> неки_бројеви[4]
'четири'
>>> неки_бројеви[5]
'пет'
Сви ови примери треба да изгледају познато. Ако желите прву ставку у листи само погледајте индекс 0. Друга ставка је индекс 1 и тако даље кроз листу. Међутим шта ако желите последњу ставку у листи? Један начин би био коришћење len() функције као неки_бројеви[len(неки_бројеви) - 1]. Овај начин ради пошто len() функција увек враћа последњи индекс плус један. други би онда био неки_бројеви[len(неки_бројеви) - 2]. Постоји лакши начин да се ово уради. У Пајтону последња ставка је увек индекс -1. Претпоследњи је индекс -2 and и тако даље. Ево још неких примера:
>>> неки_бројеви[len(неки_бројеви) - 1]
'пет'
>>> неки_бројеви[len(неки_бројеви) - 2]
'четири'
>>> неки_бројеви[-1]
'пет'
>>> неки_бројеви[-2]
'четири'
>>> неки_бројеви[-6]
'нула'
Тако свака ставка у листи може бити индексирана на два начина: спреда и отпозади.
Други користан начин да се у деловима листе користи одсецање. Ево још једног примера који ће Вам дати идеју за шта може да се користи:
>>> ствари = [0, 'Фред', 2, 'С.П.А.М.', 'Чарапа', 42, "Џек", "Џил"]
>>> ствари[0]
0
>>> ствари[7]
'Џил'
>>> ствари[0:8]
[0, 'Фред', 2, 'С.П.А.М.', 'Чарапа', 42, 'Џек', 'Џил']
>>> ствари[2:4]
[2, 'С.П.А.М.']
>>> ствари[4:7]
['Чарапа', 42, 'Џек']
>>> ствари[1:5]
['Фред', 2, 'С.П.А.М.', 'Чарапа']
Пресецање се користи да се врати део листе. Оператор одсецање је у облику ствари[први_индекс:последњи_индекс]. Одсецање сече листу после први_индекс и пре последњи_индекс и враћа делове између. Можете користити оба типа индексирања:
>>> ствари[-4:-2]
['Чарапа', 42]
>>> ствари[-4]
'Чарапа'
>>> ствари[-4:6]
['Чарапа', 42]
Други трик је са осецањем неодређеног индекса. Ако први индекс није одређен почетак листе се претпоставља. Ако последњи индекс није наведен цео остатак листе се претпоставља. Овде су неки примери:
>>> ствари[:2]
[0, 'Фред']
>>> ствари[-2:]
['Џек', 'Џил']
>>> ствари[:3]
[0, 'Фред', 2]
>>> ствари[:-5]
[0, 'Фред', 2]
Овде је (HTML-ом инспирисан) пример програма (копирате у песми дефиниције ако желите):
песма = ["", "Џек", "и", "Џил", "", "су", "отишли", "уз",
"брдо", "да", "", "донесу", "кофу", "",
"воде.", "Џек", "је пао", "", "доле", "и", "разбио",
"", "његову", "круницу", "и", "", "Џил", "се",
"", "преврнула", "после"]
def започни_затамњено(текст):
true = 1
false = 0
## затамњено говори да ли тренутно гледамо или не
## затамњени део текста.
затамњено = false
## почетак_блок је индекс почетка неког незатмњеног
## дела текста или затамњеног.
почетак_блок = 0
for идекс in range(len(текст)):
## Рукује са покретањем затамњеног текста
if текст[индекс] == "":
if затамњено:
print "Грешка: Додатно затамњено"
## print "Није затамњено:", тектс[почетак_блок:индекс]
затамњено = true
почетак_блок = индекс + 1
## Рукује крајем затамњених слова
## Не заборавите да је последњи број у делу индекс
## након што је последњи индекс коришћен.
if текст[индекс] == "":
if not затамњено:
print "Грешка: сувише близу затамњеног"
print "Затамњено[", почетак_блок, ":", индекс, "]", текст[почетак_блок:индекс]
затамњено = false
почетак_блок = индекс + 1
започни_затамњено(песма)
са излазом:
Затамњено [ 1 : 4 ] ['Џек', 'и', 'Џил']
Затамњено [ 11 : 15 ] ['да', 'донесу', 'кофу']
Затамњено [ 20 : 23 ] ['доле', 'и', 'разбио']
Затамњено [ 28 : 30 ] ['Џил', 'се']
Функција започни_затамњено() тражи у листи која је подељена на речи
и знакове. Знаци које тражи су <B> где почиње
затамњени текст и </B> где се завршава. Функција
започни_затамњено() иде кроз код и тажи почетак и крај
знакова.
Следећи карактеристика са листама је копирање. Ако покушате нешто једноставно као:
>>> a = [1, 2, 3]
>>> b = a
>>> print b
[1, 2, 3]
>>> b[1] = 10
>>> print b
[1, 10, 3]
>>> print a
[1, 10, 3]
Ово вероватно изгледа изненађујуће с обзиром да је добро дошло до измене b
резултата у a. Оно што се догађа је да
наредба b = a прави b као ''референцу'' од a.
Ово значи да се b може посматрати као друго име за a.
Стога свака модификација b мења a исто тако. Међутим,
неки задаци не стварају два имена за једној листи:
>>> a = [1, 2, 3]
>>> b = a * 2
>>> print a
[1, 2, 3]
>>> print b
[1, 2, 3, 1, 2, 3]
>>> a[1] = 10
>>> print a
[1, 10, 3]
>>> print b
[1, 2, 3, 1, 2, 3]
У овом случају b није референца од a пошто
израз a * 2 ствара нову листу. Затим наредба
b = a * 2 даје b референцу за a * 2 пре него
референцу за a. Све доделе операција праве референцу.
Када прођете листу као аргумент функције створили сте
добро референце. Већину времена не морате да бринете о
стварању референци уместо копија. Међутим, када треба да се
промени једна листа без промене другог имена листе
треба да се уверите да сте стварно створили копију.
Постоји неколико начина да направите копију листе. Најједноставнији који
углавном ради да оператор одсеца јер то увек прави
нову листу чак иако је тај део цела листа:
>>> a = [1, 2, 3]
>>> b = a[:]
>>> b[1] = 10
>>> print a
[1, 2, 3]
>>> print b
[1, 10, 3]
Узимањем дела [:] ствара се нова копија листе. Међутим то
копира само спољашњу листу. Било која подлиста унутра је и даље референца
подлисте у оригиналној листи. Стога, када листа
садржи листе, унутрашње листе морају бити добро копиране. Можете то
урадити ручно али Пајтон већ садржи режим за то. Би само
користите deepcopy функцију из copy режима:
>>> import copy
>>> a = [[1, 2, 3], [4, 5, 6
>>> b = a[:]
>>> c = copy.deepcopy(a)
>>> b[0][1] = 10
>>> c[1][1] = 12
>>> print a
[[1, 10, 3], [4, 5, 6
>>> print b
[[1, 10, 3], [4, 5, 6
>>> print c
[[1, 2, 3], [4, 12, 6
Пре свега приметите да је a листа листе. Затим
да када се b[0][1] = 10 порену оба a и b су
промењени, али c није. Ово се дешава зато што су унутрашњи низови
и даље референце када се користи оператор одсецања. Међутим са
deepcopyc је потпуно ископирано.
Па, да ли треба да бринем о овим референцама сваки пут када користим
функцију или =? Добра вест је да само морате да бринете о
референцама када користите речнике и листе. Бројеви и низови
стварају референце када се додељује али свака операција над бројевима и
низовима,која их мења, ствара нову копију па их никада не можете променити
неочекивано. Ви морате да мислите о референцама само када мењате
листу или речник.
До сада сте се вероватно запитали зашто се уопште користе референце?
Основни разлог је брзина. Много је брже направити референцу за хиљаду
елемената листе него да копирате сваки елемент листе. Други разлог је
је тај што Вам дозвољава да имате функцију за мењање унете листе
или речника. Само запамтите за референце, ако икад имате неки чудан проблем
са измењеним податком који не би требало да буде такав.
en:Non-Programmer's Tutorial for Python 2.6/More on Lists


Водич за Пајтон 2.6/Речници

Ово поглавље је о речницима. Ако отворите речник, треба да приметите да се сваки улаз састоји из сва дела, од речи и њене дефиниције. Реч је кључ за проналажење значења речи, шта та реч значи сматра се вредношчу тог кључа. У Пајтону, речници имају кључ и вредност. Кључеви се користе за проналажење вредности. Овде је пример речника у коришћењу:
def штампај_мени():
print '1. Штампај речник'
print '2. Додај дефиницију'
print '3. Обриши реч'
print '4. Потражи реч'
print '5. Изађи'
print
речи = {}
мени_избор = 0
штампај_мени()
while мени_избор != 5:
menu_choice = input("Укуцајте број (1-5): ")
if мени_избор == 1:
print "Дефиниција:"
for x in речи.keys():
print x, ": ", речи[x]
print
elif мени_избор == 2:
print "Додај дефиницију"
име = raw_input("Реч: ")
значење = raw_input("Дефиниција: ")
речи[име] = значење
elif мени_избор == 3:
print "Обриши реч"
име = raw_input("Реч: ")
if име in речи:
del речи[име]
print име, " је обрисано."
else:
print име, " није пронађено."
elif мени_избор == 4:
print "Потражи реч"
име = raw_input("Реч: ")
if име in речи:
print "Дефинифија ", име, " је: ", речи[име]
else:
print "Нема дефиниције за ", име, " није пронађена."
elif мени_избор != 5:
штампај_мени()
И овде је излаз:
1. Штампај речник
2. Додај дефиницију
3. Обриши реч
4. Потражи реч
5. Изађи
Укуцајте број (1-5): 2
Додај дефиницију
Реч: Пајтон
Дефиниција: Змија, програмски језик, Британска комедија.
Укуцајте број (1-5): 2
Додај дефиницију
Реч: Речник
Дефиниција: Књига у којој су речи дефинисане.
Укуцајте број (1-5): 1
Дефиниција:
Пајтон: Змија, програмски језик, Британска комедија.
Речник: Књига у којој су речи дефинисане.
Укуцајте број (1-5): 4
Потражи реч
Реч: Пајтон
дефиниција Пајтон је: Змија, програмски језик, Британска комедија.
Укуцајте број (1-5): 3
Обриши реч
Реч: Речник
Речник је обрисано.
Укуцајте број (1-5): 1
Дефиниција:
Пајтон: Змија, програмски језик, Британска комедија.
Укуцајте број (1-5): 5
Овај програм је сличан листи имена из претходног поглавља о листама (напоменути да листе користе индексе а речници не). Ево како програм ради:
* Прво је функција штампај_мени дефинисана. штампај_мени само штампа мени који је касније коришћен два пута у програму.
* Следећа је линија која смешно изгледа речи = {}. Цела ова линија говори Пајтону да је речи речник.
* Наредних неколико редова само праве да мени ради.
for x in речи.keys():
print x, ": ", речи[x]
* Ово иде кроз речник и штампа све информације. Функција  речи.keys() враћа листу која је онда коришћена од стране for петље. Листа враћена од стране keys() није у сваком конкретном реду па ако то желите по абецедном реду морате сортирати. Слично листама, наредба речи[x] се користи за приступ одређеном члану речника. Наравно у овом случају x је низ.
* Следеће линија речи[име] = значење додаје реч и дефиницију у речник. Ако име већ постоји у речнику зналење замењује оно што је било пре.
if име in речи:
del речи[име]
* Види да ли је име у речима и уклоните га ако јесте. Израз име in речи враћа тачно ако је име кључ у речи у супротном враћа нетачно. Линија del речи[име] брише кључ име и вредност у вези са тим кључем.
if име in речи:
print "Дефиниција ", име, " је: ", речи[име]
* Check to see if words has a certain key and if it does prints out the definition associated with it.
* Lastly if the menu choice is invalid it reprints the menu for your viewing pleasure.
Рекапитулација: Речници имају кључеве и вредности. Кључеви могу бити низови или
бројеви. Кључеви указују на вредности. Вредности могу бити било који тип променљиве
(укључујући листе или чак речнике (ови речници или листе наравно
могу да садрже речнике или саме листе (страшно? :-)
)). Ево примера употребе листе у речнику:
макс_тачка = [25, 25, 50, 25, 100]
задаци = ['hw ch 1', 'hw ch 2', 'квиз ', 'hw ch 3', 'тест']
студенти = {'#Макс': макс_тачка}
def штампај_мени():
print "1. Додај студента"
print "2. Обриши студента"
print "3. Штампај оцене"
print "4. Сними оцене"
print "5. Штампај Мени"
print "6. Излаз"
def штампај_све_оцене():
print '\t',
for i in range(len(задаци)):
print задаци[i], '\t',
print
кључеви = студенти.кључеви()
кључеви.sort()
for x in кључеви:
print x, '\t',
оцене = студенти[x]
штампај_оцене(оцене)
def штампај_оцене(оцене):
for i in range(len(оцене)):
print оцене[i], '\t', '\t',
print
штампај_мени()
мени_избор= 0
while мени_избор != 6:
print
мени_избор = input("Избор Менија (1-6): ")
if мени_избор == 1:
име= raw_input("Студент за додавање: ")
студент[име] = [0] * len(макс_тачка)
elif мени_избор == 2:
име= raw_input("Студент за брисање: ")
if име in студент:
del студент[име]
else:
print "Студент:", име, "није пронађен"
elif мени_избор == 3:
штампај_све_оцене()
elif мени_избор == 4:
print "Сачувај оцену"
име = raw_input("Студент: ")
if име in студент:
оцене = студент[име]
print "Укуцајте број оцене за снимање"
print "Укуцајте 0 (нула) за излаз"
for i in range(len(задаци)):
print i + 1, задаци[i], '\t',
print
штампај_оцене(оцене)
која = 1234
while која!= -1:
која = input("Промени коју оцену: ")
која = која - 1
if 0 <= која < len(оцене):
оцена = input("Оцена: ")
оцене[која] = оцена
elif која != -1:
print "Лош број оцене"
else:
print "Студент није пронађен"
elif мени_избор != 6:
штампај_мени()
и овде је једноставан излаз:
1. Додај студента
2. Обриши студента
3. Штампај оцене
4. Сачувај оцену
5. Штампај Мени
6. Излаз
Мени избро (1-6): 3
hw ch 1 hw ch 2 квиз hw ch 3 тест
#Макс 25 25 50 25 100
Мени избор (1-6): 5
1. Додај студента
2. Обриши студента
3. Штампај оцене
4. Сачувај оцену
5. Штампај Мени
6. Излаз
Мени избор (1-6): 1
Додај студента: Бил
Мени избор (1-6): 4
Сачувај оцену
Студент: Бил
Укуцајте број оцене за снимање
Укуцајте 0 (нула) за излаз
1 hw ch 1 2 hw ch 2 3 квиз 4 hw ch 3 5 тест
0 0 0 0 0
Промени коју оцену: 1
Оцена: 25
Промени коју оцену: 2
Оцена: 24
Промени коју оцену: 3
Оцена: 45
Промени коју оцену: 4
Оцена: 23
Промени коју оцену: 5
Оцена: 95
Промени коју оцену: 0
Мени избор (1-6): 3
hw ch 1 hw ch 2 квиз hw ch 3 тест
#Макс 25 25 50 25 100
Бил 25 24 45 23 95
Мени избор (1-6): 6
Ево како програм ради. У основи, променљива студент је
речник са кључевима као назив студената и
вредности љихових оцена. Прве две линије стварају две листе.
Следећа линија студент = {'#Макс': макс_тачка} ствара нови
речник са кључем {#Макс} и вредност је постављена на [25, 25, 50, 25, 100], јер то је оно што је макс_тачка била када је задатак направљен (ја користим кључ #Макс откад је # сортирано
испред било којих словних знакова). Следеће је штампај_мени
дефинисано. Следећа функција штампај_све_оцене је дефинисана у
линијама:
def штампај_све_оцене():
print '\t',
for i in range(len(задаци)):
print задаци[i], '\t',
print
кључеви = студенти.keys()
кључеви.sort()
for x in кључеви:
print x, '\t',
оцене = студенти[x]
штампај_оцене(оцене)
Обратите пажњу како су се прво кључеви измакли од студенти речника са кључеви функцијом у линији књучеви = студенти.keys(). кључеви је листа тако све функције за листе могу да се користи на њој. Следеће, кључеви су сортирани кључеви.sort() пошто је то листа. for се користи да иде кроз све кључеве. Оцене се чувају као листе унутар речника, тако да је додељивање оцене = студенти[x] даје листу оцене која је сортирана под кључем x. Функција штампај_оцене штампа листу и дефинише је неколико линија касније.
Касније линије програма спроводе различите опције менија. Линија студенти[име] = [0] * len(макс_тачка) додаје студента на кључ његовог имена. Ознака [0] * len(макс_тачка) ствара листу нула која је исте дужине као листа макс_тачка.
Унос обриши студента само брише студента на сличан начин телефонском именику. Избор чување оцена је мало сложенији. Оцене су преузете у реду оцене = студенти[име] и добијају референцу оцене ученика име. Оцена је онда сачувана у линији оцене[која] = оцена. Можда сте приметили да оцене никад није стављено унутар речника студенти (као ни студенти[име] = оцене). Разлог за изјаве која недостаје је да је оцене други назив за студенти[име] па је мењање оцене мења студенти[оцене].
Речници обезбеђују једноставан начин да се повежу кључеви и вредности. Ово се може користити за лако праћење података који цу везани за различите кључеве.
en:Non-Programmer's Tutorial for Python 2.6/Dictionaries


LaTeX/Xy-pic

xy је специјалан пакет за цртање дијаграма. Да бисте га користили, једноставно додајте следећу линију у преамбулу Вашег документа:
\usepackage[all]{xy}
где "all" значи да желите да учитате велики стандардни сет функција из ''Xy-pic'', који одговарају прављењу дијаграма о којима чемо овде говорити.
Примарани начин за цртање ''Xy-pic'' дијаграма је преко матрички оријентисаног платна, где се сваки елемент дијаграма ставља у слот матрице:
\xymatrix команда мора се користити у math mode. Овде, прецизирамо две линије и две колоне. Да бисмо од овога направили матрички дијаграм додајемо само усмерене стрлице користећи \ar команду.
Команда стрелице постављена је на ћелију порекла за стрелицу. Аргументи су правци у којима стрелица треба да показује (горе, доле, десно и лево).
За прављење дијагонала, користите само више од једног правца. Заправо, можете да понављате правце да би стрелица била већа.
Можемо да нацртамо доста интересантних дијаграма тако што додамо описе стрелицама. Да бисмо ово урадили, користимо уобичајене superscript и subscript операторе.
Као што је показано, ове операторе користите у math mode. Једина разлика је што superscript значи "на врху стрелице", и subscript значи "испод стрелице". Постоји трећи оператор, вертикална права: | Која смешта текст унутар стрелице.
За цртање стрелице са рупом, користите \ar[...]|\hole. У неким ситуацијама, неоходно је да направите разлику између типова стрелица. Ово се може остварити тако што се постављају описи на њих, или тако што им се промени изглед
Приметите разлику између следећих дијаграма:
Модифајер између косих црта дефинише како се цртају криве. ''Xy-pic'' нуди много начина за утицање цртања кривих; за више информација, погледајте ''Xy-pic'' документацију.
Ако Вас занима темељниија интродукција, онда треба да погледате , која садржи линкове до неколико других туторијала као и другу документацију.
en:LaTeX/Xy-pic


LaTeX/Напреднија математика

Ова страница описује нека напреднија коришћења математике у LaTeXу. Конкретно, највише користи “AMS-LaTeX” пакете, које је обезбедило Амреричко друштво математичара.
1 Нумерисање једначина
equation окружење аутоматски нумеризује једначине:
Такође, можете користити и (или из пакета) команде да бисте редом означили и нумерисали једначине. За једначину број 1, резултат у <math>1\,</math> и резултат у <math>(1)\,</math>:
Даље информације можете пронаћи у поглављу Ознаке и референцирање.
Како би нумерација пратила наслове и поднаслове, морате користити пакет или “AMS” класну документацију.
Онда унесите
у увод, како бисте добили нумерацију на нивоу наслова или
како би нумерацију вратили на ниво поднаслова.
Ако стил који користите захтева стављање тачака после редних бројева (нпр. као што се то захтева у пољској типографији, команда, у уводу, ће резултирати да бројеви једначина, у примеру изнад буду написани као следећи: (1.1..1).
Како бисте избацили дупликат тачку, одмах након тога додајте следећу команду :
За шему нумерисања коришћењем , употребите:
у уводу вашег документа.
Приметити: Иако можда изгледа као да ради сама од себе, неће ресетовати број једначина у сваком наслову. Мора се користити заједно са ручним ресетовањем бројева једначина после почетка сваког новог наслова, или са много чистијим .
1.1 Подређено нумерисање једначина
Како бисте нумерисали подређене једначине у нумерисаном окружењу једначина, тај део документа у окружењеt:
Референцирање подређених једначина може бити урађено било којом од две методе: додавањем ознаке после команде, што ће риференцирати главну једначину (1.1 изнад), или додавањем ознаке на крају сваког реда, пре команде, што ће риференцирати подређене једначине (1.1a или 1.1b изнад). Могуће је додати обе ознаке, у случају да су оба типа риференцирања потребна.
2 Вретикално усклађивање приказане математике
Проблем, који се често појављивао са приказаним окружењима, ( и ), јесте немогућност обухватања вишеструких редова. Док је могуће дефинисати редове индивидуално, али то их неће ускладити.
2.1 Изнад и испод
и команде пишу симболе испод и изнад уписаних симбола "above" и "below" израза.
Без “AmsTex” исти резултат се може оджати уз помоћ .
Ово може посебно бити корисно за прављење нових бинарних релација:
или да се прикаже употреба Лопиталовог правила.:
Згодно је дефинисати нови оператор који ће ставити знак једнакости између “H” и обезбеђене фракције:
који редукује пример изнад:
Ако је циљ коментарисати одређене делове једначина, и команде могу бити корисније. Међутим, оне имају другачију синтаксу (и могу се поравнати командом):
Понекад је коментар дужи од формуле која се коментарише, што може проузроковати проблем са размацима. Ово се може отклонити коришћењем команде:
Алтернативно, за употребу заграда користите и команде:
Опциони аргументи постављају редом дебљину и висину заграда:
и команде дају стрелице које продужују дужину текста. Опет, синтакса је другачија: опциони аргумент (користи [ и ]) прецизира сабскипту, и обавезан аргумент (користи { and }) прецизира суперскрипту (што се може оставити празно убацивањем празног простора).
За још проширених стрелица, морате користити пакет:
и за харпуне:
2.2 и
и окружења, омогућена кроз пакет, се користе за аранжирање једначина, које се простиру кроз више редова. За матрице и табеле, прецизира “ломљење” редова, и се користи да укаже тачку у којој би редови требало да буду поравнати.
окружење се користи као или окружење:
Приметити да окружење не мора бити “угнежђено” унутар (или сличног) окружења. Уместо тога, је замена за таква окружења; садржај унутар се аутоматски ставља унутар математичког мода.
потискује нумеризацију. Како бисте присилили нумеризацију специфичног реда, користите команду пре “ломљења” реда.
је слично, али аутоматски нумеризује сваки ред као и окружење. Можемо се позивати на појединачне редове уметањем пре паузе реда. или команда се може користити за потискивање датог реда:
Приметите да смо додали мало увлачења у другом реду. Такође, морамо убацити дупле заграде ({}) пре + знака, иначе LaTeX неће направити исправан размак после знака + . За ралог за ово јесте да, без заграда, LaTeX интерпретира знак + као унарног оператора, уместо бинарног, какав он заправо јесте.
Могућа су и компликованија равнаља, са додатним на једном реду, наводећи вишеструке "колоне једначина", од којих је свака поравната. Следећи пример илуструје правило поравнања окружења:
2.3 Заграде које овухватају више редова
Ако желите да се заграда настави на следећи ред, урадите следеће:
У овој конструкцији, величине леве и десне заграде нису аутоматски једнаке, упркос употребе . Ово је зато што је сваки ред записан као потпуно одвојена једначина —приметите употребу и тако да нема неупарених и команди, унутар реда (ово није потребно ако је формула у једном реду). Можете контролисати, ручно, величину заграда уз помоћ , , , и команди.
Алтернативно, висина више једначине може бити замењена у другу коришћењем команде:
2.3.1 Коришћење поравнатих заграда за функције у више делова
Такође, можете користити


Водич за Пајтон 2.6/Ко ту улази?

0.1 Улаз и променљиве
Сада осећам да је време за стварно компликован програм. Ево га:
print "Стој!"
user_reply = raw_input("Ко иде овде? ")
print "Можете проћи,", user_reply
Када га ја покренем, овде је оно што мој екран приказује:
Стој!
Ко иде овде? Џош
Можете проћи, Џош
''Запамтите: Покретањем програма куцањем F5, Пајтонова љуска ће дати излаз:''
Стој!
Ко иде овде?
''Треба да укуцате ваше име у Пајтон љусци, затим кликните Enter да добијете даљи излаз.''
Наравно када покренете програм ваш прозор ће изгледати другачије
због raw_input() изјаве. Када покренете програм
приметићете (покренули сте програм, зар не?) да морате да
укуцате ваше име и онда притисните Enter. Тада програм штампа
још текста и такође ваше име. Ово је пример ''улаза''. Програм
достиже одређену тачку и онда чека да корисник унесе
неки податак који ће програм касније користити.
Наравно, добијање информација од корисника је бескорисно ако програм нема где да искористи ту информацију и овде променљиве долазе. У претходном програму, user_reply је ''променљива''. Променљиве су као кутија која чува неке делове података. Овде је програм који приказује примере променљивих:
a = 123.4
b23 = 'Спам'
b = 432
c = a + b
print "a + b је", c
print "Име је", име
print "Сортирани делови, После поноћи или", b23
И овде је излаз:
a + b је 555.4
Име је Бил
Сортирани делови, После поноћи или
Променљиве у програму изнад су a, b23, име, b, и c. Променљива у Пајтону може сачувати било који тип податка - у овом примеру смо сачували неке ниозове (нпр. "Бил") и неке бројеве (нпр. 432).
Запамтите разлику између низова и назива променљивих. Низови су означени наводницима, што говори рачунару "не покушавај да разумеш, само узми овај текст онакав какав је":
print "име"
Ово ће штампати у тексту:
име
овако. Имена променљивих су написана без икаквих наводника и упућује рачунар "узми вредност коју сам претходно унео под овим именом":
print име
што ће штампати (пре претходног примера):
Бил
0.2 Додељивање
Добро, ове кутије смо назвали променљивим и такође податке који улазе у променљиве. Рачунар ће видети линију као  и чита је као "Убаци низ Бил у кутију (или променљиву) име". Касније он види изјаву c = a + b и чита је као "убаци збир a + b или 123.4 + 432 што је једнако 555.4 у c". Десна страна ове изјаве (a + b) је ''једнака'' и резултат се налази у променљивој на левој страни (c). Ово се зове ''додељивање'', и не би требало да вас збуни задати знак једнакости овде(=) са "једнакости" у математици (то је ово == што ћемо користити касније).
Овде је још један пример коришћења променљивих:
a = 1
print a
a = a + 1
print a
a = a * 2
print a
И наравно ово је излаз:
1
2
4
Чак и ако је иста променљива са обе стране рачунар и даље чита као "Прво пронађи податак за складиштење а затим где тај податак иде".
Још један програм пре него што завршим ово поглавље:
број = input("Унеси број: ")
текст = raw_input("Унеси низ: ")
print "број =", број
print "број је a", type(број)
print "број * 2 =", број * 2
print "текст =", текст
print "текст је a", type(текст)
print "текст * 2 =", текст * 2
Излаз који сам добио:
Унеси број: 12.34
Унеси низ: Здраво
број = 12.34
број је <type 'float'>
број * 2 = 24.68
текст = Здраво
текст is a <type 'str'>
текст * 2 = ЗдравоЗдраво
Приметите да је број добијен са input() док је текст добијен са raw_input(). raw_input() враћа низ док input() враћа број. Када желите да корисник укуца број користите input() али ако желите да унесе низ куцајте raw_input().
Друга половина програма користи type() што говори шта
је променљива. Бројеви су типа int или float, што су
скраћенице за ''цео број'' и ''разломак'' (углавном коришћен за децималне бројеве). Текстуални низови су типа str, скраћеница за ''niz''. На целим бројевима и разломцима се могу радити математичке функције, на низовима не. Запамтите како када Пајтон
множи број целим бројем очекивана ствар се догоди. Међутим
када низ помножите целим бројем резултат је помножен
и створена је копија низа (нпр., текст * 2 = ЗдравоЗдраво).
Операције са низовима раде другачије ствари него
операције са бројевима. Ево неких интерактивних примера
да покажемо нешто више.
>>> "Ово" + " " + "је" + " додато."
'Ово је додато.'
>>> "Ха, " * 5
'Ха, Ха, Ха, Ха, Ха, '
>>> "Ха, " * 5 + "ха!"
'Ха, Ха, Ха, Ха, Ха, ха!'
>>>
Ово би исто могло да се одради као програм:
print "Ово" + " " + "је" + " додато."
print "Ха, " * 5
print "Ха, " * 5 + "ха!"
Овде је листа неких операција над низовима:
Операција, Ознака, Пример
Понављање, *, "и" * 5
== "иииии"
Уланчавање, +, "Здраво, " + "свете!"
== "Здраво,свете!"
|}
0.3 Примери
Мерење_времена.py
# Овај програм рачуна проблеме мерења и удаљености
print "Унесите меру и удаљеност"
мера = input("Мера: ")
удаљеност = input("Удаљеност: ")
print "Време:", (удаљеност / мера)
Примери низа:
Унесите меру и удаљеност
Мера: 5
Удаљеност: 10
Време: 2
Унесите меру и удаљеност
Мера: 3.52
Удаљеност: 45.6
Време: 12.9545454545
Обим.py
# Овај програм рачуна обим и површину правоугаоника
print "Израчунај информације о правоугаонику"
дужина = input("Дужина: ")
ширина = input("Ширина: ")
print "Површина", дужина * ширина
print "Обим", 2 * дужина + 2 * ширина
Примери низа:
Израчунај информације о правоугаонику
Дужина: 4
Ширина: 3
Површина 12
Обим 14
Израчунај информације о правоугаонику
Дужина: 2.53
Ширина: 5.2
Површина 13.156
Обим 15.46
температура.py
# Пребацује из фаренхајта у целзијус
темп = input("Температура у фаренхајтима: ")
print (темп - 32.0) * 5.0 / 9.0
Примери низа:
Температура у фаренхајтима: 32
0.0
Температура у фаренхајтима: -40
-40.0
Температура у фаренхајтима: 212
100.0
Температура у фаренхајтима: 98.6
37.0
0.4 Вежбе
# Напишите програм који узима 2 низа променљивих и два броја променљивих од корисника, уланчати (повезати их без размака) и приказати низове, затим помножити два броја у новом реду.
en:Non-Programmer's Tutorial for Python 2.6/Decisions


LaTeX/Кратка биографија

''кратка биографија'' очо резиме има универзални захтев: њено форматирање мора бити беспрекорно. Ово је добар пример случаја где моћ и функционалсност LaTeX-а далазе у први план.
Захваљујући његовом јаком штампарском ставу, LaTeX је дефнинитивно процесор докумената кога ћете изабрати ако пишете кратку биографију.
Наравно ви можете да дизајнирате вашу сопствену кратку биографију ручно. Иначе, можда ћете пожелети да користите посвећену класу за тај задатак посебно. На овај начин, писање кратке биграфије у латексу LaTeX је подједнако просто као и попуњавање формулара, и када то завршите све сте завршили. Seeveeze чини три одњих доступним (ModernCV PlasmatiCV и FriggeriCV) за просте интернет формуларе: никакво кодирање ни едитор нису потребни.
Цела листа пакет кратке биографије је доступна на .
1 Moderncv
Из CTAN:
''Moderncv обезбеђује класу документа за подешавање типова модерних кратких биографија, како у класичном тако и у опуштенијем стилу. Поприлично је прилагодљив, дозвољавајући вам да дефинишете ваш сопствени стил тако што ћете мењати боје, слова, итд.''
Званјичан пакет омогућава неке веома добро коментарисане шаблоне који могу бити добар старт. Ове шаблоне можете наћи у вашој дистрибуцији (ако је дукументација инсталирана заједно са пакетима) или на крају крајева на .
Овде нећемо понављати шаблоне, само ћемо вам обезбедити убрзани курс. Стварно би требало да погледате шаблоне за више детаља.
1.1 Први документ
Већина команди се саме-по-себи објашњавају.
1.2 Прегледи тема
2 Вишејезичка подршка
Посебно је погодно за резиме да има само један документ за више излазних језика, зато што се многи делови деле међу верзијама (лични подаци, структура, итд.).
LaTeX са одговарајућим макроима обезбеђује удобан начин да се управља овим. Погледајте интернационализацију.


LaTeX/Теореме

Под "теоремом" можемо да мислимо на било каву означену дикцију за коју ми желимо да изгелда одвојена од остатка текста и са секвенционалним бројевима поред ње. Овај приступ се често киристи за теореме у математици, али се може користити за било шта. LaTeX обезбеђује команду која ће вам дозволити да лако дефинишете било коју дикцију коаја је налик на теорему.
1 Основне теореме
Пре свега, уверите се да имате amsthm пакет укључен:
\usepackage{amsthm}
Најлакше је следеће:
\newtheorem{име}{Одштампани излаз}
ово ставите у преамбулу. Први аргумент у имену ћете користити за референцирање, други аргумент је излаз који ће LaTeX штампати кад год га користите. На пример:
\newtheorem{мојадеф}{Дефиниција}
ће дефинисати мојадеф окружење; ако га користите на овај начин:
\begin{мојадеф}
Ово је нова дефиниција
\end{мојадеф}
Изгледаће овако:
:Дефиниција 3 ''Ово је нова дефиниција''
са линијама које ће га одвајати од остатка текста.
2 Бројачи теорема
Често се бројачи детерминишу по секција, на пример "Теорема 2.3" се односи на трећу теорему у другој секцији документа. У овом случају, наведите теорему на следећи начин:
\newtheorem{име}{Штампани излаз}[бројпо]
где је ''бројпо'' име нивоа секције (секције/подсекције/итд.) на том месту че се нумерисање десити.
По нормали, свака теорема користи свој сопствени бројач. Међутим често се дешава да слични типови теорема (нпр. Теореме, Леме и Поуке) деле бројач. У овом случају, дефинишите касније теореме као:
\newtheorem{име}[бројач]{Штампаниизлаз}
где је ''бројач'' име бројача који би требало да се користи. Обично ће ово бити име главне теореме.
Команда \newtheorem може имати највише један опциони аргумент.
Такође можете да направите окружење теорема које није нумерисано коришћењем newtheorem* команде. На пример,
\newtheorem*{мојадеф}{Дефиниција}
дефинише мојадеф окружење, које ће генерисати дефиниције без нумерисања. Ово захтева amsthm пакет.
3 Докази
Proof окружење се може користити за додавање доказа теоремама. Основна употреба је:
\begin{Proof}
Ово је мој доказ
\end{Proof}
Ово само додаје ''Proof'' у курзивним словима на почетку текста датог као аргумент и бели квадрат (Q.E.D. симбол, који је такође познат под именом tombstone) на крају. Ако пишете у другом језику који није Енглески, само користите бабел са тачним аргументом и одштампаном речју ''Доказ'' где ће излаз бити у скалду преведен; имаче, у извору имена окружења остаје proof.
Ако бисте желели ручно да иемнујете доказ, укључите и име у угластим заградама:
\begin{proof}[Доказ важне теореме]
Ово је мој важан доказ
\end{proof}
Ако је последња линија доказа показана као математика одна ће Q.E.D. симбол да се појави као последња празна линија. ДА бисте поставили Q.E.D. симбол на крају последње линије, употребите \qedhere команду:
\begin{proof}
Ово је мој доказ:
\[
a^2 + b^2 = c^2 \qedhere
\]
\end{proof}
Метода изнад не ради у застарелим окружењима eqnarray*. Уместо њега користите align*.
ДА бисте користили уређен Q.E.D. симбол, редефинишите \qedsymbol команду. Да бисте скроз сакрили Q.E.D. симбол, редефинишите га у празан простор:
\renewcommand{\qedsymbol}{}
4 Стилови теорема
Ово додаје могућност промене излаза окружења дефинисаних од стране \newtheorem коришћењем \theoremstyle команде у заглављу:
\theoremstyle{stylename}
аргумент је стил који желите да користите. Све касније дефинисане теореме ће користити овај стил. Ово је листа могућих пре-дефинисаних стилова:
име стила, Опис, Изглед
plain, Користи се за теореме, леме, пропозиције, итд. (по нормали), Теорема 1. ''Текст теореме.''definition, Користи се задефиниције и примере, Дефиниција 2. Текст дефиниције.
remark, Користи се зе примедбе и напомене, ''Примедба'' 3. Тескт примедбе.
4.1 Уређени стилови
Да бисте дефинисали ваш стил, користите \newtheoremstyle команду:
\newtheoremstyle{stylename}% име стила који се треба користити
{spaceabove}% мера простора који ће остати слободан изнад теореме. нпр.: 3pt
{spacebelow}% мера простора који ће остати испод теореме. нпр.: 3pt
{bodyfont}% име врсте слова које ће се користити у телу теореме
{indent}% мера простора за увлачење простора
{headfont}% име главне врсте слова
{headpunctuation}% интерпукција између главе и тела
{headspace}% простор после главе теореме; " " = нормалан простор међу речима
{headspec}% Ручно наведена глава
(Било који аргументи који су остављени празни ће преузети своју уобичајену вредност). Ево примера ''headspec'':
\thmname{#1}\thmnumber{ #2}:\thmnote{ #3}
што би изгледало отприлике овако:
Дефиниција 2: Топологија
за следеће:
\begin{дефиниција}[Топологија]...
(Аргумент напомене, који је у овом случају топологија, је увек опционалан, али се нече појављивати по нормали ако га не представите као горе у глави спецификације).
5 Сукоби
Окружење теореме се сукобљава са другим окружењима, на пример ''wrapfigure''.
Алтернативно решење је да редефинишете теорему, на пример на следећи начин:
% Поправити латекс
\def\smallskip{\vskip\smallskipamount}
\def\medskip{\vskip\medskipamount}
\def\bigskip{\vskip\bigskipamount}
% Ручно направљена теорема
\newcounter{thm}[секција]
\renewcommand{\thethm}{\thesection.\arabic{thm
\def\claim#1{\par\medskip\noindent\refstepcounter{thm}\hbox{\bf \arabic{поглавље}.\arabic{секција}.\arabic{thm}. #1.}
\it\ %\игнориши размаке
}
\def\endclaim{
\par\medskip}
\newenvironment{thm}{\claim}{\endclaim}
У овом случају теорема изгледа:
\begin{thm}{Claim}\label{lyt-prob}
Оставите га како јесте.
Тада ће те знати.
\end{thm}
6 Белешке
7 Спољашњње везе
*
en:LaTeX/Theorems


Водич за Пајтон 2.6/Листе

0.1 Променљиве са више од једне вредности
Већ сте видели редне променљиве које имају једну вредност. Међутим, друге променљиве врсте могу да приме више од једне вредности. Најједноставнији тип је такозвана листа. Овде је пример где се листе користе:
који = input("Који месец (1-12)? ")
месеци = ['Јануар', 'Фебруар', 'Март', 'Април', 'Мај', 'Јун', 'Јул',
'Август', 'Септембар', 'Октобар', 'Новембар', 'Децембар']
if 1 <= који <= 12:
print "Месец је", месеци[који - 1]
а пример излаза:
Који месец (1-12)? 3
Месец је Март
Ово је пример да су месеци листа. месеци су дефинисани линијама  месеци = ['Јануар', 'Фебруар', 'Март', 'Април', 'Мај', 'Јун', 'Јул', и 'Август', 'Септембар', 'Октобар', 'Новембар', 'Децембар'] (имајте на уму да се \ такође може користи да подели дугу колону, али то није неопходно у овом случају, јер је Пајтон довољно интелигентан да схвати да све у загради иде заједно). [ и ] почињу и завршавају листу са зарезима(,) који раздвајају предмете у листи. Листа се користи у месеци[који - 1]. Списак се састоји од ставки које се одбројавају са почетком у 0. Другим речима, ако желите Јануар користићете месеци[0]. Дајте списак бројева и да се врати вредност која се складишти на тој локацији.
Изјава  if 1 <= који <= 12: биће тачна ако је  који између 1 и 12 (другим речима то је оно што бисте очекивали ако бисте га видели у алгебри).
Листе се може посматрати као низ кутија. Свака кутија има другачију вредност. На пример, кутије створене од стране демолиста = ['живот', 42, 'универзум', 6, 'и', 9] би изгледале овако:
број кутије, 0, 1, 2, 3, 4, 5
демолиста, "живот", 42, "универзум", 6, "и", 9
Свака кутија је означена бројем тако да ће изјава демолиста[0] дати 'живот', демолиста[1] ће дати 42 и тако даље демолиста[5] даје 9.
0.2 Више карактеристика листи
Следећи пример служи само да покаже много других ствари са листама које може да уради(не очекујем да га куцате, али би вероватно требало да се поиграте са листама док нисте задовољни њима.). Ево иде:
демолиста = ["живот", 42, "универзум", 6, "и", 9]
print "Демолиста = ",демолиста
демолиста.append("све")
print "после 'све' приказано у демолисти је сада:"
print демолиста
print "Дужина(демолиста) =", len(демолиста)
print "Демолиста.индекс(42) =", демолиста.index(42)
print "Демолиста[1] =", демолиста[1]
# Даље ћемо ставити петља кроз листу
c = 0
while c < len(демолиста):
print "демолиста[", c, "] =", демолиста[c]
c = c + 1
del демолиста[2]
print "После брисања 'универзум' демолиста је сада:"
print демолиста
if "живот" in демолиста:
print "'живот' је пронађен у демолисти"
else:
print "'живот' није пронађен у демолисти"
if "амеба" in демолиста:
print "'амеба' је пронађена у демолисти"
if "амеба" not in демолиста:
print "'амеба' није пронађена у демолисти"
демолиста.sort()
print "Сортирана демолиста је", демолиста
Излаз је:
демолиста = ['живот', 42, 'универзум' , 6, 'и', 9]
после 'све' приказано у демолисти је сада:
['живот', 42, 'универзум', 6, 'и', 9, 'све']
len(демолиста) = 7
демолиста.индекс(42) = 1
демолиста[1] = 42
демолиста[ 0 ] = живот
демолиста[ 1 ] = 42
демолиста[ 2 ] = универзум
демолиста[ 3 ] = 6
демолиста[ 4 ] = и
демолиста[ 5 ] = 9
демолиста[ 6 ] = све
После брисања 'универзум' демолиста је сада:
['живот', 42, 6, 'и', 9, 'све']
'живот' је пронађен у демолисти
'амеба' није пронађена у демолисти
Сортирана демолиста је [6, 9, 42, 'и', 'све', 'живот']
Овај пример користи гомилу нових функција. Приметите да можете
само print, штампати читаву листу. Следеће је append функција која се користи
за додавање нове ставке на крај листе. len враћа колико
ставки је у листи. Важећи индекси (као у бројевима који се могу
користити унутар []) листе су у рангу од 0 до len - 1.
index функција каже где се налази прва локација ставке
у листи. Приметите како демолиста.index(42) враћа 1, и
када се покрене демолиста[1] враћа 42. Линија # Даље ћемо направити петљу кроз листу је само подсетник програмеру (такође назван ''коментар''). Пајтон ће игнорисати све линије које почињу са #. Следеће линије:
c = 0
while c < len(демолиста):
print 'демолиста[', c, '] =', демолиста[c]
c = c + 1
стварају променљиву c, која почиње на 0 и повећава се док не дође до задњег индекса листе. У међувремену print команда штампа сваки елемент листе. del команда се може користити за брисање датог елемента у листи. Наредних неколико редова користе in оператер за тестирање да ли је елемент у листи или није. sort функција сортира листу. Ово је корисно ако Вам треба
листа по реду од најмањег броја до највећег или по абецедном реду. Запамтите
да то уређује листу. Укратко, за листу, јављају се следеће операције:
пример, објашњење
демолиста[2], приступа елементу са индеком 2
демолиста[2] = 3, поставља елемент са индексом 2 да буде 3
del демолиста[2], брише елемент са индексом 2
len(демолиста), враћа дужину листе демолиста"вредност" in демолиста, је ''Тачно'' ако је "вредност" елемент у демолиста"вредност" not in демолиста, је ''Тачно'' ако "вредност" није елемент у демолистадемолиста.sort(), сортира листу демолистадемолиста.index("вредност"), враћа индекс првог места у коме се "вредност" јавља
демолиста.append("вредност"), додаје елемент "вредност" на крају листе
демолиста.remove("вредност"), отклања прво појављивање вредности из демолиста (исто као del демолиста[демолиста.index("вредност")])
Овај следећи пример користи ове функције на кориснији начин:
мени_члан = 0
имелисте = []
while мени_члан != 9:
print "--------------------"
print "1. Штампај листу"
print "2. Додај име листи"
print "3. Обриши име из листе"
print "4. Промени члан листе"
print "9. Заврши"
мени_члан = input("Изабери члан из менија: ")
if мени_члан == 1:
садашњи = 0
if len(имелисте) > 0:
while садашњи < len(имелисте):
print садашњи, ".", имелисте[садашњи]
садашњи = садашњи + 1
else:
print "Листа је празна"
elif мени_члан == 2:
име = raw_input("Унесите име за додавање: ")
имелисте.append(име)
elif мени_члан == 3:
обр_име = raw_input("Које бисте име желели да обришете: ")
if обр_име in имелисте:
# имелисте.remove(обр_име) ће такође добро радити
члан_број = имелисте.index(обр_име)
del имелисте[члан_број]
# Код изнад само уклања прву појаву
# имена. Код испод из Гералд уклања све.
# while обр_име in имелисте:
# члан_број = имелисте.index(обр_име)
# del имелисте[члан_број]
else:
print обр_име, "није пронађено"
elif мени_члан == 4:
старо_име = raw_input("Које име бисте желели да промените: ")
if члан_број in имелисте:
члан_број = имелисте.index(старо_име)
ново_име = raw_input("Које је ново име: ")
имелисте[члан_број] = ново_име
else:
print старо_име, "није пронађено"
print "Довиђења"
И овде је део излаза:
--------------------
1. Штампај листу
2. Додај име листи
3. Обриши име из листе
4. Промени члан листе
9. Заврши
Изабери члан из менија: 2
Унесите име за додавање: Џек
Изабери члан из менија: 2
Унесите име за додавање: Џил
Изабери члан из менија: 1
0 . Џек
1 . Џил
Изабери члан из менија: 3
Које бисте име желели да обришете: Jack
Изабери члан из менија: 4
Које име бисте желели да промените: Jill
Које је ново име: Jill Peters
Изабери члан из менија: 1
0 . Џил Питерс
Изабери члан из менија: 9
Довиђења
То је био дугачак програм. Хајде да погледамо изворни код. Линија имелисте = [] ствара променљиву имелисте листу без чланова (или елемената). Следећа важна линија је while мени_члан != 9:. Ова линија почиње петљу која омогућава мени систем за овај програм. Наредних неколико редова приказују мени и одлучују који део програма је за покретање.
Секција
садашњи = 0
if len(имелисте) > 0:
while садашњи < len(имелисте):
print садашњи, ".", имелисте[садашњи]
садашњи = садашњи + 1
else:
print "Листа је празна"
пролази кроз листу и штампа свако име. len(имелисте) казује колико је ставки на листи. Ако len врети 0, онда је листа празна.
Затим, неколико линија касније, наредба имелисте.append(име) aсе појављује. Користи append функцију да дода члан на крај листе. Скочите две линије доле, и приметите овај део кода:
члан_број = имелисте.index(обр_име)
del члан_број[имелисте]
Овде index функција је коришћена за проналажење вредности индекса који ће бити коришћен касније за брисање члана. del имелисте[члан_број] се користи за брисање елемената из листе.
Следећа секција
старо_име = raw_input("Које име бисте желели да промените: ")
if старо_име in имелисте:
старо_име = имелисте.index(старо_име)
ново_име = raw_input("Које је ново име : ")
имелисте[члан_број] = ново_име
else:
print старо_име, "није пронађено"
користи index за проналажење члан_број и онда ставља ново_име где је старо_име било.
Честитам, са листама испод појаса, сада знате довољно о језику
да бисте урадили израчунавања која рачунар може да уради (ово је технички познато као Турингова-потпуност). Наравно, постоје још многе карактеристике које се користе да би ваш живот направиле лакшим.
0.3 Примери
тест.py
## Овај програм покреће тест знања
# Прво се узима тест питања
# Касније ће бити модификован за коришћење датотеке УИ.
def узми_питање():
# приметити како се подаци чувају као листе листи
return [["Које боје је дневно небо по ведром дану? ", "плаве"],
["Шта је одговор на живот, универзум и све? ", "42"],
["Шта има пет слова за замку миша? ", "мачка"
# Ово ће тестирати једно питање
# потребно једно питање
# враћа True уколико је корисник откуцао тачан одговор, у супротном False
def провери_питање(питање_и_одговор):
# вади питање и одговор из листе
# Ово ће проћи кроз сва питања
def покрени_тест(питање):
if len(питање) == 0:
print "Није дато ниједно питање."
# return(враћање) постоји у функцији
return
индекс = 0
добар = 0
while индекс < len(питање):
# Провери питање
if провери_питање(питање[индекс]):
добар = добар + 1
индекс = индекс + 1
# идите на следеће питање
else:
индекс = индекс + 1
# приметити редослед израчунавања, прво вишеструко, затим подељено
print "Имате", добар * 100 / len(питање),\
"% добрих од", len(питање)
# сада да покренемо питања
покрени_тест(узми_питање())
Вредности True и False показују на 1 и 0. Они се често користе у проверавању разума, услови петље итд. Сазнаћете више о томе мало касније (поглавље ../Булови изрази/).
Излаз низа:
Које боје је дневно небо по ведром дану?зелено
Нетачно, одговор је: blue
Шта је одговор на живот, универзум и све?42
Тачно
Шта има пет слова за замку миша?мачка
Тачнопитање = питање_и_одговор[0]
одговор = питање_и_одговор[1]
# поставља питање кориснику
дат_одговор = raw_input(питање)
# упоређује одговор корисника са одговором тестера
if одговор == дат_одговор:
print "Тачно"
return True
else:
print "Нетачно, одговор је:", одговор
return False
Имате 66 % добрих од 3
0.4 Вежбе
Повећајте тест.py програм тако да мени даје могућност узимања
теста, преглед листе питања и одговора, и могућност да
изађете. Такође, додајте ново питање за постављање, "Коју буку прави
заиста напредна машина?" са одговором "пинг".
en:Non-Programmer's Tutorial for Python 2.6/Lists