Home » Articole » Articole » Calculatoare » Programare » Python » Decizii în limbajul de programare Python

Decizii în limbajul de programare Python

postat în: Python 0

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)
”. În caz contrar, rulează linia „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
elif
. Reprezintă else if și înseamnă dacă declarația if originală este falsă, dar partea elif
este 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

Lucrul cu baze de date
Lucrul cu baze de date

Colecția ȘTIINȚA INFORMAȚIEI Lucrul cu bazele de date este astăzi printre cele mai căutate abilități IT. Acum puteți obține o bază de plecare în proiectarea și implementarea bazelor de date cu o abordare practică, ușor de înțeles. ”Lucrul cu baze … Citeşte mai mult

Nu a fost votat $3,99$7,99 Selectează opțiunile
Etica Big Data în cercetare
Etica Big Data în cercetare

Principalele probleme cu care se confruntă oamenii de știință în lucrul cu seturile mari de date (Big Data), evidențiind principale aspecte etice, luând în considerare inclusiv legislația din Uniunea Europeană. După o scurtă Introducere despre Big Data, secțiunea Tehnologia prezintă … Citeşte mai mult

Nu a fost votat $0,00$2,35 Selectează opțiunile
Rețele de comunicații 5G
Rețele de comunicații 5G

Datorită impactului său așteptat în economie și societate, a cincea generație de telecomunicații mobile (5G) este una dintre cele mai importante inovații ale timpului nostru. Așteptările cresc cu capacitățile de bandă largă ale 5G, accesibile tuturor și peste tot, la … Citeşte mai mult

Nu a fost votat $2,99$6,88 Selectează opțiunile

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *