Vodič za Pajton 2.6/Ko tu ulazi?
Ulaz i promenljive
urediSada osećam da je vreme za stvarno komplikovan program. Evo ga:
print "Стој!"
user_reply = raw_input("Ко иде овде? ")
print "Можете проћи,", user_reply
Kada ga ja pokrenem, ovde je ono što moj ekran prikazuje:
Стој! Ко иде овде? Џош Можете проћи, Џош
Zapamtite: Pokretanjem programa kucanjem F5, Pajtonova ljuska će dati izlaz:
Стој! Ко иде овде?
Treba da ukucate vaše ime u Pajton ljusci, zatim kliknite Enter da dobijete dalji izlaz.
Naravno kada pokrenete program vaš prozor će izgledati drugačije
zbog raw_input()
izjave. Kada pokrenete program
primetićete (pokrenuli ste program, zar ne?) da morate da
ukucate vaše ime i onda pritisnite Enter. Tada program štampa
još teksta i takođe vaše ime. Ovo je primer ulaza. Program
dostiže određenu tačku i onda čeka da korisnik unese
neki podatak koji će program kasnije koristiti.
Naravno, dobijanje informacija od korisnika je beskorisno ako program nema gde da iskoristi tu informaciju i ovde promenljive dolaze. U prethodnom programu, user_reply
je promenljiva. Promenljive su kao kutija koja čuva neke delove podataka. Ovde je program koji prikazuje primere promenljivih:
a = 123.4
b23 = 'Спам'
име = "Бил"
b = 432
c = a + b
print "a + b је", c
print "Име је", име
print "Сортирани делови, После поноћи или", b23
I ovde je izlaz:
a + b је 555.4 Име је Бил Сортирани делови, После поноћи или
Promenljive u programu iznad su a
, b23
, име
, b
, i c
. Promenljiva u Pajtonu može sačuvati bilo koji tip podatka - u ovom primeru smo sačuvali neke niozove (npr. "Bil") i neke brojeve (npr. 432).
Zapamtite razliku između nizova i naziva promenljivih. Nizovi su označeni navodnicima, što govori računaru "ne pokušavaj da razumeš, samo uzmi ovaj tekst onakav kakav je":
print "име"
Ovo će štampati u tekstu:
име
ovako. Imena promenljivih su napisana bez ikakvih navodnika i upućuje računar "uzmi vrednost koju sam prethodno uneo pod ovim imenom":
print име
što će štampati (pre prethodnog primera):
Бил
Dodeljivanje
urediDobro, ove kutije smo nazvali promenljivim i takođe podatke koji ulaze u promenljive. Računar će videti liniju kao име = "Бил"
i čita je kao "Ubaci niz Бил
u kutiju (ili promenljivu) име
". Kasnije on vidi izjavu c = a + b
i čita je kao "ubaci zbir a + b
ili 123.4 + 432
što je jednako 555.4
u c
". Desna strana ove izjave (a + b
) je jednaka i rezultat se nalazi u promenljivoj na levoj strani (c
). Ovo se zove dodeljivanje, i ne bi trebalo da vas zbuni zadati znak jednakosti ovde(=
) sa "jednakosti" u matematici (to je ovo ==
što ćemo koristiti kasnije).
Ovde je još jedan primer korišćenja promenljivih:
a = 1
print a
a = a + 1
print a
a = a * 2
print a
I naravno ovo je izlaz:
1 2 4
Čak i ako je ista promenljiva sa obe strane računar i dalje čita kao "Prvo pronađi podatak za skladištenje a zatim gde taj podatak ide".
Još jedan program pre nego što završim ovo poglavlje:
број = input("Унеси број: ")
текст = raw_input("Унеси низ: ")
print "број =", број
print "број је a", type(број)
print "број * 2 =", број * 2
print "текст =", текст
print "текст је a", type(текст)
print "текст * 2 =", текст * 2
Izlaz koji sam dobio:
Унеси број: 12.34 Унеси низ: Здраво број = 12.34 број је <type 'float'> број * 2 = 24.68 текст = Здраво текст is a <type 'str'> текст * 2 = ЗдравоЗдраво
Primetite da je број
dobijen sa input()
dok je текст
dobijen sa raw_input()
. raw_input()
vraća niz dok input()
vraća broj. Kada želite da korisnik ukuca broj koristite input()
ali ako želite da unese niz kucajte raw_input()
.
Koristite samo input() kada verujete vašem korisniku za računarom da se pokrene program. Sve uneto sa input() dijalog je ocenjen kao Pajton izražavanje i na taj način omogućava korisniku da preuzme kontrolu nad vašim programom. Na primer, unosom __import__('os').system('dir') izvršava dir komandu. Umesto toga bi trebalo da dobijete niz i da ga prevedete u odgovarajući tip kao int(raw_input()) ili float(raw_input()) . |
Druga polovina programa koristi type()
što govori šta
je promenljiva. Brojevi su tipa int
ili float
, što su
skraćenice za ceo broj i razlomak (uglavnom korišćen za decimalne brojeve). Tekstualni nizovi su tipa str
, skraćenica za niz. Na celim brojevima i razlomcima se mogu raditi matematičke funkcije, na nizovima ne. Zapamtite kako kada Pajton
množi broj celim brojem očekivana stvar se dogodi. Međutim
kada niz pomnožite celim brojem rezultat je pomnožen
i stvorena je kopija niza (npr., текст * 2 = ЗдравоЗдраво
).
Operacije sa nizovima rade drugačije stvari nego operacije sa brojevima. Evo nekih interaktivnih primera da pokažemo nešto više.
>>> "Ово" + " " + "је" + " додато." 'Ово је додато.' >>> "Ха, " * 5 'Ха, Ха, Ха, Ха, Ха, ' >>> "Ха, " * 5 + "ха!" 'Ха, Ха, Ха, Ха, Ха, ха!' >>>
Ovo bi isto moglo da se odradi kao program:
print "Ово" + " " + "је" + " додато."
print "Ха, " * 5
print "Ха, " * 5 + "ха!"
Ovde je lista nekih operacija nad nizovima:
Operacija | Oznaka | Primer |
---|---|---|
Ponavljanje | *
|
"и" * 5 == "иииии"
|
Ulančavanje | +
|
"Здраво, " + "свете!" == "Здраво,свете!"
|
Primeri
urediMerenje_vremena.py
# Овај програм рачуна проблеме мерења и удаљености
print "Унесите меру и удаљеност"
мера = input("Мера: ")
удаљеност = input("Удаљеност: ")
print "Време:", (удаљеност / мера)
Primeri niza:
Унесите меру и удаљеност Мера: 5 Удаљеност: 10 Време: 2
Унесите меру и удаљеност Мера: 3.52 Удаљеност: 45.6 Време: 12.9545454545
Obim.py
# Овај програм рачуна обим и површину правоугаоника
print "Израчунај информације о правоугаонику"
дужина = input("Дужина: ")
ширина = input("Ширина: ")
print "Површина", дужина * ширина
print "Обим", 2 * дужина + 2 * ширина
Primeri niza:
Израчунај информације о правоугаонику Дужина: 4 Ширина: 3 Површина 12 Обим 14
Израчунај информације о правоугаонику Дужина: 2.53 Ширина: 5.2 Површина 13.156 Обим 15.46
temperatura.py
# Пребацује из фаренхајта у целзијус
темп = input("Температура у фаренхајтима: ")
print (темп - 32.0) * 5.0 / 9.0
Primeri niza:
Температура у фаренхајтима: 32 0.0
Температура у фаренхајтима: -40 -40.0
Температура у фаренхајтима: 212 100.0
Температура у фаренхајтима: 98.6 37.0
Vežbe
uredi- Napišite program koji uzima 2 niza promenljivih i dva broja promenljivih od korisnika, ulančati (povezati ih bez razmaka) i prikazati nizove, zatim pomnožiti dva broja u novom redu.
Otkrivena je petlja šablona: Šablon:Rešenje