Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from typing import cast
- ita_diz: list[str] = [
- "a", "abaca", "abacista", "abaco", "abate", "abatino", "abbacchio",
- "abbacinamento", "abbacinare", "abbaco", "abbagliamento",
- "abbagliante", "abbagliare", "abbagliata", "abbaglio", "abbaiare", "abbaiata",
- "abbaino", "abbaio", "abbaione", "ecc."
- ]
- letture: list[str | int] = [1,5,"skip 2", -7, -8, 34, 99,15,
- 45, "skip 1", -98, 78, 100]
- # versione ingenua che fallisce (l'iteratore comanda!)
- # for i in range(len(letture)):
- # if isinstance(letture[i], str):
- # i += int(cast(str, letture[i]).removeprefix("skip "))
- # else:
- # print(letture[i])
- # soluzione 2: con logica esterna, complicando chiaramento il codice
- # da_saltare: int = 0
- # for i in range(len(letture)):
- # # Se abbiamo accumulato dei salti, decrementiamo e passiamo oltre
- # if da_saltare > 0:
- # da_saltare -= 1
- # continue
- #
- # if isinstance(letture[i], str):
- # da_saltare = int(cast(str, letture[i]).removeprefix("skip "))
- # else:
- # print(letture[i])
- # con iteratore esplicito
- iteratore = iter(letture)
- # salti: int = 0
- # for elemento in iteratore:
- # if isinstance(elemento, str):
- # salti = int(elemento.removeprefix("skip "))
- #
- # # "Bruciamo" manualmente i prossimi N elementi dall'iteratore
- # for _ in range(salti):
- # # Il secondo argomento None evita un crash se cerchiamo
- # # di saltare oltre la fine della lista
- # next(iteratore, None)
- # else:
- # print(elemento)
- i: int = 0
- salti: int = 0
- while i < len(letture):
- if isinstance((elemento := letture[i]), str):
- salti = int(elemento.removeprefix("skip "))
- i += (salti + 1)
- else:
- print(elemento)
- i += 1
- # Il problema: Hai un capitale iniziale di 1.000€.
- # Ogni mese guadagna il 5% di interesse,
- # ma la banca si prende 15€ di spese fisse.
- # Quanti mesi ci vorranno per raddoppiare il capitale?
- capitale: float = 1000
- mesi: int = 0
- obiettivo: float = capitale*2
- while capitale <= obiettivo:
- capitale += (capitale * 0.05) - 15
- mesi += 1
- print(f"Ci sono voluti {mesi} mesi per raggiungere {capitale:.2f}€")
- numero = None
- while numero is None or numero % 2 != 0:
- if (risposta := input("Inserisci un numero pari: ")).isdigit():
- numero = int(risposta)
- else:
- print("Non hai inserito un numero, ripeti")
- # lettura con controllo da tastiera
- while not (risposta:= input("Inserisci un numero pari: ")).isdigit() or int(risposta) % 2 != 0:
- print("Errore: devi inserire un numero pari. Riprova!")
Advertisement