2016-04-02 15 views
0
number = 7 
def magicnumber (guess): 
    if number<guess: 
     print ("too high") 
    elif number>guess: 
     print ("too low") 
    elif number == guess: 
     print ("well done") 
     return magicnumber 

Oben ist mein Code für meine magische Zahl, die Programm erraten. Meine Frage ist, wie man einen Schleifenzähler einfügt. Ich habe etwas über die Integration von Schleifenzählern geforscht, und viele Leute haben gesagt, dass sie die Enumerate-Funktion benutzen sollen. Problem ist, dass ich keine Ahnung habe, wie man eine solche Funktion benutzt und ob es in meinem Fall passt. Normalerweise erkläre ich eine Zählervariable als 0 und benutze dann die Funktion + =, um 1 zu dieser Variablen hinzuzufügen, aber in meinem Fall funktioniert das nicht, da ich die Variable nicht vor der Zeile def magicnumber (rate) deklarieren kann und deklariere es würde der Zähler nach der Rückkehr wieder auf 0 zurückgesetzt werden. Ich frage deshalb, wie man eine Schleifenzählung hinzufügt, da ich nur möchte, dass der Benutzer 5 Vermutungen hat.Wie man Schleifezähler in meine Definition einfügt

Dank

+0

'return magicnumber' wird die Funktion selbst zurückzukehren. Ich glaube nicht, dass Sie das tun wollen –

Antwort

-2

Versuchen Sie, die Antwort von here mit: Das ist, was statische Variablen für (unter anderem) sind. Die

im folgenden Code führen würde
number = 7 
def magicnumber (guess): 
    magicnumber.counter += 1 
    if(magicnumber.counter <= 5): 
     if number<guess: 
      print ("too high") 
     elif number>guess: 
      print ("too low") 
     elif number == guess: 
      print ("well done") 
      magicnumber.counter = 0#If you want to reset the counter 
     return 
    else: 
     print "Out of trials!" 
     return 

magicnumber.counter = 0 
+0

Für zukünftige Referenz, warum wurde dieser Beitrag nach unten abgestimmt? Es war bei weitem die beste Antwort, die meine Bedürfnisse erfüllt, also warum die Down-Stimmen? Danke, obwohl –

+0

Die Downvotes sind da, weil ich Ihre Frage missverstanden und eine Antwort geschrieben habe. Diese Antwort war eindeutig falsch, und bis ich es korrigieren konnte, bekam ich diese Downvotes. –

0
counter = 5 
while counter > 0: 
    guess = int(raw_input()) 
    if magicnumber(guess) == number: 
     break 
    counter -= 1 

Ein anderer Ansatz:

for i in range(5): 
    guess = int(raw_input()) 
    if magicnumber(guess) == number: 
     break 
Verwandte Themen