Ulaz i promenljive

uredi

Sada 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

uredi

Dobro, 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().

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

uredi

Merenje_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
  1. 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

Šablon:Vodič za Pajton 2.6/Navigation