2013-10-07 3 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: ")) 

im coincé dans cette boucle while. Je veux l'avoir que l'utilisateur puisse frapper entrer sans une réponse et sort de la boucle. après son éclatement, la somme des nombres qu'il a précédemment ajoutés est calculée, et si la somme n'est pas 81. indique à l'utilisateur qu'il n'a pas atteint la valeur cible, lui indique la valeur qu'il a atteinte et lui demande s'il veut recommencer!Python3.2 boucles

+0

Utiliser 'eval (entrée())' est considéré * très * dangereux et est une mauvaise technique. Si cela a été suggéré par le professeur de ce cours, peut-être que ce n'est pas de qui vous devriez apprendre Python. – SethMMorton

+0

eval? OK, ralentis un peu ici. Votre logique est ... confuse. Vous avez un contrôle de flux où 'while number1! = Coin' immédiatement suivi dans la condition vraie par' if number1! = Coin' qui, par définition, doit être vrai. Reprenez votre souffle, effectuez une recherche sur le Web et un peu de stackoverflow, puis réessayez. –

+0

J'allais poster une réponse pour savoir comment faire ce travail, mais quand j'ai commencé à vraiment regarder le code, j'ai réalisé que je n'avais aucune idée de ce qui se passait. Quel est le but de l'appel 'randint'? Veuillez modifier la question pour clarifier ce qui se passe. – SethMMorton

Répondre

0

J'aime faire ses devoirs, je fais vraiment:

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

Oh, donc le 81 était un hareng rouge! C'était censé être le nombre renvoyé par le 'randint' – SethMMorton