【问题标题】:can someone help me identify the mistake in my code [duplicate]有人可以帮我找出我的代码中的错误[重复]
【发布时间】:2017-11-28 09:19:57
【问题描述】:
import random 
user_name=("enter your name:")
print("Note: The number lies between 1 to 100")
random_nuber = random.randrange(1, 100, 1)
user_number = input("enter your guess")
dif= user_number - random_nuber

while dif != 0:
if dif > 0:
    print("high")
if dif < 0:
    print("low")
user_number = input("enter your guess now :")

我是初学者,每次使用 while 或 for 循环时,都会遇到同样的错误。

the error I get each time I run this code

【问题讨论】:

  • 回溯是文本,请将其复制并粘贴到您的问题中。然后我们可以索引(使其可搜索),视障人士可以帮助您(因为他们的屏幕阅读器可以阅读文本),我们可以复制和粘贴文件名。
  • 错误已经描述了它,从输入中你得到字符串 user_number 和 random_number 是一个 int。为了从另一个中减去一个,您需要将该字符串转换为 int

标签: python python-3.x error-handling


【解决方案1】:

input("enter your guess") 正在返回一个字符串,因此 user_number - random_nuber 将不起作用,因为它们是不同的类型 - 一个数字和一个字符串。

编辑:对于习惯 Python2 的任何人,这通常会尝试评估字符串 - 因此,如果您输入数字,它会自动将其转换为数字。在 Python3 中(根据问题),它始终是一个字符串,因此需要进行转换。

您需要将数字转换为字符串,可以在制作时将其更改为整数:user_number = int(input("enter your guess")),也可以在操作中需要时将其更改为:dif= int(user_number) - random_nuber

(我个人推荐第一个选项)

【讨论】:

  • 谢谢!我定义了 diff=float(user_number)-random_number
  • 它成功了,并且差异进入了循环
猜你喜欢
  • 1970-01-01
  • 2021-10-18
  • 2017-11-14
  • 1970-01-01
  • 1970-01-01
  • 2021-09-22
  • 2020-10-27
  • 2021-07-18
  • 2021-12-08
相关资源
最近更新 更多