[英]Issue on my higher or lower number guessing game
import random
from random import randint
import string
computer = random.randint(0, 50)
player = False
while player == False:
player = input("Choose number 1-50: ")
if player == computer:
print("Well Done!")
elif player < computer:
print("Higher")
else:
print("Lower")
在代码的“<”部分,我收到消息“TypeError: '<' not supported between instances of 'str' and 'int'”。 有想法该怎么解决这个吗?
这是python的基本概念之一。 当您在 python 中输入时,它将存储为字符串而不是数字。 即使用户输入了一个数字,它也会被转换为字符串。
例如,如果随机数是5
并且用户也输入了 5,它会将 5 与“5”进行比较,因为它们都是不同的数据类型(str 和 int)。
为了使您的程序正常工作,请将行从
player = input("Choose number 1-50: ")
至
player = int(input("Choose number 1-50: "))
通过将input("Choose number 1-50: ")
放入int()
您将其转换为int
数据类型。
它现在可以工作了。
您的代码中有两个错误。
input
返回用户在键盘上键入的原始字符串,变量player
获取此值。即 str。 因此,导致了 TypeError。player = input("Choose number 1-50: ")
player = int(input("Choose number 1-50: "))
player = int(input("Choose number 1-50: "))
,player
将始终包含一个integer
数值。 如果用户键入非零数字,则循环可以提前停止,因为non-zero int != False
。 你应该添加player = (player==computer)
True
,否则为False
。 基本上我们将 var player
用于两个目的:
integer
数值。进行这些更改后,您的代码应如下所示:
...
while player == False:
player = int(input("Choose number 1-50: "))
... # if else blocks
player = (player == computer) # check if player == computer or not
代替
input("Choose number 1-50: ")
和:
int(input("Choose number 1-50: "))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.