[英]How I can solve the read too much input problem in Python
这是我的问题:
你对传统的“我在想什么数字?”进行了新的改动。 帮助您的堂兄弟学习他们的 7 乘法表的游戏。 编写一个游戏,让用户猜出你正在想的数字(对于这个游戏,数字永远是 42。)
允许用户进行 10 次猜测,并出现“错误”。 如果他们猜出的数字不是 7 的倍数,则用户最多只能犯一个错误。 否则他们输了比赛,当比赛结束时。 你应该总是打印出来那很有趣。
这是一个例子:
Guess a multiple of 7: 14
Nope!
Guess a multiple of 7: 32
Mistake! That number isn't a multiple of 7.
Guess a multiple of 7: 28
Nope!
Guess a multiple of 7: 86
Another mistake. Too bad.
That was fun.
这是另一个例子:
Guess a multiple of 7: 7
Nope!
Guess a multiple of 7: 14
Nope!
Guess a multiple of 7: 126
Nope!
Guess a multiple of 7: 133
Nope!
Guess a multiple of 7: 70
Nope!
Guess a multiple of 7: 77
Nope!
Guess a multiple of 7: 63
Nope!
Guess a multiple of 7: 35
Nope!
Guess a multiple of 7: 126
Nope!
Guess a multiple of 7: 77
Nope!
No guesses left!
That was fun.
如果用户正确输入 42,您的程序应该打印出 You won,而不是 Nope.:,然后不再要求进行任何猜测。 例如:
Guess a multiple of 7: 42
You won!
That was fun.
现在是我的代码:
guessCount = 0
mistakeMade = False
while True:
guess = int(input("Guess a multiple of 7: "))
if guess % 7 != 0:
if mistakeMade:
print("Another mistake. Too bad.")
break
else:
print("Mistake! That number isn't a multiple of 7.")
mistakeMade = True
else:
if guess == 42:
print("You won!")
break
else:
print("Nope!")
guessCount += 1
if guessCount == 10:
print("No guesses left!")
break
print("That was fun.")
我通过了 Grok Learning 的所有检查,除了这个错误:
测试一个隐藏的案例。 您提交的内容试图读取过多的输入。 这发生在您提交的第 5 行。
我花了很多时间思考它,但它仍然没有解决问题。 希望得到大家的帮助。 谢谢你。
当一个人犯错时,您不会增加guessCount 。 试试这个
wrongGuess = 0
for _ in range(10):
guess = int(input("Guess a multiple of 7: "))
if guess % 7 != 0:
wrongGuess += 1
if wrongGuess > 1:
print("Another mistake. Too bad.")
break
else:
print("Mistake! That number isn't a multiple of 7.")
wrongGuess += 1
else:
if guess == 42:
print("You won!")
break
else:
print("Nope!")
else:
print("No guesses left!")
print("That was fun.")
注意:对于像这样的有限计数问题,总是尝试使用for loop 。
您应该每次都进行递增并检查guessCount
,因此将其从if
条件中删除。
[编辑] 旧的无关答案。
可能是:
guess = int(input("Guess a multiple of 7: ").split()[0])
?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.