Python 我不能';我找不到任何类型错误的解决方案:类型为';布尔';没有len()错误
在下面的代码中,我想创建一个猜谜游戏。玩家输入4个数字,电脑告诉玩家有多少数字是正确的。但当我运行程序时,输入一个数字后,它会给我“TypeError:类型为'bool'的对象没有len()”错误。我已经读到这个错误,但我找不到任何解决方案。有什么可以解决的吗?请问如何解决Python 我不能';我找不到任何类型错误的解决方案:类型为';布尔';没有len()错误,python,python-3.x,error-handling,Python,Python 3.x,Error Handling,在下面的代码中,我想创建一个猜谜游戏。玩家输入4个数字,电脑告诉玩家有多少数字是正确的。但当我运行程序时,输入一个数字后,它会给我“TypeError:类型为'bool'的对象没有len()”错误。我已经读到这个错误,但我找不到任何解决方案。有什么可以解决的吗?请问如何解决 import random numbers = int(random.randrange(1000,9999)) nums = [int(x) for x in str(numbers)] while True:
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
声明
((mynumbers) in (nums))
传递True或False->此处不能使用len()-命令
编辑:
解决方案应该是这样的:
counter=0
for i in mynumbers:
if i in nums:
print i
counter+=1
print counter
计数器应该是您的结果,因为((nums)中的(mynumbers))
将返回布尔值,因此无法调用len()
为了你想做的事
试试看:
a=sum([x单位为nums,x单位为mynumber])
它将计算您正确猜测的位数。您需要在else语句中使用for循环
...
else:
number_of_rights = 0
for index in mynumbers:
if index in nums:
number_of_rights += 1
print ('*' * number_of_rights)
...
你想用(nums)中的len((mynumbers))做什么?你希望它返回什么?我希望它返回一个数字,显示有多少数字被猜测为真。例如:假设随机数是“1234”,我们输入“3456”,我希望它返回(2)并打印“**”,你怎么会认为len((mynumes)in(nums))
会做这些事情呢?我以为它会搜索每个数字。但我忽略了它是一个传递真或假的函数。我还是不知道怎么做。谢谢你,我完全错过了。我怎样才能做我想做的事?