Forum >> Principianti >> Problema con liste e assegnazioni di variabili

Pagina: 1

Buongiorno,

sono alle prime armi con la programmazione in python, e non ho mai usato altri linguaggi.

Mi sono bloccato su una partre di programma, ce probabilmente è una cavolata per chi conosce il linguaggio, ma non ho trovato soluzione leggendo qua e la e neanche nei manuali.




La parte di programma che ho riportato sotto, fa si che l'utente inserisca un numero di dosaggi a piacimento; e fino a qui problemi non mi sembra di averne trovati, chiede i dosaggi che l'utente vuole inserire e successivamente li inserisce nella lista.

l'inghippo mi viene a questo punto.

All'inizio volevo che ogni dosaggio venisse scritto in una variabile, in teoria il programma dovrebbe "crearsi" x variabili come il numero di dosaggi inseriti:




es:

var1= dosaggi0


var2= dosaggi 1


var3= dosaggi 2

.

...ecc








però ho visto che potrei accontentarmi anche di un print con:




il dosaggio n°1 è dosaggi0


il dosaggio n°2 è dosaggi1


il dosaggio n°3 è dosaggi2

.....ecc



PER TUTTI GLI ESEMPI DOPO DOSAGGI C'E' LA PARENTESI QUADRA CHE RACCHIUDE L'INDICE DELLA LISTA...NON ME LA PRENDE SUL MESSAGGIO




cambiare il numero del dosaggio non è un problema, la cosa si complica quando in automatico deve prendere gli elementi della lista uno a uno in fila.




mi sapreste indicare come posso fare? grazie in anticipo a chi troverà il tempo per rispondere e scusate il disturbo.





print("Quanti dosaggi vuoi inserire?")
dosint = input()
dosnum = 1
dosaggi = []
for doscount in range(int(dosint)):
print("Inserisci il dosaggio n°", dosnum)
dosins = input()
dosaggi.append(dosins)
dosnum += 1
print("Dosaggi settati correttamente.")
numdos = 1
for printdoscount in range(int(dosint)):
print("Il dosaggio n°", numdos, "è", dosaggi [?])
numdos += 1




Ciao,



se ho capito bene il tuo problema è nello stampare gli elementi nella lista "dosaggi" in ordine.




Se così fosse, per risolvere il tuo problema ti basta sostituire "range(int(dosint))" nel secondo ciclo for con "dosaggi", poiché in questo modo puoi stampare direttamente la variabile "printdoscount" (che a ogni iterazione assume un valore di quelli della lista), sostituendo "print("Il dosaggio n°", numdos, "è", dosaggi [?])" con "print("Il dosaggio n°", numdos, "è", printdoscount)"
print("Quanti dosaggi vuoi inserire?")
dosint = input()
dosnum = 1
dosaggi = []
for doscount in range(int(dosint)):
print("Inserisci il dosaggio n°", dosnum)
dosins = input()
dosaggi.append(dosins)
dosnum += 1
print("Dosaggi settati correttamente.")
numdos = 1
x=0 #ho aggiunto una variabile x che mi va a chiedere a dosaggi la posizione corretta.
for printdoscount in range(int(dosint)):
print("Il dosaggio n°", numdos, "è", dosaggi x)
numdos += 1
x +=1
ho risolto mettendo una variabile X......grazie comunque.

--- Ultima modifica di igor marchesini in data 2021-03-29 17:43:36 ---

--- Ultima modifica di igor marchesini in data 2021-03-29 17:43:51 ---
Ciao,



scusa la domanda, sei sicuro di aver capito bene come funziona il ciclo for? perché nel tuo codice tu usi un contatore esterno al ciclo che incrementi manualmente: in questo modo il ciclo for prede un po' di significato, perché tu potresti benissimo usare la variabile "doscount" al posto della variabile "dosnum" nel primo ciclo e la viariabile "printdoscount" al posto della "x" nel secondo.




Ti consiglio di andare a riguardarti il ciclo for, che secondo me è spiegato molto bene nella guida di HTML.it
Niccolo Bartolacelli said @ 2021-03-29 19:21:29:
Ah ah ah...l'avevo scritto che ero un principiante... :D
Niccolo Bartolacelli said @ 2021-03-29 19:21:29:
Grazie per avermi spiegato, le variabili che ho inserito non servono a niente....non avevo pensato che avrei potuto usare quelle che hai detto tu.... Grazie!!!
Niccolo Bartolacelli said @ 2021-03-29 19:21:29:
Adesso snellisco il codice...
------
Niccolo Bartolacelli said @ 2021-03-29 19:21:29:
Ciao,



scusa la domanda, sei sicuro di aver capito bene come funziona il ciclo for? perché nel tuo codice tu usi un contatore esterno al ciclo che incrementi manualmente: in questo modo il ciclo for prede un po' di significato, perché tu potresti benissimo usare la variabile "doscount" al posto della variabile "dosnum" nel primo ciclo e la viariabile "printdoscount" al posto della "x" nel secondo.




Ti consiglio di andare a riguardarti il ciclo for, che secondo me è spiegato molto bene nella guida di HTML.it




Pagina: 1



Esegui il login per scrivere una risposta.