Declarația if
Ca întotdeauna, cred că ar trebui să încep fiecare capitol cu un exercițiu de tastare de încălzire, așa că iată un scurt program pentru a calcula valoarea absolută a unui număr întreg:
n = int(input("Number? "))
if n < 0:
print("The absolute value of", n, "is", -n)
else:
print("The absolute value of", n, "is", n)
Iată rezultatul de două ori când am rulat acest program:
Number? -34 The absolute value of -34 is 34
Number? 1 The absolute value of 1 is 1
Deci, ce face computerul când vede această bucată de cod? Mai întâi solicită utilizatorului un număr cu instrucțiunea „n = int(input("Number? "))”. Apoi se citește linia „if n < 0:”. Dacă n este mai mic decât zero, Python rulează linia „print("The absolute value of", n, "is",”. În caz contrar, rulează linia „
-n)print("The absolute value of",”.
n, "is", n)
Mai formal, Python analizează dacă expresia n < 0 este adevărată sau falsă. O instrucțiune if este urmată de un bloc indentat de instrucțiuni care sunt executate atunci când expresia este adevărată. Opțional, după instrucțiunea if este o instrucțiune else și un alt bloc de instrucțiuni indentat. Acest al doilea bloc de instrucțiuni este rulat dacă expresia este falsă.
Există o serie de teste diferite pe care o expresie le poate avea. Iată un tabel cu toate acestea:
| operator | funcția |
|---|---|
< |
less than |
<= |
less than or equal to |
> |
greater than |
>= |
greater than or equal to |
== |
equal |
!= |
not equal |
O altă caracteristică a comenzii if este instrucțiunea . Reprezintă else if și înseamnă dacă declarația
elif if originală este falsă, dar partea elifeste adevărată, atunci face parte
elif . Și dacă nici expresiile if sau elif nu sunt adevărate, atunci face ceea ce este în blocul else . Iată un exemplu:
a = 0
while a < 10:
a = a + 1
if a > 5:
print(a, ">", 5)
elif a <= 3:
print(a, "<=", 3)
else:
print("Neither test was true")
și rezultatul:
1 <= 3 2 <= 3 3 <= 3 Neither test was true Neither test was true 6 > 5 7 > 5 8 > 5 9 > 5 10 > 5
Observați cum elif a <= 3 este testat numai atunci când declarația if nu este adevărată. Pot exista mai multe expresii elif , permițând efectuarea mai multor teste într-o singură instrucțiune if .
Exemple
# Acest program demonstrează utilizarea operatorului ==
# Folosind numere
print(5 == 6)
# Folosind variabile
x = 5
y = 8
print(x == y)
Și rezultatul
False False
high_low.py
# Joacă jocul de ghicire mai sus sau mai jos
# Acesta ar trebui să fie de fapt ceva semi-aleatoriu, precum
# ultimele cifre ale timpului sau altceva, dar asta va trebui
# să așteptați până la un capitol ulterior. (Credit suplimentar, modificați-l pentru a fi aleatoriu
# după capitolul Module)
number = 7
guess = -1
print("Guess the number!")
while guess != number:
guess = int(input("Is it... "))
if guess == number:
print("Hooray! You guessed it right!")
elif guess < number:
print("It's bigger...")
elif guess > number:
print("It's not so big.")
Rulare eșantion:
Guess the number! Is it... 2 It's bigger... Is it... 5 It's bigger... Is it... 10 It's not so big. Is it... 7 Hooray! You guessed it right!
even.py
# Solicitați un număr.
# Se imprimă dacă este par sau impar
number = float(input("Tell me a number: "))
if number % 2 == 0:
print(int(number), "is even.")
elif number % 2 == 1:
print(int(number), "is odd.")
else:
print(number, "is very strange.")
Rulare eșantion:
Tell me a number: 3 3 is odd.
Tell me a number: 2 2 is even.
Tell me a number: 3.4895 3.4895 is very strange.
average1.py
# continuă să ceară numere până când se introduce 0.
# Imprimă valoarea medie.
count = 0
sum = 0.0
number = 1 # setați la ceva care nu va ieși imediat din bucla while.
print("Enter 0 to exit the loop")
while number != 0:
number = float(input("Enter a number: "))
if number != 0:
count = count + 1
sum = sum + number
if number == 0:
print("The average was:", sum / count)
Rulare eșantion:
Enter 0 to exit the loop Enter a number: 3 Enter a number: 5 Enter a number: 0 The average was: 4.0
Enter 0 to exit the loop Enter a number: 1 Enter a number: 4 Enter a number: 3 Enter a number: 0 The average was: 2.66666666667
average2.py
# continuă să ceară numere până când au fost introduse numerele de numărare.
# Imprimă valoarea medie.
# Rețineți că folosim un număr întreg pentru a ține evidența la cât de multe numere,
# dar numere în virgulă mobilă pentru introducerea fiecărui număr
sum = 0.0
print("This program will take several numbers then average them")
count = int(input("How many numbers would you like to average: "))
current_count = 0
while current_count < count:
current_count = current_count + 1
print("Number", current_count)
number = float(input("Enter a number: "))
sum = sum + number
print("The average was:", sum / count)
Rulare eșantion:
This program will take several numbers then average them How many numbers would you like to average: 2 Number 1 Enter a number: 3 Number 2 Enter a number: 5 The average was: 4.0
This program will take several numbers then average them How many numbers would you like to average: 3 Number 1 Enter a number: 1 Number 2 Enter a number: 4 Number 3 Enter a number: 3 The average was: 2.66666666667
Exerciții
Scrieți un program care să întrebe utilizatorul numele lui, dacă vă introduce numele spuneți „Acesta este un nume frumos”, dacă introduce „John Cleese” sau „Michael Palin”, spuneți-le ce părere aveți despre ei ;), altfel spuneți-le „Ai un nume frumos.”
Soluție
name = input('Your name: ')
if name == 'Bryn':
print('That is a nice name.')
elif name == 'John Cleese':
print('... some funny text.')
elif name == 'Michael Palin':
print('... some funny text.')
else:
print('You have a nice name.')
Modificați programul mai mare sau mai mic din această secțiune pentru a urmări de câte ori utilizatorul a introdus un număr greșit. Dacă este de mai mult de 3 ori, tipăriți „Trebuie să fi fost complicat”. la sfarsit, in caz contrar tipariti „Bună treabă!”
Soluție
number = 7
guess = -1
count = 0
print("Guess the number!")
while guess != number:
guess = int(input("Is it... "))
count = count + 1
if guess == number:
print("Hooray! You guessed it right!")
elif guess < number:
print("It's bigger...")
elif guess > number:
print("It's not so big.")
if count > 3:
print("That must have been complicated.")
else:
print("Good job!")
Scrieți un program care cere două numere. Dacă suma numerelor este mai mare de 100, tipăriți „Acesta este un număr mare”.
Soluție
number1 = float(input('1st number: '))
number2 = float(input('2nd number: '))
if number1 + number2 > 100:
print('That is a big number.')
Include texte din Wikibooks traduse și adaptate de Nicolae Sfetcu
Descoperă mai multe la MultiMedia
Abonează-te ca să primești ultimele articole prin email.



Lasă un răspuns