[Python] quesito n0000000b
  • In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Pag 1 di 2 12 UltimoUltimo
Visualizzazione risultati da 1 a 15 di 21

Discussione: [Python] quesito n0000000b

Cambio titolo
  1. #1
    Oh my iPod! L'avatar di er patata
    Registrato il
    11-02
    Località
    Bari Downtown
    Messaggi
    13.118

    [Python] quesito n0000000b

    oggi ho cominciato a imparare il Python, un buon linguaggio per iniziare...in 10 minuti sono arrivato alle strutture di controllo while e così per prova ho creato un programmino che mi chieda la password, e se non è quella esatta, continua a chiederla all'infinito

    Codice:
    #password - esercizio 3
    pwd = "nopass"
    print "Welcome in the MainFrame"
    while pwd != "h4x0r":
        pwd = raw_input("Enter Password: ")
    print "Access Granted"
    raw_input("Press Enter to proceed")
    però vorrei applicare qualche modifica...ad esempio appena aperto il programma mi deve mostrare Enter Password:, ma quando sbaglio password mi deve mostrare una cosa del tipo Wrong Password! Retype Password:...però da niubbone non so proprio come fare...probabilmente ci devo ficcare qualche if/else/elif (di cui non ho le idee molto chiare), o sbaglio? aiutatemi voi...

    A volte credo di essere fin troppo nerd. Naa, never too much.
    Vuoi personalizzare l'aspetto del forum di GamesRadar? Clicca qui!
    Consortium.ru 2004 3D Motion Demo, shocking graphics. (QuickTime 60MB)

    Vuoi guadagnare soldi velocemente? Clicca qui!

  2. #2
    Oh my iPod! L'avatar di er patata
    Registrato il
    11-02
    Località
    Bari Downtown
    Messaggi
    13.118
    altro problemino....mi sto esercitando sulla funzione if
    e ho sempre fatto un programmino che chiede la password, però in questo se la password viene sbagliata 3 volte il programma stampa "niubbo" e dovrebbe terminare il programma, invece se òa password viene azzeccata il programma recita "Bravo" e chiude...tutto a posto ma una volta raggiunte le 3 possibilità il programma stampa "niubbo" ma continua a rifare la richiesta...non chiude come vorrei, anche se ho dato l'istruzione quit...invece se la password è azzeccata il programma chiude come dovere...

    Codice:
    cont = 0
    pwd = "pass"
    while pwd != "haxor":
        pwd = raw_input("Inserisci password: ")
        cont = cont + 1
        if cont == 3:
            print "niubbo"
            quit
    print "Bravo"

    A volte credo di essere fin troppo nerd. Naa, never too much.
    Vuoi personalizzare l'aspetto del forum di GamesRadar? Clicca qui!
    Consortium.ru 2004 3D Motion Demo, shocking graphics. (QuickTime 60MB)

    Vuoi guadagnare soldi velocemente? Clicca qui!

  3. #3
    Utente
    Registrato il
    10-02
    Messaggi
    2.367
    Codice:
    #!/usr/bin/python
    #password - esercizio 3
    
    pwd = "nopass"
    passw = "h4x0r"
    
    print "Welcome in the MainFrame"
    while pwd != passw:
    	pwd = raw_input("Enter Password: ")
    	if passw == pwd :
    		break
    
    	print "Wrong Password. Retype\n"
    
    
    print "Access Granted"
    raw_input("Press Enter to proceed")
    Nel secondo caso non so se vui troncare il prog o vuoi semplicemente proseguire. Se vuoi troncarlo:

    Codice:
    import sys 
    from sys import *
    cont = 0
    pwd = "pass"
    while pwd != "haxor":
        pwd = raw_input("Inserisci password: ")
        cont = cont + 1
        if cont == 3:
            exit("niubbo");
    
    print "Bravo"

  4. #4
    Utente
    Registrato il
    10-02
    Messaggi
    2.367
    Cmq l'istruzione quit dove l'hai presa ???
    Non è una parola chiave.

  5. #5
    Oh my iPod! L'avatar di er patata
    Registrato il
    11-02
    Località
    Bari Downtown
    Messaggi
    13.118
    Citazione Yubei
    Cmq l'istruzione quit dove l'hai presa ???
    Non è una parola chiave.
    buh, non sapevo quale fosse l'istruzione per terminare e ho scritto quit in console e in effetti terminava....

    cmq grazie mille!
    ora eccomi mentre cerco di esercitarmi sulle definizioni delle funzioni--->

    frustrazione rulez

    A volte credo di essere fin troppo nerd. Naa, never too much.
    Vuoi personalizzare l'aspetto del forum di GamesRadar? Clicca qui!
    Consortium.ru 2004 3D Motion Demo, shocking graphics. (QuickTime 60MB)

    Vuoi guadagnare soldi velocemente? Clicca qui!

  6. #6
    Oh my iPod! L'avatar di er patata
    Registrato il
    11-02
    Località
    Bari Downtown
    Messaggi
    13.118
    senti non è che mi spieghi un attimo il tuo codice del primo programma?

    A volte credo di essere fin troppo nerd. Naa, never too much.
    Vuoi personalizzare l'aspetto del forum di GamesRadar? Clicca qui!
    Consortium.ru 2004 3D Motion Demo, shocking graphics. (QuickTime 60MB)

    Vuoi guadagnare soldi velocemente? Clicca qui!

  7. #7
    Utente
    Registrato il
    10-02
    Messaggi
    2.367
    Citazione er patata
    senti non è che mi spieghi un attimo il tuo codice del primo programma?

    E' molto semplice.
    [chiarimento per chi si avvicina per la prima volta al linguaggio]
    Col python bisogna stare attenti a come si indenta il codice, cioè dove e come metti gli spazi.
    Per esempio quì c'è un while.Sotto ci sono delle istruzioni che sono tabulate a più destra del while, quindi fanno parte dello stesso whilem,cioè vengono ripetute finchè il cilo finisce. Se invece fossere "incolonnate" nella stessa colonna del while sarebbero istruzioni separate, che verrebbero eseguite dopo il while.[/]

    Ritorno alla spiegazione.

    Codice:
    #!/usr/bin/python
    #password - esercizio 3
    
    pwd = "nopass"
    passw = "h4x0r"   #semplicemente assegno ad una variabile la pas, per comodità
    
    print "Welcome in the MainFrame"
    while pwd != passw:     #inizio del while
    	pwd = raw_input("Enter Password: ")
    	if passw == pwd :  #se pwd è uguale alla passwod allora esco dal while 
    		break             #il break serve per uscire dai cicli iterativi tipo while o for
     
    	print "Wrong Password. Retype\n"#se invece non è uguale (altrimenti sarebbe già uscito prima ) stampo l'errore
    
    print "Access Granted" #ora siamo fuori da while
    raw_input("Press Enter to proceed")

  8. #8
    Utente
    Registrato il
    10-02
    Messaggi
    2.367
    Ah , ricordate che la pratica è molto più importante della teoria.
    Quindi prima di proseguire con lo studio continua a fare programmini tipo quello finchè non ti fanno male le dita. E' importatissimo.

  9. #9
    Oh my iPod! L'avatar di er patata
    Registrato il
    11-02
    Località
    Bari Downtown
    Messaggi
    13.118
    grazie ancora...veramente mi sei di grande aiuto...in effetti la cosa principalmente non chiara era il break, ma sono stato stupido io, infatti mi sono documentato e ho capito che serve ad uscire da un ciclo...

    comunque di programmini stupidi ne sto facendo molti, per allenarmi sulle basi...per esempio una volta imparata la funzione break ho creato questo programmino che si serve proprio di essa

    Codice:
    print "Questo e' un esercizio per l'istruzione break\n"
    nom = "nnn"
    rnom = "paul"
    
    while nom != rnom:
        nom = raw_input("Come mi chiamo? ")
        if nom == rnom:
           break
    
        print "No! Non mi chiamo",nom,".Riprova\n"
    
    print "Si esatto! Mi chiamo Paul!"

    poi riguardo le funzioni ne ho creato un altro con una interfaccia di scelta che fa dei semplici calcoli e permette di uscire dal programma

    Codice:
    #calcolo area di rettangolo e quadrato con menu e input - esercizio 7
    def opzioni():
        print "      Opzioni:"
        print 
        print " R - Ripeti Opzioni"
        print " T - Area Rettangolo"
        print " Q - Area Quadrato"
        print " E - Esci dal programma"
        print 
    
    def area_rettangolo(b,h):
        return b*h
    
    def area_quadrato(l):
        return l*l
    
    choice = "r"
    while choice != "e":
        if choice == "t":
            ba = input("Base: ")
            ha = input("Altezza: ")
            print "Area: ",area_rettangolo(ba,ha)
        elif choice == "q":
            la = input("Lato: ")
            print "Area: ",area_quadrato(la)
        elif choice != "e":
            opzioni()
        choice = raw_input("   Scegli l'opzione: ")
    riguardo la tabulazione, me ne ero accorto... ed è un grosso vantaggio, perchè così i niubbi come me capiscono la gerarchia di un programma...

    A volte credo di essere fin troppo nerd. Naa, never too much.
    Vuoi personalizzare l'aspetto del forum di GamesRadar? Clicca qui!
    Consortium.ru 2004 3D Motion Demo, shocking graphics. (QuickTime 60MB)

    Vuoi guadagnare soldi velocemente? Clicca qui!

  10. #10
    Oh my iPod! L'avatar di er patata
    Registrato il
    11-02
    Località
    Bari Downtown
    Messaggi
    13.118
    altra domanda (madonna che n00b che è questo, direte voi...)

    ho questo sorgente

    Codice:
    fatt = input("Inserisci il numero da fattorializzare: ")
    def factorial(n):
        if n == 1:
            return 1
        return n*factorial(n-1)
    print "Ecco il fattoriale: ",factorial(fatt)
    che serve a calcolare il fattoriale di un numero che viene dato in input
    (ad esempio il fattoriale di 6 è 6x5x4x3x2x1=720)

    ho trovato questo sorgente su internet, in pratica esso funziona così: viene dato un numero in input, poi esso viene sottratto di uno e viene moltiplicato per l'input stesso, e si va avanti così fino a che il numero non arriva a 1 e viene restituito direttamente 1.

    io però, che voglio sapere come funziona ogni cosa, non capisco secondo quale criterio/funzione il programma ripete l'operazione descritta in nel _def factorial(n)_ fino ad arrivare a 1...

    A volte credo di essere fin troppo nerd. Naa, never too much.
    Vuoi personalizzare l'aspetto del forum di GamesRadar? Clicca qui!
    Consortium.ru 2004 3D Motion Demo, shocking graphics. (QuickTime 60MB)

    Vuoi guadagnare soldi velocemente? Clicca qui!

  11. #11
    Fottuto Thrasher L'avatar di Dj Luca T
    Registrato il
    01-03
    Località
    Milano
    Messaggi
    7.299
    Citazione er patata
    altra domanda (madonna che n00b che è questo, direte voi...)

    ho questo sorgente

    Codice:
    fatt = input("Inserisci il numero da fattorializzare: ")
    def factorial(n):
        if n == 1:
            return 1
        return n*factorial(n-1)
    print "Ecco il fattoriale: ",factorial(fatt)
    che serve a calcolare il fattoriale di un numero che viene dato in input
    (ad esempio il fattoriale di 6 è 6x5x4x3x2x1=720)

    ho trovato questo sorgente su <a href="http://www.ntsearch.com/search.php?q=internet&v=56">internet</a>, in pratica esso funziona così: viene dato un numero in input, poi esso viene sottratto di uno e viene moltiplicato per l'input stesso, e si va avanti così fino a che il numero non arriva a 1 e viene restituito direttamente 1.

    io però, che voglio sapere come funziona ogni cosa, non capisco secondo quale criterio/funzione il programma ripete l'operazione descritta in nel _def factorial(n)_ fino ad arrivare a 1...
    Questa tecnica di programmazione si dice ricorsiva, perchè all'interno della funzione richiami la funzione stessa, passando di volta in volta un parametro differente. Nel caso specifico, il caso del fattoriale è il tipico esempio di semplice programmazione ricorsiva: il fattoriale viene calcolato moltiplicato il parametro della funzione,n, per il valore restituito dalla funzione stessa qualora venga passato come parametro n-1. In pratica funziona così: il programma continua a chiamare la funzione fino a quando il parametro n vale 1; arrivato a questo punto restituisce 1 e inizia a riprendere in pila tutte le chiamate precedenti per calcolare il valore del fattoriale.

    Esempio: calcoliamo il fattoriale di 5

    I) 5*fatt(4)
    II) 4*fatt(3)
    III)3*fatt(2)
    IV)2*fatt(1)

    Inizia a considerare il passo IV: la chiamata della funzione fatt(1) restituisce 1 e lo moltiplichiamo per 2, ottenendo chiaramente 2. Dopodichè passiamo al punto III: fatt(2) lo abbiamo ottenuto al punto IV e lo moltiplichiamo per 3...quindi 2*3=6. Procedendo così otteniamo infine il valore desiderato. Eccoti i passaggi.

    IV)2*fatt(1)=2*1=2
    III)3*fatt(2)=3*2=6
    II) 4*fatt(3)=4*6=24
    I) 5*fatt(4)=5*24=120

    Spero di esserti stato d'aiuto.

  12. #12
    Oh my iPod! L'avatar di er patata
    Registrato il
    11-02
    Località
    Bari Downtown
    Messaggi
    13.118
    decisamente criptico per le mie conoscenze, per carità sei stato chiaro ma sai programmo in Python da stamattina e per capirle le cose ci devo un pò sbattere la testa su...

    A volte credo di essere fin troppo nerd. Naa, never too much.
    Vuoi personalizzare l'aspetto del forum di GamesRadar? Clicca qui!
    Consortium.ru 2004 3D Motion Demo, shocking graphics. (QuickTime 60MB)

    Vuoi guadagnare soldi velocemente? Clicca qui!

  13. #13
    Oh my iPod! L'avatar di er patata
    Registrato il
    11-02
    Località
    Bari Downtown
    Messaggi
    13.118
    mannaggia certo che non riuscire a fare qualcosa dà tanta frustrazione e pochi stimoli...non sono fatto per la programmazione...è già molto se riesco a usare un programma....che noob

    A volte credo di essere fin troppo nerd. Naa, never too much.
    Vuoi personalizzare l'aspetto del forum di GamesRadar? Clicca qui!
    Consortium.ru 2004 3D Motion Demo, shocking graphics. (QuickTime 60MB)

    Vuoi guadagnare soldi velocemente? Clicca qui!

  14. #14
    Pervert L'avatar di tricky
    Registrato il
    11-03
    Località
    EGypt
    Messaggi
    1.643
    ho una domanda su python.
    ma e possibile creare dei programmi che abbiano una loro interface con con VB?
    Niente link a siti hentai nella firma.

  15. #15
    Oh my iPod! L'avatar di er patata
    Registrato il
    11-02
    Località
    Bari Downtown
    Messaggi
    13.118
    Citazione tricky
    ho una domanda su python.
    ma e possibile creare dei programmi che abbiano una loro interface con con VB?
    cioè con una GUI?
    si il modo c'è...
    http://www.wxpython.org/

    A volte credo di essere fin troppo nerd. Naa, never too much.
    Vuoi personalizzare l'aspetto del forum di GamesRadar? Clicca qui!
    Consortium.ru 2004 3D Motion Demo, shocking graphics. (QuickTime 60MB)

    Vuoi guadagnare soldi velocemente? Clicca qui!

Pag 1 di 2 12 UltimoUltimo

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •