Forum >> Principianti >> Primo esperimento

Pagina: 1

Ciao a tutti, mi chiamo Luca ed è la prima volta che scrivo in questo forum.




Sto imparando piano piano Python, nel tempo libero e da autodidatta. Non è facile, ma alla fine da soddisfazioni.




Oggi ho voluto provare ad utilizzare quel poco che ho imparato in questi giorni, tentando di risolvere un problema trovato su di un sito.

Sul sito projecteuler.net chiedevano: "If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below 1000."




Ho usato Python 3.6 ed alla fine, dopo alcuni tentativi fallimentari, ma utili, sono riuscito a risolvere il problema ottenendo il risultato corretto.




Volevo sapere da voi se il codice che ho scritto per risolvere il problema è "bello", se forse c'erano altre soluzioni, se sono entrato, almeno un po', nel modo di pensare giusto.




x=0
y=0
l1 = [ 0 ]
while x<999:
        x=x+1
        if x%3==0:
                l1.append(x)
while y<999:
        y=y+1
        if y%5==0:
                l1.append(y)

somma=sum(set(l1))
print(somma)





Fatemi sapere le vostre opinioni!




Grazie e buona serata!


--- Ultima modifica di FranticLuca in data 2017-10-21 01:08:29 ---

--- Ultima modifica di FranticLuca in data 2017-10-21 01:08:50 ---

--- Ultima modifica di FranticLuca in data 2017-10-21 01:09:13 ---

--- Ultima modifica di FranticLuca in data 2017-10-21 01:09:51 ---

--- Ultima modifica di FranticLuca in data 2017-10-21 01:10:50 ---

--- Ultima modifica di FranticLuca in data 2017-10-21 01:12:15 ---
Ciao Luca, citando la celebre frese, la bellezza è nell'occhio di chi guarda.

I concetti li hai capiti ed applicati, ovviamente potresti migliorare alcune cosine:
- Usare un solo ciclo;
- Fare qualche esperimento con for al posto di while;
- Cambiare n=n+1 in n+=1, più pythonico;
- Inserire una bella list comprehension per fare tutto in una riga.

Comunque come primo esperimento non c'è per niente male, bravo, continua così.

Cya


Daniele aka Palmux said @ 2017-10-21 13:28:29:
Grazie Daniele!




Sì, è vero, la bellezza è nell'occhio di chi guarda, e posso assicurarti che in quel momento il codice da me scritto era meraviglioso! ...ma so benissimo di essere alle prime armi, che mi trovo sulla superficie di tutto e che devo stare con i piedi per terra e le dita sulla tastiera.




Ho fatto come mi hai detto tu e anche se non ho ancora affrontato l'argomento list comprehension nel corso che sto seguendo (online), sono arrivato per gradi allo stesso (meraviglioso) risultato del primo codice, ma con tutto, o quasi, sulla stessa riga. Non sono ancora convinto del risultato perché avevi parlato di 1 sola riga, ma credo che appunto io stia cercando di sconfinare in argomenti da me non ancora trattati.

Prima ho fatto questo:

x=0
l1 = [ 0 ]
for x in range(1000):

        if x%3==0:
                l1.append(x)
        elif x%5==0:
                l1.append(x)
somma=sum(l1)
print(somma)


e poi sono arrivato a questo:

l1=sum([x for x in range(1000) if x%3==0 or x%5==0])
print(l1)





Che dire? Grazie per l'aiuto e, soprattutto, l'incoraggiamento.




Sicuramente ci rileggeremo sul forum presto! :)




Luca
Che dire? Grazie per l'aiuto e, soprattutto, l'incoraggiamento.
Di nulla, anzi mi fa molto piacere che vedere che sei arrivato a quel risultato, immagino che ti senta un programmatore migliore oggi. ;)

Continua così e non mollare, se hai problemi sai dove siamo.

Cya
Daniele aka Palmux said @ 2017-10-22 20:27:36:
Che dire? Grazie per l'aiuto e, soprattutto, l'incoraggiamento.
Di nulla, anzi mi fa molto piacere che vedere che sei arrivato a quel risultato, immagino che ti senta un programmatore migliore oggi. ;)

Continua così e non mollare, se hai problemi sai dove siamo.

Cya

:ok:


Pagina: 1



Esegui il login per scrivere una risposta.