Expliqueu les ramificacions condicionals amb declaracions if a Python.
- Conceptes bàsics de les declaracions if (if, elif, else)
- Especifiqueu condicions amb operadors de comparació, etc.
- Especifiqueu les condicions per nombre, llista, etc.
- Especifiqueu múltiples condicions o negacions amb operadors lògics (i, o, no)
- Expressions condicionals en línies noves i múltiples línies
També hi ha un operador ternari que descriu una branca condicional en una línia. Consulteu l’article següent.
- RELACIONATS:Escrivint declaracions if en una línia amb l’operador ternari de Python (operador condicional)
- Conceptes bàsics de les declaracions if (if, elif, else)
- Especifiqueu condicions amb operadors de comparació, etc.
- Especifiqueu les condicions per nombre, llista, etc.
- Especifiqueu múltiples condicions o negacions amb operadors lògics (i, o, no)
- Expressions condicionals en línies noves i múltiples línies
Conceptes bàsics de les declaracions if (if, elif, else)
La forma bàsica de la declaració if és la següent
if Conditional expression 1:
`Processing to be performed if Expression 1 is True.`
elif Conditional expression 2:
`Processing to be performed when expression 1 is false and expression 2 is true.`
elif Expression 3:
`Process when expression 1 and 2 are false and expression 3 is true.`
...
else:
`Processing when all conditionals are false.`
El “elif” correspon al “else if” en C i altres idiomes, i pot haver-hi qualsevol nombre d'”elifs”.
Si només hi ha una expressió condicional o processament quan false no és necessari, es poden ometre els blocs “elif” i “else”.
Especifiqueu condicions amb operadors de comparació, etc.
Especifiqueu la condició amb una operació que retorni un tipus bool (true, false), com ara un operador de comparació.
Els operadors de comparació de Python són els següents
operador | resultat |
---|---|
x < y | cert si x és menor que y |
x <= y | cert si x és menor o igual que y |
x > y | cert si x és més gran que y |
x >= y | cert si x és major o igual que y |
x == y | cert si els valors de x i y són iguals |
x != y
x is y
x is not y
x in y
x not in y
Exemple. Per comoditat, es defineix com una funció amb la sentència def.
def if_test(num):
if num > 100:
print('100 < num')
elif num > 50:
print('50 < num <= 100')
elif num > 0:
print('0 < num <= 50')
elif num == 0:
print('num == 0')
else:
print('num < 0')
if_test(1000)
# 100 < num
if_test(70)
# 50 < num <= 100
if_test(0)
# num == 0
if_test(-100)
# num < 0
El següent es pot escriure d’una manera que sigui exclusiva de Python. Consulteu l’article següent per obtenir més informació.a < x < b
def if_test2(num):
if 50 < num < 100:
print('50 < num < 100')
else:
print('num <= 50 or num >= 100')
if_test2(70)
# 50 < num < 100
if_test2(0)
# num <= 50 or num >= 100
#ERROR!
!=
L’anterior és una comparació de valors; per comparar identitats d’objectes, utilitzeu el següent
is
is not
Per exemple, quan es compara un nombre enter i un nombre de coma flotant, “==” retorna cert si els valors són equivalents, però “és” retorna fals perquè són objectes diferents.
i = 10
print(type(i))
# <class 'int'>
f = 10.0
print(type(f))
# <class 'float'>
print(i == f)
# True
print(i is f)
# False
També és possible establir la condició de si una llista o una cadena conté un element específic (caràcter).
in
:inclourenot in
:sense incloure
def if_test_in(s):
if 'a' in s:
print('a is in string')
else:
print('a is NOT in string')
if_test_in('apple')
# a is in string
if_test_in('melon')
# a is NOT in string
Especifiqueu les condicions per nombre, llista, etc.
L’expressió condicional d’una sentència if pot ser un nombre, una llista o un altre objecte que no sigui de tipus bool (true, false).
if 10:
print('True')
# True
if [0, 1, 2]:
print('True')
# True
En l’expressió condicional d’una instrucció if de Python, els objectes següents es consideren falsos.
- Les constants definides com a falses:
None
,false
- Zero en tipus numèric:
0
,0
,0j
,Decimal(0)
,Fraction(0, 1)
- Seqüència o col·lecció buida:
'
,()
,[]
,{}
,set()
,range(0)
Truth Value Testing — Built-in Types — Python 3.10.4 Documentation
Els nombres que representen zero, cadenes buides, llistes, etc. es consideren falsos; tots els altres es consideren veritables.
Com es jutja l’objecte es pot comprovar amb bool().
print(bool(10))
# True
print(bool(0.0))
# False
print(bool([]))
# False
print(bool('False'))
# True
Això es pot utilitzar per escriure simplement el procés quan la llista està buida, per exemple.
def if_test_list(l):
if l:
print('list is NOT empty')
else:
print('list is empty')
if_test_list([0, 1, 2])
# list is NOT empty
if_test_list([])
# list is empty
Tingueu en compte que la cadena ‘False’ també serà certa, perquè com es mostra a l’exemple anterior, qualsevol cadena que no estigui buida a la cadena serà certa.’ Per convertir una cadena específica com ara “True” o “False” a 1,0, utilitzeu strtobool() al mòdul distutils.util.
Especifiqueu múltiples condicions o negacions amb operadors lògics (i, o, no)
Els operadors lògics (i, o no) es poden utilitzar per manejar la conjunció lògica, la disjunció lògica i la negació de múltiples condicions.
operador | (Resultat (en l’expressió condicional d’una sentència if) |
---|---|
x and y | cert si tant x com y són certs |
x or y | cert si x o y és cert |
not x | fals si x és vertader, vertader si x és fals |
def if_test_and_not(num):
if num >= 0 and not num % 2 == 0:
print('num is positive odd')
else:
print('num is NOT positive odd')
if_test_and_not(5)
# num is positive odd
if_test_and_not(10)
# num is NOT positive odd
if_test_and_not(-10)
# num is NOT positive odd
De fet, “x i y” i “x o y” no retornen vertader o fals, sinó x o y. Sempre que s’utilitzin en expressions condicionals en declaracions if, no cal que us preocupeu, ja que s’avaluen com a Vertader o Fals. Consulteu l’article següent per obtenir més informació.
És possible utilitzar i i o més d’una vegada.
def if_test_and_not_or(num):
if num >= 0 and not num % 2 == 0 or num == -10:
print('num is positive odd or -10')
else:
print('num is NOT positive odd or -10')
if_test_and_not_or(5)
# num is positive odd or -10
if_test_and_not_or(10)
# num is NOT positive odd or -10
if_test_and_not_or(-10)
# num is positive odd or -10
Expressions condicionals en línies noves i múltiples línies
Quan s’utilitzen diverses expressions condicionals connectant-les amb “i” o “o” i cada línia es fa llarga, de vegades cal trencar l’expressió condicional i escriure-la en diverses línies.
Es pot fer un salt de línia utilitzant una barra invertida o tancant tota la línia entre parèntesis.
def if_test_and_backslash(num):
if num >= 0 \
and not num % 2 == 0:
print('num is positive odd')
else:
print('num is NOT positive odd')
if_test_and_backslash(5)
# num is positive odd
def if_test_and_brackets(num):
if (num >= 0
and not num % 2 == 0):
print('num is positive odd')
else:
print('num is NOT positive odd')
if_test_and_brackets(5)
# num is positive odd
Podeu utilitzar una barra invertida per trencar una línia tantes vegades com vulgueu. De la mateixa manera, podeu trencar una línia qualsevol nombre de vegades entre parèntesis. No hi ha límit de sagnat.
Tingueu en compte que aquesta és una tècnica que es pot utilitzar a qualsevol lloc del codi Python, no només a les declaracions if.