2016-04-02 33 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 

上面是我的代碼,用於我的幻數猜測程序。我的問題是如何插入一個循環計數器。我做了一些關於循環計數器集成的研究,很多人都說過使用枚舉函數,問題是我不知道如何使用這樣的函數,如果它適合我​​的情況。通常情況下,我的理由是將一個計數器變量聲明爲0,然後使用+ =函數向該變量加1,但在我的情況下,這不起作用,因爲我不能在def magicnumber(guess)行之前聲明該變量,並且如果我要聲明它會在返回之後回到0。因此,我正在詢問如何添加循環計數,因爲我只希望用戶有5次猜測。如何在我的定義中插入循環計數器

感謝

+0

'回報magicnumber'將要返回函數本身。我不認爲你想這樣做 –

回答

-2

嘗試使用回答here:這就是靜態變量是(除其他事項外)。 這將導致下面的代碼

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

爲了將來的參考,爲什麼這篇文章被拒絕投票?這是迄今爲止滿足我需求的最佳答案,那麼爲什麼要倒票呢?雖然 –

+0

由於我誤解了你的問題併發布了一個答案,因此降價是存在的。這個答案顯然是錯誤的,直到我能糾正它,我纔得到了這些讚譽。 –

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

另一種方法:

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