Davanje imena promenljivima (indentifikacija) - ★★ Fog Developer ★★

Novo

6/recent/ticker-posts

Davanje imena promenljivima (indentifikacija)

6.3 Davanje imena promenljivima (identifikacija) 

Problem: Znači, sada mogu da „lupim“ bilo kakvo ime i da ga koristim bilo gde u svom programu kao „zamenu“ za neke rečenice, reči ili slova?
Odgovor: Ne samo za slova, sada ti se to tako čini jer jedino to i znaš da radiš u Pythonu, ali uskoro ćeš se uveriti da postoje i mnogo „moćnije“ stvari. I, NE! Ne može bilo kakvo ime! Evo objašnjenja.
Promenljive su identifikatori. A šta su identifikatori? Identifikatori su imena, koje dajemo, da bi identifikovali nešto (kao na primer lična karta – data ti je da ne zaboraviš kako se zoveš i gde živiš!). I kao u svakom zakonu, tako i ovde postoje neka pravila koje moramo da sledimo prilikom davanja imena identifikatoru: 
  • Prvi znak imena identifikatora mora da bude slovo azbuke (veliko ili malo slovo definisano ASCII ili Unicodom) ili donja crta ('_'). 
  • Ostali znakovi u imenu identifikatora mogu da budu slova (velika ili mala ASCII ili Unicode), donje crte ('_') ili cifre (0-9).
  • Imena identifikatora su osetljiva na veličinu slova. Na primer, mojeime i mojeIme nisu iste promenljive. Obratite pažnju na malo slovo i u prvoj oznaci i veliko slovo I u drugoj. 

ASCII??? Unicode??? Jel se to maže na lebac?
Kao što sam ti rekao, računar razume samo brojeve 0 i 1. ASCII i Unicode su samo standardi koje su ljudi doneli, kako bi slova, koja koriste u našoj svakodnevnoj komunikaciji, predstavili kao neki broj tj skup nula i jedinica! ASCII je Američki standard koji je bio jedan od prvih široko-usvojenih standarda koji su se primenjivali i još uvek primenjuju širom sveta. Kao takav, obuhvatio je samo Engleski alfabet + neke znakove potrebne za neki specifičan rad (oznake valuta i sl.) i  specijalne oznake (šta misliš, kako je taster Enter predstavljen? Kako računar zna šta je TAB?...). Budući da je imao manjkavosti – npr slovo š u njemu ne postoji, a da bi ljudi imali „komfor“ da na računarima koriste i svoje maternje jezike, doneseni su i brojni drugi standardi o označavanju, jedan od njih je i široko-rasprostranjen Unicode. Možda se zapitate zašto toliko različitih standarda (ASCII, UTF, CP itd, itd...) ako postoji jedan koji bi mogao da pokrije sve znakove na svetu? Pa, zato što svaki od tih standarda ima svojih prednosti i mana! A najveća mana standarda koji pokušavaju da pokriju sve je – sporost! Ovo je jako „problematično“ područje za objašnjavanje, te potraži šira objašnjenja na internetu, kako te kasnije ne bi „bolela glava“...
Dobro, i šta ono ostalo od nabrojanog znači?
Evo neki primeri pravilnih imena identifikatora:  i, __moje_ime, ime_23. Primeri "nevažećih" imena identifikatora su 2stvari, ovo je napisano sa razmacima, moje-ime, >a1b2_c3 i "ovo_je_pod_navodnicima". Pokušaj u interaktivnom promptu, pa se uveri!
Ako si se „uverio“, hajd da ti pokažem kako bi ja, da imam to tvoje malo znanje, rešio tvoj problem sa pozivnicama.... Ajde da razmislimo. Prvo bi, jel... Trebali da razmislimo šta je u poruci isto, a šta se menja. Menjaju se imena pozvanih, a ne menja se sam sadržaj poruke. Takođe, možemo da ubacimo i promenljiv deo koji bi osobi govorilo šta da donese.... Ali ti trenutno nemaš dovoljno znanja, ali sa sadašnjim tvojim poznavanjem Pythona, to bi izgledalo, otprilike ovako (sačuvaj kao pozivnice.py):
#! /usr/bin/env python3 

# Skripta koja mi poziva društvo na žurku! 

# Tekst poruke 
poruka = 'pravim žurku, koja će se održati u Petak 30-tog februara 1878g. Obećavam, biće najbučnija, najžešća i najduža (planiram da bude do ponedeljka). Žurka počinje u 8 sati uveče i održava se u ulici Akacija br 29. Molim te' 

# A sad da pozovemo par ljudi radi "testa", kako to izgleda.... 
print('Draga Simonida', poruka, 'dođi, sa što manje odeće na sebi!') 

# Par praznih linija da bi izgledalo lepo 
print() 
print() 

print('Poštovani kolega', poruka, 'investiraj u moj projekat najmanje 1000 eura, pa dođi da se proveselimo.') 

print() 
print() 

print('Mišin komšija Pero', poruka, 'pošto nisi pozvan, nemoj da bi zvao muriju, da ti ne bih glavu otkinuo!') 

print() 
print() 

print('Kume Mišo', poruka, 'treba mi tvoja pomoć. Naime, kao što vidiš, pozvao sam ljude u tvoju kuću, pa ako možeš, usisaj i spremi.... Kupi piće i grickalice.') 

print() 
print() 

# Na kraju ne zaboravi sirote Windows korisnike... 
# Da im ne nestane prozor! 
input('Pritisni Enter za samoubistvo....')
Da proverimo kako „radi“? Pa hajde....
python3 pozivnice.py
Draga Simonida pravim žurku, koja će se održati u Petak 30-tog februara 1878g. Obećavam, biće najbučnija, najžešća i najduža (planiram da bude do ponedeljka). Žurka počinje u 8 sati uveče i održava se u ulici Akacija br 29. Molim te dođi, sa što manje odeće na sebi! 


Poštovani kolega pravim žurku, koja će se održati u Petak 30-tog februara 1878g. Obećavam, biće najbučnija, najžešća i najduža (planiram da bude do ponedeljka). Žurka počinje u 8 sati uveče i održava se u ulici Akacija br 29. Molim te investiraj u moj projekat najmanje 1000 eura, pa dođi da se proveselimo. 


Mišin komšija Pero pravim žurku, koja će se održati u Petak 30-tog februara 1878g. Obećavam, biće najbučnija, najžešća i najduža (planiram da bude do ponedeljka). Žurka počinje u 8 sati uveče i održava se u ulici Akacija br 29. Molim te pošto nisi pozvan, nemoj da bi zvao muriju, da ti ne bih glavu otkinuo! 

 
Kume Mišo pravim žurku, koja će se održati u Petak 30-tog februara 1878g. Obećavam, biće najbučnija, najžešća i najduža (planiram da bude do ponedeljka). Žurka počinje u 8 sati uveče i održava se u ulici Akacija br 29. Molim te treba mi tvoja pomoć. Naime, kao što vidiš, pozvao sam ljude u tvoju kuću, pa ako možeš, usisaj i spremi.... Kupi piće i grickalice. 


Pritisni Enter za samoubistvo.... 
Program radi kako je i očekivano.....
Ne, stani... Čekaj....U tvom programu ima nešto čudno....
Da, znam.... Pogledaj u interaktivnom promptu help(print)
Help on built-in function print in module builtins: 

print(...) 
    print(value, ..., sep=' ', end='\n', file=sys.stdout) 
    
    Prints the values to a stream, or to sys.stdout by default. 
Kaže „print values“ a to je – množina! Znači, u print funkciju možeš „ubaciti“ koliko hoćeš objekata, važno je da ih razdvojiš zarezom! A ako izanaliziraš izlaz programa, vidiš da je na mestima na kojima je bio zarez funkcija print lepo ubacila razmak između tih objekata. Super, zar ne?
Ma čekaj, a šta je sa ovom tarabom?
Kakvom tarabom? Pa tvoj kum Miša živi u zgradi, u stanu... Nema on ograde, koliko ja znam.... Možda misliš na ogradu na terasi? Ali, ima opet neki problem – on nema ni terasu! Da nije kupio kuću... Daj da menjamo poruku, koja mu je adresa?
☻☻☻☻!“!“!“! Mislim na ovaj znak (jel moram i da ti ga „crtam“?!?): #
I ponoviću, ako me, „cenjeni tutorijalu“ ne razumeš: #
Aaaaa..... Pa što ne kažeš odmah....

6.2 Promenljive Indeks 6.4 Komentari i
malo više

Постави коментар

0 Коментари