Ühe rea Python if-lauseid: ternääroperaatorid ja loendikomprehensioonid

1. Sissejuhatus

Python’i programmeerimises aitab ühe rea if‑lause kirjutamine koodi lihtsustada ja on eriti kasulik olukordades, kus tingimuslik harunemine toimub sageli. Selles artiklis selgitame üksikasjalikult mitmeid tehnikaid, kuidas kirjutada Python’i “if” lauseid ühel real. Õpi kirjutama loetavat, tõhusat koodi praktiliste näidetega, nagu ternäärne operaator ja loendikomprehensioonid.

2. Kuidas kirjutada ühe‑rea if‑lauseid Python’i ternäärse operaatori abil

Pythonis saad if‑lause kirjutada ühel real, kasutades ternäärset operaatorit (tingimuslikku avaldist). See on kasulik, kui tagastad väärtuse tingimuse põhjal, ja võimaldab hoida koodi lühidana.

Ternäärne operaatori süntaks

Python’i ternäärne operaator kirjutatakse järgmiselt:

variable = value1 if condition else value2

Selle süntaksi korral tagastatakse “value1”, kui tingimus on tõene, ja “value2”, kui see on väär.

Näide: Paaris‑ või paaritu kontrollimine

Näiteks võid kontrollida, kas arv on paaris või paaritu, ja tagastada tulemuse põhjal erinevad stringid, näiteks:

number = 4
result = "even" if number % 2 == 0 else "odd"
print(result)  # Output: even

Kuna if‑lause saab sellisel viisil ühel real kirjutada, on see väga mugav lihtsate tingimuslike harude jaoks.

Ternäärse operaatori praktilised rakendused

Näiteks võid ternäärset operaatorit kasutada sõnumi kuvamiseks sõltuvalt sellest, kas kasutaja on sisse logitud.

is_logged_in = True
message = "Welcome" if is_logged_in else "Please log in"
print(message)  # Output: Welcome

Ternäärne operaator on ideaalne lihtsate valikute tegemiseks tingimuse alusel. Kuid keeruka loogika kirjutamine ühel real võib lugemisvõimet kahjustada, seega on soovitatav seda kasutada ainult lihtsate juhtumite jaoks.

3. Loendikomprehensioonide ja if‑lause ühendamine

Python’i loendikomprehensioonid pakuvad võimsat viisi lühikese koodi kirjutamiseks loendite loomiseks. Kui need kombineerida if‑lausega, saad koostada loendeid vastavalt määratud tingimustele.

Loendikomprehensioonide põhisüntaks

Kui loendikomprehensioonis kasutatakse if‑lause, kirjutatakse see järgmiselt:

list = [expression for variable in iterable if condition]

Näide: Paarisarvude loendi loomine

Selleks, et koguda ainult paarisarvud 0‑st kuni 9‑ni loendisse, kirjuta seda järgmiselt:

even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers)  # Output: [0, 2, 4, 6, 8]

Rakendatud näited loendikomprehensioonidest

Loendikomprehensioonid on kasulikud ka andmete filtreerimiseks ja teisendamiseks. Näiteks võivad need aidata, kui soovid loendist stringidest eraldada ainult kindla pikkusega sõnu.

words = ["apple", "banana", "cherry", "date"]
filtered_words = [word for word in words if len(word) > 5]
print(filtered_words)  # Output: ['banana', 'cherry']

Kasutades loendikomprehensioone, saad oma koodi lühendada, samal ajal tõhusalt andmeid tingimuste alusel ekstraheerides või teisendades.

4. Python’i if‑ ja for‑lause ühe‑rea kasutamine

Kombineerides for‑ ja if‑lauseid, saad kirjutada ühe rea koodi, mis töötleb ainult elemente, mis vastavad antud tingimusele. See on kasulik suurte loendioperatsioonide lihtsustamiseks.

If‑ ja for‑lause ühe‑rea süntaks

Põhisüntaks on järgmine.

list = [expression for variable in iterable if condition]

Näide: Paarisarvude ruutude loendi loomine

Selleks, et loetleda ruudud paarisarvudest 1‑st kuni 10‑ni, kasuta järgmist.

squared_evens = [x**2 for x in range(1, 11) if x % 2 == 0]
print(squared_evens)  # Output: [4, 16, 36, 64, 100]

Rakendatud näide: Andmete filtreerimine konkreetsete tingimuste alusel

See kood ekstraheerib loendist ainult positiivsed arvud ja kogub need uude loendisse.

numbers = [-5, -1, 2, 8, -3, 7]
positive_numbers = [num for num in numbers if num > 0]
print(positive_numbers)  # Output: [2, 8, 7]

If‑ ja for‑lause kirjutamine ühel real vähendab koodi kordust, võimaldades samal ajal tõhusat andmete manipuleerimist.

5. Ühe‑rea if koos omistamise avaldisega (Walrus‑operaator)

Määramise väljend (merevaikude operaator) :=, mis loodi Python 3.8 ja hiljem, võimaldab muutuja väärtustamist if-lause sees. Selle peamine omadus on see, et see võimaldab hinnata tingimust samal ajal salvestades arvutuse tulemuse.

Määramise väljendite süntaks ja põhiline kasutamine

Määramise väljendite süntaks ja põhiline kasutamine

if (variable := expression) condition:
    process

Näide: Loendi pikkuse kasutamine tingimusena

Loendi pikkus võetakse kätte ja hinnatakse tingimusena, samal ajal tehes selle põhjal töötlemist.

some_list = [1, 2, 3, 4, 5]
if (length := len(some_list)) > 3:
    print(f"The length of the list is {length}, which is greater than 3")
# Output: The length of the list is 5, which is greater than 3

Praktilised kasutusjuhtumid

Merevaikude operaatori kasutamine võimaldab vältida korduvate arvutuste tegemist ja potentsiaalselt parandada jõudlust. See on eriti efektiivne olukordades, kus arvutuse tulemus – näiteks loendi või stringi operatsioonid – vajab uuesti kasutamist.

6. Märkused ühe rea if-lauste kasutamise kohta

Ühe rea if-laused on võimsad, kuid nende liigne kasutamine võib vähendada loetavust. Kasutage neid ainult lihtsate tingimuste kontrollimiseks ja lülitage tavalistele if-laustele üle, kui on vaja keerulisemat loogikat.

7. Kokkuvõte ja järgmised sammud

Selles artiklis tutvustasime mitmesuguseid tehnikaid Pythoni if-lauste kirjutamiseks ühel real. Alates lihtsamatest tingimuslikest harudest kuni loendite manipuleerimise ja merevaikude operaatori kasutamiseni katame ühe rea if-lauste eelised ja piirangud. Proovige neid tehnikaid rakendada, et muuta oma igapäevane Pythoni programmeerimine efektiivsemaks.

侍エンジニア塾