0

我是编程新手,我决定制作一个基本的数学游戏。我开始 print ("what is your name") name = input () print ("hello" + name +" 我是 steve,这是我的数学测试。你准备好了吗?Y/N") answer_1 = input () answer_1 = int (answer_1)

if answer_1 ==Y:
    print ("Good then lets get started")

else:
    print ("well you have started now so to late lets go")

我去测试它,每次我都得到这个。

what is your name
Callum
hello Callum i am steve and this is my maths test. Are you ready? Y/N
Y
Traceback (most recent call last):
  File "C:\Users\callum\Documents\programming\maths test.py", line 6, in <module>
answer_1 = int (answer_1)
ValueError: invalid literal for int() with base 10: 'Y'
>>> 

谁能告诉我我做错了什么

4

4 回答 4

2

您正在尝试将字母“y”转换为以 10 为基数的数字。

从您的代码中删除这一行。

answer_1 = int (answer_1)

此外,当您测试字符串相等性时,请记住使用引号,否则 python 解释器将不知道您是指变量名还是实际字符串“Y”。

if answer_1 =='Y':
    print ("Good then lets get started")
于 2013-09-14T16:39:00.057 回答
2

简单地:

if answer_1 == 'Y':

并且不要将其转换为整数...

于 2013-09-14T16:39:11.533 回答
0

您正在转换从这一行输入的字符串

answer_1 = input ()

在这里变成一个整数

answer_1 = int (answer_1)

如果输入为“Y”,这将不起作用。

然后将此输入与 Y 进行比较,但您应该在此处与字符串“Y”进行比较:

if answer_1 ==Y:

最后,我认为在与编程相关的文件名中有空格不是一个好主意。

于 2013-09-14T16:40:47.550 回答
0

删除此行:answer_1 = int (answer_1)
并将其更改if answer_1 == Y:if answer_1 == 'Y':

于 2013-09-14T16:59:31.463 回答