为什么输入到int不能正常工作?

时间:2014-02-06 02:09:24

标签: python

我正在尝试用Python解决这个问题而不确定它为什么不起作用......

x = int(input("Enter the value of X: "))
y = int(input("Enter the value of Y: "))
print(y)
input("...")

问题是Y.我输入如下没有引号:“2 * x” 我已经尝试了很多东西并进行了很多研究(正如我之前所做的那样),但我很难过。也许是因为我是这样的基本用户。

3 个答案:

答案 0 :(得分:4)

似乎你正在阅读python2的书籍,但你已经安装了python3。在python2中,input等于eval(raw_input(prompt)),这就是为什么当您输入2 * x时,它会评估表达式的值并将其分配给y

在python3中,input只是将用户输入作为字符串,而不是eval作为表达式,您可能需要明确eval,即a bad practice和{{ 3}}:

In [7]: x=2

In [8]: y=eval(input('input Y:'))

input Y:3*x


In [9]: y
Out[9]: 6

总而言之,使用:py2中的raw_input,py3中的input从不使用eval(或py {中的input)你的生产代码。

答案 1 :(得分:0)

这是因为2 * x不是整数。但是,当你评价它时,它是;但这不是input的作用。

所以你想要的是这个:

x = int(input("Enter the value of X: "))
y = int(input("Enter the value of Y: ")) * x

然后,在被要求2

时输入Y

答案 2 :(得分:0)

您不能以这种方式将表达式作为字符串文字传递给int。你可以这样做,

x = int(input("Enter the value of X: "))
y = x * 2
print(y)
input("...")

如果你需要在乘法中使用另一个值,你可以这样做,

x = int(input("Enter the value of X: "))
y = int(input("Enter the value of Y: "))
z = x * y
print(z)
input("...")