8 min lexim
Kushtet dhe rastësia
Dy gjëra për të cilat Python është i rreptë
Para se roboti yt në ekran të marrë një vendim, ndihmon të njohësh dy rregulla që Python nuk i thyen kurrë.
I pari është ndjeshmëria ndaj shkronjave të mëdha dhe të vogla. Imagjino një dyqan online ku kërkon një laptop. Qoftë kur shkruan "laptop", "LAPTOP" apo "Laptop", të dalin po ato rezultate, sepse kërkimi nuk i dallon shkronjat e mëdha nga të voglat. Python nuk fal kaq lehtë. Për Python, Score dhe score janë dy emra krejt të ndryshëm. Nëse ruan një vlerë te njëri dhe pastaj lexon nga tjetri, ose merr gabim, ose merr përgjigjen e gabuar. Prandaj zgjidh një mënyrë shkrimi për çdo emër dhe rri me të.
Rregulli i dytë është hapësira në fillim të rreshtit. Python vendos se cilët rreshta shkojnë bashkë sipas hapësirave në fillim të secilit rresht. Rreshtat e futur brenda nën një if janë ata që ekzekutohen kur kushti është i vërtetë.
if 5 > 2:
print("Pesa është më e madhe se dyshi!")
Hapësira nuk është zbukurim. Hiqe atë dhe Python ndalon, sepse nuk dallon më se cilët rreshta janë brenda bllokut. Zakonisht përdoren katër hapësira; numri i saktë varet nga ti, mjaft që të jesh i qëndrueshëm.
Numrat e rastësishëm dhe Gara e Breshkave
Një program që bën gjithmonë të njëjtën gjë është i parashikueshëm. Lojërat kanë nevojë për surprizë, po ashtu edhe çdo model që provon vlera të ndryshme. Python sjell rastësinë me modulin random.
import random
print(random.random()) # një numër me presje mes 0.0 dhe 1.0
print(random.randint(0, 22)) # një numër i plotë nga 0 deri 22
random.random() jep një numër me presje nga 0.0 deri në 1.0. random.randint(a, b) jep një numër të plotë nga a deri te b, ku përfshihen të dyja skajet. Ekzekutoji disa herë dhe do të shohësh rezultate të ndryshme çdo herë.
Shpesh një numër i vetëm i rastësishëm është gjithçka që i duhet një vendimi. Këtu një hedhje zari vendos nëse shtypet "lart" apo "poshtë":
import random
roll = random.randint(1, 6)
if roll > 3:
print("lart")
else:
print("poshtë")
Çdo herë që e ekzekuton, hedhja ndryshon, prandaj ndryshon edhe përgjigjja. Kjo shkëndijë e njëjtë rastësie është ajo që ushqen një lojë si Gara e Breshkave: jepi çdo breshke një hap me madhësi të rastësishme dhe askush nuk e thotë dot që më parë se cila arrin e para në buzë.
Të marrësh një vendim me if dhe else
Një if kontrollon një pyetje që është ose e vërtetë ose e rreme, dhe ekzekuton bllokun e vet të futur brenda vetëm kur përgjigjja është e vërtetë.
num = 5
if num < 10:
print("num është më i vogël se 10")
print("Ky rresht ekzekutohet gjithmonë")
Mesazhi i parë del sepse num është vërtet më i vogël se 10. Rreshti i fundit rri në nivelin e jashtëm, prandaj ekzekutohet sido që të jetë.
Shpesh do që të ndodhë një gjë kur përgjigjja është e vërtetë dhe diçka tjetër kur është e rreme. Për këtë shërben else.
num = 5
if num > 10:
print("numri është më i madh se 10")
else:
print("numri është më i vogël se 10")
Ekzekutohet saktësisht njëra nga dy degët. Këtu num nuk është më i madh se 10, prandaj Python shtyp "numri është më i vogël se 10" dhe e kapërcen tjetrën fare.
elif, fole brenda foleje dhe kushte të bashkuara
Kur ke më shumë se dy raste, elif (shkurtim i "else if") të lejon t'i provosh me radhë. Ja një shembull i punuar: sa ditë ka një muaj i caktuar, duke marrë parasysh edhe vitet e brishta.
year = int(input("Shkruaj vitin: "))
month = int(input("Shkruaj muajin: "))
is_leap = (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
if month in (1, 3, 5, 7, 8, 10, 12):
print("Ky muaj ka 31 ditë")
elif month in (4, 6, 9, 11):
print("Ky muaj ka 30 ditë")
elif month == 2:
if is_leap:
print("Ky muaj ka 29 ditë")
else:
print("Ky muaj ka 28 ditë")
else:
print("Ky nuk është muaj i vlefshëm")
Python i kontrollon degët nga lart poshtë dhe ndalon te e para që del e vërtetë. Vër re shkurtin: brenda degës së tij ka një if të dytë, të futur një nivel më thellë, që zgjedh mes 28 dhe 29 ditëve. Një if brenda një if-i tjetër të lejon të bësh një pyetje vijuese vetëm kur përgjigjja e parë të çon atje.
Rreshti i vitit të brishtë tregon edhe si bashkohen pyetjet. and është i vërtetë vetëm kur të dyja anët janë të vërteta. or është i vërtetë kur të paktën njëra anë është e vërtetë. not e kthen përmbys të vërtetën dhe të rremen. Një vit është i brishtë kur pjesëtohet saktë me 4 dhe jo me 100, ose kur pjesëtohet saktë me 400.
Tani ke gjithçka për një lojë Gur, Letër, Gërshërë: kompjuteri zgjedh në mënyrë të rastësishme, ti shkruan zgjedhjen tënde, dhe kushtet vendosin fituesin.
import random
choices = ["gur", "letër", "gërshërë"]
computer = random.choice(choices)
you = input("gur, letër apo gërshërë? ")
if you == computer:
print("Barazim!")
elif (you == "gur" and computer == "gërshërë") or \
(you == "letër" and computer == "gur") or \
(you == "gërshërë" and computer == "letër"):
print("Fitove!")
else:
print("Humbe!")
Praktikë
Shkruaje programin Gur, Letër, Gërshërë dhe luaj disa raunde. Pastaj zgjeroje: mbaj një rezultat, ose shto "hardhucë" dhe "spock" dhe gjej kushtet e reja të fitimit me and dhe or.
Provo veten
- Për Python, a janë
Scoredhescorei njëjti emër apo dy emra të ndryshëm, dhe pse ka rëndësi kjo? - Çfarë të jep
random.randint(1, 6), dhe si ndryshon ngarandom.random()? - Në shembullin e ditëve të muajit, pse
elifpërshtatet më mirë sesa të shkruash disaiftë veçantë?
Nga vjen ky mësim
Ndërtuar mbi
- Programming in a Data World: Leksioni 2 (rastësia, kushtet) dhe Fletorja e leksionit
Kurset e alphaPlan ndërtohen mbi programe të zhvilluara në klasë, e nuk shpiken për web-in. Kur një pohim mbështetet mbi një standard të jashtëm ose mbi një rast të raportuar, ai emërtohet më sipër që ta kontrollosh vetë e të mos na besosh në fjalë.
Ky kurs u zhvillua nga alphaPlan Center mbi bazën e programeve të realizuara në partneritet me rrjetin American Corners.
Gjete diçka të paqartë, të vjetruar ose që mund të përmirësohet? Sugjero një përmirësim