2013-10-07 89 views
-5
# generate a random number between 1 and 99 sgenrand.randint(1,99) # your code goes here 
print("Enter coins that add up to 81 cents, one per line.") 
#promp the user to start entering coin values that add up to 81 
coin = (sgenrand.randint(1,99)) 
number1 = ("Enter first coin: ") 
sum = 0 
number1 = eval(input("Enter first coin: ")) 
while number1 != coin: 
    if number1 != coin: 
    number1 = eval(input("Enter next coin: ")) 

即時卡在這while循環。我想讓用戶可以在沒有答案的情況下直接輸入並跳出循環。在他爆發後,計算他之前添加的數字總和,如果總和不是81.告訴用戶他沒有達到目標值,告訴他他到達了什麼價值並詢問他是否想重新開始!Python3.2迴圈

+0

使用'的eval(輸入())'被認爲是*非常*危險的,是壞的技術。如果這是本課教授提出的,或許這不是你應該從中學習python的人。 – SethMMorton

+0

eval?好的,在這裏放慢一點。你的邏輯是......困惑。 'if number1!= coin'根據定義必須是真實的,在'真幣1'=硬幣'的情況下,你有流量控制。深呼吸一下,搜索網頁和stackoverflow,然後再試一次。 –

+0

我打算就如何完成這項工作發表一個答案,但是當我真正開始研究代碼時,我意識到我不知道發生了什麼。 「randint」調用的要點是什麼?請編輯該問題以更清楚地說明發生了什麼。 – SethMMorton

回答

0

我喜歡做功課,我真的:

import random as sgenrand 

def oneRound(): 
    target = sgenrand.randint(1, 99) 
    print('Enter coins that add up to {} cents, one per line.'.format(target)) 
    total = int(input('Enter first coin: ')) 
    while True: 
     s = input('Enter next coin: ') 
     if not s: break 
     total += int(s) 
    if total == target: 
     print('Well done.') 
     return True 
    print('You reached {}.'.format(total)) 
    return input('Do you want to start over? [y/*] ') != 'y' 

while not oneRound(): pass 
+1

哦,所以81是一隻紅鯡魚!它應該是從'randint'返回的數字 – SethMMorton