Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基本Python添加脚本的问题。_Python_Python 2.7_Conditional - Fatal编程技术网

基本Python添加脚本的问题。

基本Python添加脚本的问题。,python,python-2.7,conditional,Python,Python 2.7,Conditional,我是Python的初学者,我基本上是在为自己做一个基本的数学程序,开始的时候是一个两位数的加法程序,每次都有随机的问题,我甚至把它搞糟了。每次我输入一个正确的答案,它都会说每次都不正确。代码如下: import random digit_one = random.randint(0,100) digit_two = random.randint(0,100) print "What is %s + %s?" % (digit_one, digit_two) answer = digit_

我是Python的初学者,我基本上是在为自己做一个基本的数学程序,开始的时候是一个两位数的加法程序,每次都有随机的问题,我甚至把它搞糟了。每次我输入一个正确的答案,它都会说每次都不正确。代码如下:

import random

digit_one = random.randint(0,100)
digit_two = random.randint(0,100)


print "What is %s + %s?" % (digit_one, digit_two)

answer = digit_one + digit_two    

userAnswer = raw_input()

if userAnswer == answer:
    print "Well done that's correct!"

else:
    print "That's incorrect!"
我正在使用2.7和内置的空闲IDE。我有一种感觉,我应该用一个循环来代替它,尽管我知道如果我想让它继续重新加载问题,我以后必须使用一个循环。谢谢你的帮助

userAnswer = raw_input()

raw\u input
返回一个字符串。您需要像这样显式地将其转换为
int

userAnswer = int(raw_input())
print type(answer), type(userAnswer)
因为您将它与
答案
进行比较,后者是一个
整数
。您可以通过打印这些变量的类型来确认这一点,如下所示

userAnswer = int(raw_input())
print type(answer), type(userAnswer)

raw\u input
返回一个字符串。您需要像这样显式地将其转换为
int

userAnswer = int(raw_input())
print type(answer), type(userAnswer)
因为您将它与
答案
进行比较,后者是一个
整数
。您可以通过打印这些变量的类型来确认这一点,如下所示

userAnswer = int(raw_input())
print type(answer), type(userAnswer)
raw\u input()
返回字符串(
str
)。在条件语句中,您正在比较
str
是否等于
answer
int

要解决此问题,您可以将输入转换为
int

userAnswer = int(raw_input())
raw\u input()
返回字符串(
str
)。在条件语句中,您正在比较
str
是否等于
answer
int

要解决此问题,您可以将输入转换为
int

userAnswer = int(raw_input())

raw\u input
返回一个字符串。将其转换为
int
以与数字进行比较:

>>> x = raw_input()
23
>>> x
'23'
>>> 23
23
>>> x == 23
False
>>> int(x)
23
>>> int(x) == 23
True

raw\u input
返回一个字符串。将其转换为
int
以与数字进行比较:

>>> x = raw_input()
23
>>> x
'23'
>>> 23
23
>>> x == 23
False
>>> int(x)
23
>>> int(x) == 23
True

您正在尝试将字符串与整数进行比较。尝试将“userAnswer”输入为整数,而不是字符串,如下所示:

userAnswer = int(raw_input())

您正在尝试将字符串与整数进行比较。尝试将“userAnswer”输入为整数,而不是字符串,如下所示:

userAnswer = int(raw_input())

@Hyperboreus:Hell no.在字符串上调用
int
<“代码>输入”是一个可怕的习惯。@Hyperboreus我不得不抵制将你的评论标记为冒犯性的冲动。。。但说真的,不行。如果你不十分清楚python2s
input
eval
的任何其他变体,请不要向初学者推荐这些东西。尤其是,如果有一种完全安全、快速、可读且显而易见的方法来完成相同的任务(在这种情况下是
int
),就不要这样做。@l4mpi“攻击性”?我冒犯了谁?我强烈反对使用
eval
,甚至从我过去的回答中可以看出
literal\u eval
。我个人从未使用过
输入
(py2)。但是,在我看来,很多教程似乎都使用它,因为大多数(或至少很多)初学者问题都使用它。所以我怀疑
input
在初学者中很常见,因为你的输入被很好地、神奇地解析了。后来人们开始学习类型、类型转换、自动装箱、比较、标识等。。。没有冒犯任何人的意图。@Hyperboreus“进攻性”部分并不那么严重,因此后来“但很严重”。而被“冒犯”的目标群体将是所有人,因此他们会处理入门级python问题,并告诉人们停止反复使用
input
/
eval
)不管怎样,你自相矛盾——如果你强烈反对
eval
,为什么要推荐使用它的
input
?尤其是对于一个初学者来说,他们更应该远离这样的坏习惯。感觉像是一个C程序员,面对如何重复语句的问题,他推荐
goto
而不是
for
。@l4mpi感谢您的澄清。你是对的。我已经删除了这个令人不快的评论。@Hyperboreus:Hell no.Call
int
<“代码>输入”是一个可怕的习惯。@Hyperboreus我不得不抵制将你的评论标记为冒犯性的冲动。。。但说真的,不行。如果你不十分清楚python2s
input
eval
的任何其他变体,请不要向初学者推荐这些东西。尤其是,如果有一种完全安全、快速、可读且显而易见的方法来完成相同的任务(在这种情况下是
int
),就不要这样做。@l4mpi“攻击性”?我冒犯了谁?我强烈反对使用
eval
,甚至从我过去的回答中可以看出
literal\u eval
。我个人从未使用过
输入
(py2)。但是,在我看来,很多教程似乎都使用它,因为大多数(或至少很多)初学者问题都使用它。所以我怀疑
input
在初学者中很常见,因为你的输入被很好地、神奇地解析了。后来人们开始学习类型、类型转换、自动装箱、比较、标识等。。。没有冒犯任何人的意图。@Hyperboreus“进攻性”部分并不那么严重,因此后来“但很严重”。而被“冒犯”的目标群体将是所有人,因此他们会处理入门级python问题,并告诉人们停止反复使用
input
/
eval
)不管怎样,你自相矛盾——如果你强烈反对
eval
,为什么要推荐使用它的
input
?尤其是对于一个初学者来说,他们更应该远离这样的坏习惯。感觉像是一个C程序员,面对如何重复语句的问题,他推荐
goto
而不是
for
。@l4mpi感谢您的澄清。你是对的。我有