Forum >> Principianti >> Rombo di *

Pagina: 1 2 Avanti

buonasera a tutti qui Salvatore da Genova insegnante di matematica e scienze
sono un itp in informatica dei tempi del pascal e turbo C ( che non ho mai amato tanto)
ora neofita da autodidatta in python3 su sistema windows10

Studio su concetti di informatica e fondamenti di Python (aut. Horstman,Necaise)
La traccia di un esercizio chiede di stampare a video un rombo di *
Ho scritto il seguente frammento
n=int(input("leggo n "))
for i in range(n):
print(' '* (n-i-1)+'*'*(i+1))
ma come mi aspettavo ottengo solo un quarto del rombo.
Come posso fare per risolvere il problema?
gli strumenti richiesti sono cicli e stampe.

Grazie infinite a chi mi risponderà e auguro a tutti buone feste
Salvatore, Genova



Ciao Salvatore, anch'io sono autodidatta in python da circa un anno.



non è molto bello ma ho risolto come sotto, in pratica un ciclo va a incrementare il numero di stelline ed esaurito quello parte il secondo ciclo che va a decrementare il numero di stelline... giusto per disegnare il rombo.



ovviamente ci saranno una miriade di soluzioni per fare quello che chiede l'esercizio, io non ho scelto la migliore (cioè con meno righe di codice) ma quella che mi è venuta prima in poco tempo.





n=int(input("leggo n ")) 
for i in range(n):
    print(' '* (n-i-1)+'**'*(i+1)+' '* (n-i-1))
for i in range(n):
    print(' '* (i+1)+'**'*(n-i-1)+' '* (i+1))


Ciao Stix77 grazie per avermi risposto proprio ieri sera sul tardi avevo pensato a una soluzione degenere che nel pomeriggio proverò
Ti faccio sapere se trovo una soluzione diversa

Tu come stai studiando il linguaggio? Che tipo di metodo usi soprattutto quali strumenti?

Restiamo in contatto magari confrontiamo i nostri sviluppi.

Grazie ancora

Salvatore!
ciao Salvatore, io ero partito in quarta anni fa iniziando con java, solo con scarsi risultati.
allora mi consigliarono di iniziare con python, e fu amore a prima vista, anche perchè lo sfrutto col mio raspberry pi.
proprio in questi giorni ho creato un robottino a due ruote movimentato da due motorini DC che sostanzialmente si muovono con script di python.
comunque ho passato i primi 6 mesi a studiare python in pausa pranzo seguendo questo libro:

https://www.amazon.it/Python-ragazzi-Unintroduzione-giocosa-programmazione/dp/886895348X

finito questo, che mi ha dato delle solide basi, ho continuato guardando un corso su youtube tenuto da pymike, il corso è ben fatto:

https://www.youtube.com/channel/UCLXlzAu0NhM5pnXLQdGnHJQ

molto utile per imparare i concetti intermedi. (ed eventualmente gestire una pagina web con django )
magari quando finirò il corso leggerò questo, per i concetti avanzati

https://www.amazon.it/Programmare-Python-Guida-completa-Marco/dp/8868950243

c'è da dire che per non rendere l'apprendimento noioso, alternavo la lettura del primo libro, con la creazione del mio primo progetto, che altro non è che la trasposizione da excel a python del calcolo che uso per calcolare la perdita di pressione di gas lungo condotte molto lunghe. la cosa che mi è piaciuta è che agganciando vari moduli in python ho potuto arricchire il progetto. oltre a tutte le operazioni matematiche che oltre a python base richiedono il modulo math per i logaritmi, ho utilizzato tkinter per l'interfaccia grafica e per salvare e caricare i dati, matplotlib (mi pare si chiami così) per mostrare graficamente la curva di pressione.

python è molto bello e potente, ovviamente non si smette mai di imparare, e di condividere con tutti gli altri gioie e dolori :D progetti andati a buon fine e progetti abbandonati








--- Ultima modifica di stix77 in data 2017-12-23 11:20:38 ---
ah, mi sono dimenticato di dirti gli strumenti!!

sul cellulare utilizzo l'applicazione SoloLearn che ti da la possibilità di seguire un corso base e di scriptare. molto utile quando viaggio in treno e non ho nulla da fare
a lavoro utilizzo l'IDLE standard di python, oppure uso l'ambiente integrato di Eclipse, molto utile per non sgarrare con le raccomandazioni di pulizia di scrittura del PEP8 (guarda qui http://pep8online.com/ )
a casa invece utilizzo o l'IDLE o PyCharm (molto utile per l'autocompletion)




ultimo consiglio per te che sei prof di mate: se vai su youtube troverai delle lezioni del politecnico di milano dove mostrano come si usa python in ambito scientifico, esempio https://www.youtube.com/watch?v=Ky_O-CzPaJ4&t=1730s

ovviamente non ti spiegano tutto, ma fanno degli esempi per far capire le potenzialità di python e dei suoi moduli

--- Ultima modifica di stix77 in data 2017-12-23 11:31:19 ---
Certo che da auto didatta di strada ne hai fatta sei molto piu avanti di me .... io sono agli albori ma la mia storia con python comincia circa tre anni fa che tra una supplenza e un altra cominciai a studiare la passione era tanta al punto che mi sono iscritto alla facolta di informatica di Genova ma pur facendo tutto il primo anno non mi sono trovato bene poca tutela dello studente lavoratore e questo cominciava a essere un problema per me che vivendo da solo dovevo mettere assieme vita lavoro e gestione della casa non riuscivo a stare al passo con i compiti per il fine settimana le consegne e tutto il resto. Li si studia C++ ma a me come sintassi e stile non mi faveva impazzire ho messo in stand by unige per motivi lavorativi e lo scorso anno mi sono procurato un po di pubblicazioni varie su python e quindi poi sono passato allo studio e solo negli ultimi due mesi ho potuto davvero mettermi sotto e tentare. Amo questo linguaggio ricorda a suo modo i vecchi tempi i print gli input e tutto il resto. Grazie per i tuoi link li consulterò sicuramente.
Buona serata Salvatore




python ha la particolarità di far diventare produttivi sin da subito, vedrai che in poco tempo farai già delle belle cose!!



buona serata
Della serie: i programmi devono essere fatti bene, non pressapoco.
(Codice per Python 3)

Rombo di * (metodo 1)
l = int(input("Lato del rombo di * (< 62): ")) - 1
d = l * 2 + 1
for y in range(d) :
    s = l - y if y <= l else y - l
    print(" " * s + "*" * (d - s * 2))
Rombo di * (metodo 2)
l = int(input("Lato del rombo di * (< 62): ")) - 1
d = l * 2 + 1
for y in range(d) :
    for x in range(d) :
        print(end = " " if y + x > l * 3 or y + x < l or y - x > l or x - y > l else "*")
    print()
Rombo di Rombi (metodo 1)
l = int(input("Lato del rombo di rombi di * (< 7): ")) - 1
d = l * 2 + 1
for k in range(d) :
    for w in range(d) :
        for x in range(d) :
            y = l - k if k <= l else k - l
            s = " " if y > x or d - y <= x else "*"
            z = l - w if w <= l else w - l
            print(" " * z + s * (d - z * 2), end = " " * z)
        print()
Rombo di Rombi (metodo 2)
l = int(input("Lato del rombo di rombi di * (< 7): ")) - 1
d = l * 2 + 1
for w in range(d):
    for x in range(d) :
        for y in range(d) :
            s = " " if w + y > l * 3 or w + y < l or w - y > l or y - w > l else "*"
            for z in range(d) :
                print(end = " " if x + z > l * 3 or x + z < l or x - z > l or z - x > l else s)               
        print()


--- Ultima modifica di Ὅμηρος 蟒蛇 in data 2018-03-03 12:16:22 ---
Li proverò uno ad uno
Ti farò sapere

Grazie della condivisione

Salvatore
li ho provati tutti
funzionano alla grande
complimenti
S!



Pagina: 1 2 Avanti



Esegui il login per scrivere una risposta.