Ragazzi ho un problema enorme, devo implementare due funzioni.
La prima deve, dato un numero intero in base 10 , restituire una lista i cui elementi sono le cifre del numero rappresentate come interi
Esempio f(2043) -> [2,0,4,2]
La seconda inserire un oggetto persona in ordine alfabetico prima per cognome poi per nome.
ho fatto errori ma non so dove, la prima funzione restituisce una lista vuota, la seconda da errore.
Qualcuno mi può aiutare?
La prima deve, dato un numero intero in base 10 , restituire una lista i cui elementi sono le cifre del numero rappresentate come interi
Esempio f(2043) -> [2,0,4,2]
La seconda inserire un oggetto persona in ordine alfabetico prima per cognome poi per nome.
ho fatto errori ma non so dove, la prima funzione restituisce una lista vuota, la seconda da errore.
Codice:
#esercizio C
def lista_cifre(numero):
lista_interi=[]
numero=str(numero)
for i in numero:
lista_interi.append(int(i))
return lista_interi
#esercizio D e E
class persona:
def __init__(self,nome,cognome):
self.nome=str(nome)
self.cognome=str(cognome)
def __str__(self):
return 'Persona:'+self.nome +self.cognome
def inserisci(persona,lista_persone):
lista_persone.append(persona)
l=[]
for i in range(len(lista_persone)):
while not lista_persone[i].cognome <= persona.cognome:
if lista_persone[i].cognome == persona.cognome:
if lista_persone[i].cognome < persona.cognome:
return lista_persone.insert(i+1,persona)
elif lista_persone[i].cognome > persona.cognome:
return lista_persone.insert(i,persona)
else:
return lista_persone.insert(i,persona)
i += 1
l.append(persona)
def main():
print('Esercizio C\n')
lista_interi=[]
j=input('Vuoi inserire un intero nella lista?\nDigita si oppure no: ')
if j=='si': #allora inserisco l'intero nella lista
n=input('Scrivi il numero intero desiderato: ') #chiedo il numero
lista_cifre(n)
print('La lista contiene questi interi:\n')
print(lista_interi)
else: #non inserisco nessuno
print('La lista è vuota')
time.sleep(3) #faccio scorrere qualche secondo per rendere a mio avviso più soddisfacente l'esecuzione
print('Esercizio E\n')
lista_persone=[]
h=input('Vuoi inserire delle persone nella lista?\nDigita si oppure no: ')
q=int(input('Quante?: '))
if h=='si': #allora inserisco persone nella lista
i=1 #inizializzo un conteggio
while q>0: #ciclo dell' aggiunta di q persone
n=input('Scrivi il nome della persona numero '+str(i)+': ') #chiedo il nome della persona i
c=input('Scrivi il cognome della persona numero ' +str(i)+': ') #chiedo cognome della persona i
p=persona(n,c) #trasformo la persona come oggetto
inserisci(p,lista_persone) #inserisco l'oggetto in una lista
i = i+1 #aggiorno il conto della persona da inserire
q = q-1 #diminuisco il conto delle persone rimaste da inserire
print('La lista contiene queste persone:\n')
print(lista_persone)
else: #non inserisco nessuno
print('La lista di persone è vuota')
main()
Qualcuno mi può aiutare?
Ultima modifica: