Forum
>>
Principianti
>>
Le posizioni dispari di una lista..
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da elninos |
2019-01-23 18:17:35 - Le posizioni dispari di una lista..
|
Salve,
stavo svolgendo un esercizio di python(premetto che sono ancora alle primissime armi), nel quale veniva richiesto di trovare quale siano gli elementi di posto dispari all'interno di una lista e stamparli, in seguito stampare anche la somma degli elementi dispari. Avevo provato a dividire il cursore "i" diviso 2 e quindi stampare solo quelli che non avevano resto (escludendo anche lo 0). def dispari(lista): for i in range(len(lista)): if (i/2)!= 1 and (i!=0): print(lista)ma il risultato mi viene errato, in quanto mi esclude lo 0 e solo il primo numero pari: lista1=[1,4,5,6,7,8,9,20] >>> dispari(lista1) 4 6 7 8 9 20 Sapreste dirmi dove ho sbagliato? ringrazio anticipatamente --- Ultima modifica di elninos in data 2019-01-23 18:18:12 --- --- Ultima modifica di elninos in data 2019-01-23 18:42:13 --- |
|
Scritto da RicPol |
2019-01-23 20:39:39 - Re: Le posizioni dispari di una lista..
|
Mah, quel codice non ha nessuno senso. Dovresti provare a descrivere prima in italiano, passo-passo, l'algoritmo che avevi in mente di implementare. Poi si vede come trasformarlo in codice.
Prima di tutto, però, dovresti chiarirti qual è il test da fare per determinare se un numero è pari. E non dico "in codice python", voglio proprio dire nell'algebra elementare: come si fa a dire se un numero è pari oppure dispari, in algebra? Te lo ricordi da scuola? "Un numero è pari se..." (detto questo, non hai davvero bisogno di testare se le posizioni successive di una lista sono pari o dispari: se le percorri tutte in ordine, *lo sai già* che la prima è dispari e poi si alternano pari/dispari... prova a pensare anche in questo modo) (detto questo, ovviamente le liste in python *ce l'hanno già* il modo di estrarre gli elementi pari, e/o quelli dispari, e/o i multipli di un numero qualsiasi... basta ricorrre alla "slice notation", quella con le parentesi quadre... ma forse appunto l'esercizio prevede che tu non ne faccia uso altrimenti è troppo banale). https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog |
|
Scritto da pypy pypy |
2019-01-23 21:42:36 - Re: Le posizioni dispari di una lista..
|
basta leggere la guida di python, porta vari esempi su come sapere se un determinato numero sia pari o dispari.
|
|
Scritto da elninos |
2019-01-24 15:34:36 - Re: Le posizioni dispari di una lista..
|
La ringrazio per la risposta, avevo fatto un grosso errore di logica... Grazie al suo commento ne sono venuto a capo, ora però mi sorge un altro dubbio, le mi ha scritto che il primo elemento è dispari, quindi significa che lo 0 è la prima posizione dispari della lista?
def dispari(lista): for i in range(len(lista)): if i%2 == 0: print(i,lista) quindi in una lista del tipo [0,1,2,3,4] la posizione dispari sarebbe 0,2,4? --- Ultima modifica di elninos in data 2019-01-24 15:35:22 --- --- Ultima modifica di elninos in data 2019-01-24 15:36:44 --- --- Ultima modifica di elninos in data 2019-01-24 15:38:13 --- |
|
Scritto da RicPol |
2019-01-24 17:30:28 - Re: Le posizioni dispari di una lista..
|
Non farti confondere da python. Python numera le liste a partire da 0 (che è un numero *pari*, in effetti) per alcune ottime ragioni che però non hanno niente a che vedere con il tuo esercizio. Resta il fatto che il "primo" elemento di una lista è in posizione dispari, ovviamente, per tutti noi umani.
Quindi sì, hai il piccolo problema che l'elemento "0" (che è un numero *pari*) è un elemento *dispari* della lista... Il tuo ragionamento però è corretto, non ti resta che correggere l'offset indesiderato (aggiungi un "+1" nel punto strategico e tutto va a posto) https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog |
Pagina: 1
Esegui il login per scrivere una risposta.