[Python] Il programma si blocca senza motivo

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
Giulio2797
Prode Principiante
Messaggi: 4
Iscrizione: sabato 24 dicembre 2011, 10:32
Contatti:

[Python] Il programma si blocca senza motivo

Messaggio da Giulio2797 »

Salve a tutti, sono in prima liceo e da buon lazzarone per semplificarmi la vita con dei calcoli (che sono veramente banali, ma volevo esercitarmi in programmazione) ho fatto questo programmino, però spesso si blocca senza motivo, qualcuno sa dirmi il perchè? (Se può servire serve per risolvere il trinomio notevole nelle scomposizione fra polinomi)
import random
z=0
while z == 0:
    a=input("Primo numero")
    b=input("Secondo numero")
    c=0
    d=0
    e=0
    f=0
    print "Sto calcolando"
    while e+f != 2:
        if c*d != a:
            c=random.randint(-20, 20)
            d=random.randint(-20, 20)
            e=0
            f=0
            print c
            print d
            if c+d != b:
                c=random.randint(-20, 20)
                d=random.randint(-20, 20)
                e=0
                f=0
                print c
                print d
            else:
                f=0
                e=0
        else:
            if c+d != b:
                e=0
                f=0
            elif c+d==b:
                f=1
                e=1


    print "---------------------------"
    print c
    print d
    print "---------------------------"
    print
    print
    gh=raw_input("Digita stop per uscire o premi invio per continuare")
    if gh=="Stop" or "stop":
        break
    else:
        print
Grazie in anticipo  (good)
Sito Web: www.crakkiamo.altervista.org
OS: Ubuntu 11.10, Xubuntu 11.10, Windows 7 Ultimate, Windows 8 (built 8102)
Bakuriu
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1156
Iscrizione: venerdì 23 ottobre 2009, 23:43
Desktop: KDE4
Distribuzione: Kubuntu 12.04 LTS - x86_64

Re: [Python] Il programma si blocca senza motivo

Messaggio da Bakuriu »

A parte che il codice mi sembra abbastanza orrendo...
sei convinto di questa riga:

Codice: Seleziona tutto

if gh == "Stop" or "stop":
?

Io per niente...

Codice: Seleziona tutto

>>> a = None
>>> a == "Stop" or "stop"
'stop'
>>> if "stop":
...     print "La stringa 'stop' è vera"
... else:
...     print 'No, è falsa.'
... 
La stringa 'stop' è vera
Inoltre guarda qui per risolvere:

Codice: Seleziona tutto

>>> dir('stop')
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust',

'lower',   #<----

'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
Avatar utente
jaro
Prode Principiante
Messaggi: 33
Iscrizione: venerdì 11 febbraio 2011, 23:21

Re: [Python] Il programma si blocca senza motivo

Messaggio da jaro »

Giulio2797 ha scritto: Salve a tutti, sono in prima liceo e da buon lazzarone per semplificarmi la vita con dei calcoli (che sono veramente banali, ma volevo esercitarmi in programmazione) ho fatto questo programmino, però spesso si blocca senza motivo, qualcuno sa dirmi il perchè? (Se può servire serve per risolvere il trinomio notevole nelle scomposizione fra polinomi)
Ciao. Si blocca quando c*d==a e c+d!=b. A quel punto i valori c e d smettono di cambiare, e il programma entra in un loop infinito che tra l'altro non produce alcun output. Se dopo la riga 30:

Codice: Seleziona tutto

            if c+d != b:
provi a inserire una riga tipo:

Codice: Seleziona tutto

                print "bloccato",c,d
avrai la prova che è come dico io.
Ultima modifica di jaro il lunedì 9 aprile 2012, 21:21, modificato 1 volta in totale.
Avatar utente
Giulio2797
Prode Principiante
Messaggi: 4
Iscrizione: sabato 24 dicembre 2011, 10:32
Contatti:

Re: [Python] Il programma si blocca senza motivo

Messaggio da Giulio2797 »

grazie Jaro mi hai fatto capire l'errore, mi ero dimenticato di far cambiare i valori anche li.
Per Bakuriu: il codice lo so che scritto così è orrendo ma tieni presente che ho 14 anni e non ne so molto di programmazione, comunque grazie per la risposta.
Sito Web: www.crakkiamo.altervista.org
OS: Ubuntu 11.10, Xubuntu 11.10, Windows 7 Ultimate, Windows 8 (built 8102)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: steff e 6 ospiti