Vom învăța următorul nostru truc de programare: cum să executăm codul condiționat. Aceasta se numește ramificare. Este o altă variantă de programare neliniară, cum ar fi buclele din capitolul 14: permite altceva decât execuția strictă, de la început până la sfârșit, pe linie a unui program. În special, ramificarea ne permite să desemnăm anumite linii de cod care să fie executate „doar uneori”.
21.1 Instrucțiunea if
Principala instrucțiune de ramificare în Python și în majoritatea limbilor este instrucțiunea if. Iată câteva dintre ele în acțiune:
1: name = "Horace" 2: cash_on_hand = 100000 3: IQ = 90 4: print("Nice to meet you, {}!".format(name)) 5: if cash_on_hand > 5000: 6: print("Wow, you're rich! Gimme a fiver.") 7: cash_on_hand = cash_on_hand - 5 8: if IQ > 100: 9: print("Wow, you're smart! Read a book.") 10: IQ = IQ + 5 11: print("{}'s IQ is {} and he has ${}.".format(name, 12: IQ, cash_on_hand))
Chiar și fără nicio explicație, s-ar putea să vă dați seama că rezultatul fragmentului de cod de mai sus este:
▐ Nice to meet you, Horace! ▐ Wow, you're rich! Gimme a fiver. ▐ Horace's IQ is 90 and he has $99995.
Dacă nu, rămâneți pe fază.
La fel ca o buclă for, fiecare instrucțiune if are un antet și un corp. Și la fel ca o buclă for, factorul determinant al căror linii constituie corpul depinde de indentare:
- Primul antet al instrucțiunii if este linia 5.
- Corpul primului if este rândurile 6 și 7.
- Al doilea antet al instrucțiunii if este linia 8.
- Corpul celui de-al doilea if este rândurile 9 și 10.
Când se ajunge la o instrucțiune if, condiția acesteia este evaluată; în primul caz, condiția „cash_on_hand > 500” este evaluată la True, iar în al doilea caz, „IQ > 100” este determinat a fi False. Apoi, numai dacă condiția este adevărată se va executa corpul instrucțiunii if. În caz contrar, va fi omis.
Astfel, liniile programului de mai sus se execută în această ordine: 1, 2, 3, 4, 5, 6, 7, 8, 11/12. Liniile 9 și 10 sunt omise complet, deoarece IQ-ul lui Horace nu era peste medie. Observați că variabila cash_on_hand a fost actualizată în corpul primei declarații if, dar IQ nu a fost.
Condiționări compuse
Condițiile pot fi mai complicate decât cele de mai sus; la fel ca și în cazul interogărilor, acestea pot conține mai mult de o componentă:
if cash_on_hand > 10000 and IQ < 50: print("Wow, some dumb people are sure rich!")
S-ar putea să fi fost surprins să vezi cuvântul „and” în declarația if în loc de caracterul „&”. Te-am ghicit. Este total inconsecvent, dar totuși adevărat: deși într-o interogare, trebuie să utilizați simbolurile &, | și ~, într-o condiționare if trebuie să utilizați cuvintele and, or, și not. (În altă ordine de idei, bananele din jurul componentelor unei condiționări if nu sunt necesare, dar le puteți include dacă doriți.)
Pentru confortul dumneavoastră, operatorii de condiținare if sunt listați în Figura 21.1. (Amintiți-vă de dublu egal!!)
Sursa: Stephen Davies, The Crystal Ball – Instruction Manual, Vol. 1: Introduction to Data Science, v. 1.1. Copyright © 2021 Stephen Davies. Licența CC BY-SA 4.0. Traducere și adaptare: Nicolae Sfetcu. © 2024 MultiMedia Publishing, Introducere în Știința Datelor, Volumul 1
Lasă un răspuns