【发布时间】:2019-02-08 07:17:27
【问题描述】:
在下面的这段代码中,我想创建一个猜谜游戏。玩家输入 4 个数字,电脑会告诉玩家有多少个数字是正确的。但是当我运行程序时,就在我输入一个数字之后,它给了我“TypeError:'bool'类型的对象没有len()”错误。我已阅读有关此错误的信息,但找不到任何解决方案。有什么帮助解决吗?请问如何解决?
import random
numbers = int(random.randrange(1000,9999))
nums = [int(x) for x in str(numbers)]
while True:
try:
guess = int(input('Enter your guess: '))
mynumbers = [int(k) for k in str(guess)]
i = 0
if int(guess) == int(numbers):
print('Congragulations, you have guessed the number!')
print('It took [] tries to guess')
break
else:
a = len((mynumbers) in (nums))
print ('*' * a)
i+=1
continue
except ValueError:
print('Please enter a number.')
continue
【问题讨论】:
-
你想用
len((mynumbers) in (nums))做什么?你期望它返回什么? -
我希望它返回一个数字,显示有多少数字被猜对了。例如:假设随机数是“1234”,我们输入“3456”,我希望它返回(2)并打印“**”
-
你认为
len((mynumbers) in (nums))会做这些事情的原因是什么? -
我以为它会搜索每个号码。但我错过了它是一个提供 True 或 False 的函数。我仍然不知道该怎么做。
标签: python python-3.x error-handling