【发布时间】:2013-10-13 12:02:12
【问题描述】:
# 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。告诉用户他没有达到目标值,告诉他他达到了什么值并询问他是否要重新开始!
【问题讨论】:
-
使用
eval(input())被认为是非常危险并且是不好的技术。如果这是本课程的教授建议的,也许这不是你应该向谁学习 python。 -
评价?好的,这里慢一点。你的逻辑是......混乱。您有流控制,其中
while number1 != coin在真实条件下紧跟if number1 != coin,根据定义,if number1 != coin必须为真。喘口气,在网上搜索一下 stackoverflow,然后再试一次。 -
我打算发布一个关于如何完成这项工作的答案,但是当我开始真正查看代码时,我意识到我不知道发生了什么。
randint电话的意义何在?请编辑问题以更清楚地说明发生了什么。 -
@SethMorton 这是课程教授的建议,那么在这种情况下我应该使用什么功能? randint 是生成 1,99 之间的随机数
-
如果你想要一个
int,你应该使用int函数。你应该问你教授为什么eval被认为是危险的。如果他们不知道,我怀疑你会在那堂课中学习真正的 Python 编程。
标签: python loops while-loop