What is if in Python?

Python if med or: En Komplet Guide

03/04/2024

Rating: 4.91 (5797 votes)

I Python-programmering er betingede udsagn fundamentet for at skabe dynamisk og intelligent software. if-sætningen er det primære værktøj til at styre programmets flow baseret på specifikke betingelser. Når den kombineres med den logiske operator or, bliver den endnu mere kraftfuld. Denne kombination giver dig mulighed for at udføre en kodeblok, hvis blot én ud af flere betingelser er opfyldt. Denne artikel vil dykke ned i, hvordan du effektivt bruger if-sætningen med or i Python, fra de grundlæggende koncepter til mere avancerede anvendelser og bedste praksis.

What is an IF statement with the or operator?
The most common use case of an if statement with the OR operator is to check if a string matches any of several possible values. Let's understand this with simple example. Explanation: Checks if a is "python" or "java". Prints "Selected" if true. We can also used to check if the user's input is valid by matching it with predefined options. Example:
Indholdsfortegnelse

Grundlæggende Koncepter: Forståelse af 'if' og 'or'

Før vi kombinerer dem, er det vigtigt at forstå hver del for sig.

'if'-sætningen

En if-sætning i Python bruges til at udføre en blok kode, kun hvis en bestemt betingelse er sand (evalueres til True). Hvis betingelsen er falsk (False), springes kodeblokken over.

'or'-operatoren

or er en logisk operator. Den tager to eller flere udtryk og returnerer True, hvis mindst ét af udtrykkene er True. Den returnerer kun False, hvis alle udtryk er False. En afgørende egenskab ved or-operatoren er dens "kortslutningsevaluering" (short-circuit evaluation). Det betyder, at Python evaluerer udtrykkene fra venstre mod højre og stopper, så snart den finder det første sande udtryk. Hvis det første udtryk er True, vil det andet udtryk slet ikke blive evalueret, hvilket kan forbedre ydeevnen.

Syntaks og Grundlæggende Anvendelse

Kombinationen af if og or er ligetil. Syntaksen ser således ud:

if betingelse1 or betingelse2: # Kode, der skal udføres, hvis enten betingelse1 eller betingelse2 er sand 

Lad os se på et simpelt eksempel:

x = 5 y = 20 if x > 10 or y > 15: print("Mindst én af betingelserne er sand.") 

I dette tilfælde er x > 10 falsk (5 er ikke større end 10), men y > 15 er sand (20 er større end 15). Da or-operatoren kun kræver, at én betingelse er sand, vil den samlede betingelse evaluere til True, og beskeden vil blive printet.

What is logical && operator?
The logical AND (&&) (logical conjunction) operator for a set of boolean operands will be true if and only if all the operands are true. Otherwise it will be false. More generally, the operator returns the value of the first falsy operand encountered when evaluating from left to right, or the value of the last operand if they are all truthy.

Brug af Flere 'or'-betingelser

Du er ikke begrænset til kun to betingelser. Du kan kæde så mange betingelser sammen, som du har brug for, ved hjælp af or.

vejr = "solskin" temperatur = 22 ugedag = "lørdag" if vejr == "regn" or temperatur < 10 or ugedag == "lørdag": print("Det er en god dag at slappe af indendørs eller nyde weekenden!") 

Her er de to første betingelser falske, men da ugedag == "lørdag" er sand, udføres kodeblokken.

Praktiske Anvendelsesscenarier

if med or er utroligt nyttigt i mange virkelige programmeringssituationer.

Validering af Brugerinput

En almindelig opgave er at validere input fra en bruger. Du vil måske acceptere flere forskellige former for et positivt svar.

svar = input("Vil du fortsætte? (ja/j/yes): ") # Vi konverterer input til små bogstaver for at gøre sammenligningen ufølsom over for store/små bogstaver if svar.lower() == "ja" or svar.lower() == "j" or svar.lower() == "yes": print("Fortsætter...") else: print("Afslutter programmet.") 

Kontrol af Datatyper

Nogle gange kan en funktion acceptere flere forskellige datatyper som input. Du kan bruge isinstance() sammen med or for at kontrollere dette.

What logical operations can be performed on NumPy arrays?
NumPy provides several comparison and logical operations that can be performed on NumPy arrays. NumPy's comparison operators allow for element-wise comparison of two arrays. Similarly, logical operators perform boolean algebra, which is a branch of algebra that deals with True and False statements.
def behandl_data(data): if isinstance(data, int) or isinstance(data, float): print(f"Behandler numerisk data: {data}") else: print("Data er ikke numerisk.") behandl_data(100) # Output: Behandler numerisk data: 100 behandl_data(99.5) # Output: Behandler numerisk data: 99.5 behandl_data("tekst") # Output: Data er ikke numerisk. 

Styring af Adgang eller Rettigheder

I systemer med brugerroller kan du give adgang, hvis en bruger har en af flere acceptable roller.

bruger_rolle = "redaktør" if bruger_rolle == "administrator" or bruger_rolle == "redaktør": print("Adgang til redigeringsværktøjer er givet.") else: print("Du har ikke de nødvendige rettigheder.") 

Avancerede Teknikker og Bedste Praksis

Kombination af 'and' og 'or'

Du kan skabe komplekse logiske betingelser ved at kombinere and og or. Når du gør dette, er det afgørende at bruge parenteser () for at gøre din kode læsbar og for at sikre, at betingelserne evalueres i den rækkefølge, du forventer. and-operatoren har højere præcedens end or, hvilket betyder, at den evalueres først, medmindre du bruger parenteser til at ændre rækkefølgen.

Eksempel: Vi vil give rabat, hvis en kunde enten er studerende, eller hvis de er over 65 år og handler på en hverdag.

alder = 70 status = "pensionist" dag = "tirsdag" # Uden parenteser kan logikken være tvetydig # if status == "studerende" or alder > 65 and dag != "lørdag" and dag != "søndag": # Med parenteser er logikken klar if status == "studerende" or (alder > 65 and (dag != "lørdag" and dag != "søndag")): print("Du er berettiget til rabat.") else: print("Ingen rabat gældende.") 

Forenkling af Komplekse Betingelser

Hvis en if-sætning bliver for lang og kompleks, kan det skade læsbarheden. En god praksis er at opdele betingelserne i separate variabler med beskrivende navne.

I stedet for dette:

if (bruger['er_aktiv'] and not bruger['er_suspenderet']) or (bruger['er_admin'] and er_vedligeholdelsestilstand_aktiv): # ... gør noget 

Kan du gøre dette, hvilket er meget mere læsbart:

er_gyldig_bruger = bruger['er_aktiv'] and not bruger['er_suspenderet'] er_admin_i_vedligeholdelse = bruger['er_admin'] and er_vedligeholdelsestilstand_aktiv if er_gyldig_bruger or er_admin_i_vedligeholdelse: # ... gør noget 

Sammenligningstabel: 'and' vs. 'or'

For at cementere forståelsen er her en tabel, der viser forskellen mellem de to primære logiske operatorer.

What are logical operators in JavaScript? Logical operators are used to determine the logic between variables or values. Given that x = 6 and y = 3, the table below explains the logical operators: JavaScript also contains a conditional operator that assigns a value to a variable based on some condition. let voteable = (age < 18) ? "Too young":"Old enough";[/caption]

Betingelse 1Betingelse 2Resultat med 'and'Resultat med 'or'
SandSandSandSand
SandFalskFalskSand
FalskSandFalskSand
FalskFalskFalskFalsk

Ofte Stillede Spørgsmål (FAQ)

Hvad er "kortslutningsevaluering" helt præcist?

Det er en optimeringsteknik. Med or evaluerer Python udtryk fra venstre mod højre. Så snart et udtryk evalueres til True, stopper evalueringen, og hele or-kæden anses for at være True. Dette sparer beregningstid, da de resterende betingelser ikke behøver at blive tjekket. For eksempel i if funktion_der_returnerer_true() or tung_beregning():, vil tung_beregning() aldrig blive kaldt.

Returnerer 'or' altid en boolesk værdi (True/False)?

Ikke nødvendigvis. I Python returnerer or den første værdi, der er "truthy" (en værdi, der betragtes som sand i en boolesk kontekst, f.eks. et tal forskelligt fra 0, en ikke-tom streng eller liste). Hvis alle værdier er "falsy" (f.eks. 0, None, en tom streng ""), returneres den sidste værdi. Dette bruges ofte til at tildele standardværdier: navn = bruger_input or "Anonym". Hvis bruger_input er en tom streng (falsy), bliver navn tildelt værdien "Anonym".

Hvordan undgår jeg fejl, når jeg blander 'and' og 'or'?

Den absolut bedste praksis er altid at bruge parenteser til at gruppere dine betingelser. Dette fjerner enhver tvivl om evalueringsrækkefølgen og gør din hensigt krystalklar for både dig selv og andre, der læser din kode.

Konklusion

At mestre brugen af if-sætningen med or-operatoren er et fundamentalt skridt i retning af at skrive mere fleksibel og robust Python-kode. Det giver dig mulighed for at håndtere flere scenarier med færre linjer kode og skabe mere komplekse beslutningslogikker på en elegant måde. Ved at forstå de grundlæggende koncepter, anvende bedste praksis som at bruge parenteser og forenkle komplekse betingelser, kan du skrive kode, der ikke kun er funktionel, men også let at læse og vedligeholde. Nu er det tid til at eksperimentere med disse koncepter i dine egne projekter og se, hvordan de kan forbedre dit programflow.

Hvis du vil læse andre artikler, der ligner Python if med or: En Komplet Guide, kan du besøge kategorien Sundhed.

Go up