Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    157

    [PYTHON] Convertitore binario a decimale

    ciao a tutti
    mi sto studiando il python ed ho intenzione di crearmi uno script per la conversione da binario a decimale. inizialmente avevo pensato di far inserire attraverso un semplice input() il numero in binario e successivamente contare attraverso len() la lunghezza per poter estrarre i numeri per la conversione ma poi ho optato per un'altra soluzione (visto anche che se immagazzinavo la variabile con input() non me la faceva contare con len() ) e cioè:
    creo un array vuoto (a);
    chiedo il numero di valori che si desidera inserire e lo salvo nella variabile n;
    trasformo questo numero in una lista di quei numeri con n = range(1,n+1);
    creo un ciclo che mi chieda i numeri per n volte che aggiunga ciò che inserisco in a.
    il mio problema sta qui... in pratica io metterei:
    for i in a: a.append(input('Inserisci il ', i, 'numero'))
    però qui mi da errore e non saprei proprio come mettere anche perchè ho provato a mettere su due linee diverse prima variabile = input(ecc) e dopo a.append(variabile) ma non fa! cosa sapete dirmi a riguardo?

    poi comunque per spiegarvi ugualmente come vorrei finire avrei intenzione di reversare l'array con a.reverse e poi estrarre con un altro ciclo a[ciclo come prima] in modo di potergli fare le operazioni necessarie alla trasformazione in binario... in pratica, alla fine, la mia domanda sarebbe:
    come mettere più istruzioni in un ciclo for?

    grazie e scusate per la lunghezza!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    157
    per essere più chiaro vi metto il codice che ho scritto...
    codice:
    a = []
    n = input('Inserisci il numero di valori desiderati ')
    n = range(1,n+1)
    # codice "incriminato"
    for i in n: a.append(input('Inserisci il ', i, 'numero'))
    # oppure altro codice possibile
    for i in n: variabile = input('Inserisci il ', i, 'numero')
    a.append(variabile)
    # ma non vanno nessuno dei due!

  3. #3
    Al di là del fatto che la domanda è incasinata non serve scrivere "non va il codice", "da errore", "codice incriminato" o "non va nessuno dei due".
    Specifica (e incolla) il messaggio di errore e cerca di spiegare meglio il tuo problema.

    PS - Quelli che tu chiami 'array' sono in realtà 'liste'.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    157
    bè, il problema l'ho risolto... in pratica l'errore era che non mettevo lo spazio per identificare che faceva parte del ciclo... comunque adesso sto facendo il programma che serve per fare il contrario cioè convertire da decimale a binario... ecco il sorgente:
    codice:
    num = input('Inserire un numero')
    bin = []
    while num==0:
        var = num % 2
        bin.append(var)
        num = num / 2
    bin.reverse()
    print 'Il corrispondete binario è ', bin
    non c'è alcun tipo di errore ma come risultato mi viene restituito la lista vuota, come se il .append nel ciclo while non fosse interpretato... sapete dirmi come mai??

  5. #5
    Perchè tutto quello che c'è sotto il ciclo while viene eseguito solo se il valore digitato da tastiera è uguale a 0.
    Inoltre non vi è alcun "break" all'interno del ciclo while, che in ogni caso continuerebbe all'infinito.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    157
    cioè? non ho capito molto bene... in pratica io inserisco da tastiera un numero, lui immagazzina il resto della divisione per due nella lista e poi divide il numero per due, questo finchè non avviene 0 / 2 e lui smette...
    la mia intenzione era questa ma mi sa che ho sicuramente sbagliato qualcosa
    come potrei mettere se volessi fare come ho scritto sopra?

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    157
    ho risolto!! avevo male interpretato il ciclo while che in pratica esegue l'istruzione per tutto il tempo che la condizione è vera e non che esegue l'istruzione fino a che la condizione non diventa vera!
    grazie comunque per l'aiuto dato!

  8. #8
    cioè? non ho capito molto bene
    Sai come funziona il while?
    Continua ad eseguire tutto quello che c'è sotto finchè la condizione è vera. Se è falsa non esegue nulla.
    Se tu scrivi:

    codice:
    while num == 0:
        ...
    tutto quello sotto a while viene eseguito solo se il valore che hai inserito da tastiera (salvato all'interno della variabile 'num') è uguale a 0.
    Se gia metti 1 non viene eseguito niente.
    Capito?
    Cmq non vorrei dire, ma questi sono proprio i rudimenti. Dovresti prima leggere un tutorial e poi chiedere aiuto.

    come potrei mettere se volessi fare come ho scritto sopra?
    Non saprei, non capisco bene quello che scrivi...
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.