如何将输入读入为整数?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (81)

为什么这段代码不能输入整数?

play = True

while play:

    x = input("Enter a number: ")
    y = input("Enter a number: ")

    print(x + y)
    print(x - y)
    print(x * y)
    print(x / y)
    print(x % y)

    if input("Play again? ") == "no":
        play = False
提问于
用户回答回答于

在Python 3.x中,raw_input重命名为input和Python2.xinput被移除了。

这意味着,就像raw_input,,,input在Python3.x中,总是返回一个String对象。

要解决这个问题,需要将这些输入显式地放入整数中int:

x = int(input("Enter a number: "))
y = int(input("Enter a number: "))

此外,Python不需要/使用分号来结束行

用户回答回答于

Python2.x

有两个函数可以获取用户输入,称为inputraw_input.他们之间的区别是,raw_input不以字符串形式计算数据和返回。但是,input将评估输入的任何内容,评估结果将被返回。例如,

>>> import sys
>>> sys.version
'2.7.6 (default, Mar 22 2014, 22:59:56) \n[GCC 4.8.2]'
>>> data = input("Enter a number: ")
Enter a number: 5 + 17
>>> data, type(data)
(22, <type 'int'>)

可以尝试下这个:

>>> data = eval(raw_input("Enter a number: "))
Enter a number: 5 + 17
>>> data, type(data)
(22, <type 'int'>)

Python 3.x

Python 3.xinput和Python2.x的raw_input是相似的

>>> import sys
>>> sys.version
'3.4.0 (default, Apr 11 2014, 13:05:11) \n[GCC 4.8.2]'
>>> data = input("Enter a number: ")
Enter a number: 5 + 17
>>> data, type(data)
('5 + 17', <class 'str'>)

扫码关注云+社区

领取腾讯云代金券