Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3.2循环_Python_Loops_While Loop - Fatal编程技术网

Python3.2循环

Python3.2循环,python,loops,while-loop,Python,Loops,While Loop,我被困在这个while循环中。我想让它,用户可以点击进入没有答案,打破了循环。在他爆发之后,计算他之前添加的数字的总和,如果总和不是81。告诉用户他没有达到目标值,告诉他达到了什么值,并询问他是否想重新开始 我喜欢做家庭作业,我真的很喜欢: # generate a random number between 1 and 99 sgenrand.randint(1,99) # your code goes here print("Enter coins that add up to 81 ce

我被困在这个while循环中。我想让它,用户可以点击进入没有答案,打破了循环。在他爆发之后,计算他之前添加的数字的总和,如果总和不是81。告诉用户他没有达到目标值,告诉他达到了什么值,并询问他是否想重新开始

我喜欢做家庭作业,我真的很喜欢:

# 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: "))

使用
eval(input())
被认为是非常危险的,是一种糟糕的技术。如果这是本课程的教授建议的,那么也许这不是您应该向谁学习python.eval?好的,这里慢一点。你的逻辑是。。。困惑的您拥有流控制,其中
的数字为1!=硬币
在真实状态下紧随其后的是
(如果数字为1)=硬币
根据定义,必须是正确的。深吸一口气,搜索一下网页,然后再试一次。我本来打算发布一个如何实现这一点的答案,但当我开始认真研究代码时,我意识到我不知道发生了什么。
randint
调用的意义是什么?请编辑这个问题,让它更清楚地说明发生了什么。@SethMMorton这是课程教授建议的,那么在这种情况下我应该使用什么函数呢?randint是生成一个介于1,99之间的随机数。如果需要
int
,则应使用
int
函数。你应该问你的教授为什么
eval
被认为是危险的。如果他们不知道的话,我怀疑你会在那门课上学到真正的python编程。哦,所以81是一条红鲱鱼!它应该是从
randint
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