Водич за Пајтон 2.6/Ко ту улази?
Улаз и променљиве
уредиСада осећам да је време за стварно компликован програм. Ево га:
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 име
што ће штампати (пре претходног примера):
Бил
Додељивање
уредиДобро, ове кутије смо назвали променљивим и такође податке који улазе у променљиве. Рачунар ће видети линију као име = "Бил"
и чита је као "Убаци низ Бил
у кутију (или променљиву) име
". Касније он види изјаву 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()
.
Користите само input() када верујете вашем кориснику за рачунаром да се покрене програм. Све унето са input() дијалог је оцењен као Пајтон изражавање и на тај начин омогућава кориснику да преузме контролу над вашим програмом. На пример, уносом __import__('os').system('dir') извршава dir команду. Уместо тога би требало да добијете низ и да га преведете у одговарајући тип као int(raw_input()) или float(raw_input()) . |
Друга половина програма користи type()
што говори шта
је променљива. Бројеви су типа int
или float
, што су
скраћенице за цео број и разломак (углавном коришћен за децималне бројеве). Текстуални низови су типа str
, скраћеница за niz. На целим бројевима и разломцима се могу радити математичке функције, на низовима не. Запамтите како када Пајтон
множи број целим бројем очекивана ствар се догоди. Међутим
када низ помножите целим бројем резултат је помножен
и створена је копија низа (нпр., текст * 2 = ЗдравоЗдраво
).
Операције са низовима раде другачије ствари него операције са бројевима. Ево неких интерактивних примера да покажемо нешто више.
>>> "Ово" + " " + "је" + " додато." 'Ово је додато.' >>> "Ха, " * 5 'Ха, Ха, Ха, Ха, Ха, ' >>> "Ха, " * 5 + "ха!" 'Ха, Ха, Ха, Ха, Ха, ха!' >>>
Ово би исто могло да се одради као програм:
print "Ово" + " " + "је" + " додато."
print "Ха, " * 5
print "Ха, " * 5 + "ха!"
Овде је листа неких операција над низовима:
Операција | Ознака | Пример |
---|---|---|
Понављање | *
|
"и" * 5 == "иииии"
|
Уланчавање | +
|
"Здраво, " + "свете!" == "Здраво,свете!"
|
Примери
уредиМерење_времена.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
Вежбе
уреди- Напишите програм који узима 2 низа променљивих и два броја променљивих од корисника, уланчати (повезати их без размака) и приказати низове, затим помножити два броја у новом реду.
Откривена је петља шаблона: Шаблон:Решење