11. Judicis `si '' nided¶
Es diu que una estructura de programació està nidificada quan es troba dins d'una altra.
Cada nivell addicional amb una altra instrucció `` si '' s'han d'escriure el codi amb sagnat, és a dir, amb espais a l'esquerra.
Aquest és un exemple amb la instrucció `` si '`nidificada en dos nivells
numero = input('Introduce un número: ')
numero = int(numero)
if numero % 3 == 0:
if numero % 5 == 0:
print('El número', numero, 'es divisible por 3 y por 5')
else:
print('El número', numero, 'es divisible por 3')
Les condicions de NIDAR `` si '' pot ser útil, però heu d'intentar no nidificar molts nivells per facilitar la lectura del codi.
Aquest és un altre exemple de `` si '' niding a dos nivells
edad = input('Introduce tu edad: ')
edad = int(edad)
if edad >= 18:
if edad >= 65:
print("Eres un adulto mayor")
else:
print("Eres un adulto")
else:
if edad > 3:
print("Eres menor de edad")
else:
print("Eres un bebé")
Exercicis¶
Escriviu un programa que calculi el preu a l’entrada d’un cinema en funció de l’edat.
El preu normal del bitllet és de 10 euros.
Si el client té una edat de 60 o més, només pagarà 2 euros.
Si el client té una edat de 12 o menys, només pagarà 4 euros.
Pista
edad = input('Escribe tu edad: ') edad = int(edad) if ... :
Escriviu un programa per comprovar si una persona pot pujar a les atraccions d’un parc.
Si l'alçada és inferior a 140, no podeu pujar les atraccions
En cas contrari:
- Si l’edat té menys de 12 anys, podeu pujar a les atraccions dels nens.
- Si l’edat és superior o igual a 12, podeu pujar a totes les atraccions.
Pista
altura = 120 edad = 5 if ....
Escriviu un programa que demanés la nota obtinguda i respondeu segons les condicions següents:
Si la nota és superior o igual a 5 -> Heu aprovat
Si la nota és superior a 6 -> heu aprovat amb una bona nota
Si la nota és inferior a 5 -> Heu suspès
Si la nota és inferior a 4 -> Heu suspès amb una mala nota
Escriviu un programa d’ajuda per reparar objectes.
El programa primer s’ha de preguntar si l’objecte es mou. Aleshores, heu de preguntar si l’objecte s’ha de moure. Aleshores, el programa ha d’imprimir un missatge a la pantalla segons les opcions introduïdes:
Si l'objecte es mou i s'ha de moure -> no cal reparar.
Si l'objecte es mou i no s'ha de moure -> Utilitzeu cinta americana.
Si l'objecte no es mou i no s'ha de moure -> no cal reparar.
Si l'objecte no es mou i s'ha de moure -> Utilitzeu l'oli 3 en 1.
Pista
# Pregunta para obtener una respuesta de tipo si/no # con una sola letra (s/n) se_mueve = input('El objeto se mueve? (s/n)') if se_mueve == 's': ...
Escriviu un programa per identificar personatges del còmic Astérix i Obélix.
Si el personatge és el protagonista principal:
- Si el personatge aixeca Menhires: és Obélix.
- En cas contrari: és Astérix.
En cas contrari:
Si el personatge prepara pocions: és Panoramix.
En cas contrari:
- Si el personatge canta malament: és asurancetúrix.
- En cas contrari: el personatge no s’identifica.
Pista
# Pregunta para obtener una respuesta de tipo si/no # con una sola letra (s/n) opcion_1 = input('El personaje es protagonista principal? (s/n)') if opcion_1 == 's':
Escriviu un programa que l'usuari va preguntar i després la contrasenya. Si l'usuari és igual a "administrador", comproveu la contrasenya, que ha de ser igual a "secret". En cas d’escriure la contrasenya correcta, heu d’imprimir “Inici de sessió correcte”.
Si la contrasenya està equivocada, s'ha d'escriure "contrasenya incorrecta"
Si l'usuari no és "administrador", s'ha d'escriure l'usuari incorrecte
Escriviu un programa per classificar els triangles.
En primer lloc, les longituds dels costats s’han de definir al programa
lado1 = 5 lado2 = 3 lado3 = 4
A continuació, cal comprovar les longituds dels costats i el tipus de triangle a la pantalla:
- Si el costat1 == side2 i si side2 == costat3: és equilàter
- Si el costat1 == costat2 o lateral1 == costat3 o costat2 == costat3: és isosceles
- En cas contrari: és Scalene.
Escriviu un programa que verifica si un any fa un salt. Un any es fa un salt si és divisible per 4 (any % 4 == 0).
D’aquests anys del salt, els que són divisibles per cada 100 s’han d’eliminar i afegir els que són divisibles per 400.
Pista
year = input('Escribe el año: ') year = int(year) if year % 4 == 0: if year % 100 == 0: if year % 400 == 0: print('...') else: print('...') else: print('...') else: print('...')
La llista dels anys de salt entre el 1600 i el 2400 és
1600, 1604, 1608, 1612, 1616, 1620, 1624, 1628, 1632, 1636, 1640, 1644, 1648, 1652, 1656, 1660, 1664, 1668, 1672, 1676, 1680, 1684, 1688, 1692, 1696, 1704, 1708, 1712, 1716, 1720, 1724, 1728, 1732, 1736, 1740, 1744, 1748, 1752, 1756, 1760, 1764, 1768, 1772, 1776, 1780, 1784, 1788, 1792, 1796, 1804, 1808, 1812, 1816, 1820, 1824, 1828, 1832, 1836, 1840, 1844, 1848, 1852, 1856, 1860, 1864, 1868, 1872, 1876, 1880, 1884, 1888, 1892, 1896, 1904, 1908, 1912, 1916, 1920, 1924, 1928, 1932, 1936, 1940, 1944, 1948, 1952, 1956, 1960, 1964, 1968, 1972, 1976, 1980, 1984, 1988, 1992, 1996, 2000, 2004, 2008, 2012, 2016, 2020, 2024, 2028, 2032, 2036, 2040, 2044, 2048, 2052, 2056, 2060, 2064, 2068, 2072, 2076, 2080, 2084, 2088, 2092, 2096, 2104, 2108, 2112, 2116, 2120, 2124, 2128, 2132, 2136, 2140, 2144, 2148, 2152, 2156, 2160, 2164, 2168, 2172, 2176, 2180, 2184, 2188, 2192, 2196, 2204, 2208, 2212, 2216, 2220, 2224, 2228, 2232, 2236, 2240, 2244, 2248, 2252, 2256, 2260, 2264, 2268, 2272, 2276, 2280, 2284, 2288, 2292, 2296, 2304, 2308, 2312, 2316, 2320, 2324, 2328, 2332, 2336, 2340, 2344, 2348, 2352, 2356, 2360, 2364, 2368, 2372, 2376, 2380, 2384, 2388, 2392, 2396, 2400
A la llista no haurien de sortir dels anys 1700, 1800, 1900, 2100, 2200, 2300 perquè són divisibles per cada 100.
A la llista han de deixar els 1600, 2000 i 2400 anys perquè, tot i que són divisibles per cada 100, també són divisibles per 400.