如何将输入读取为数字?

为什么在下面的代码中使用xand y字符串代替ints?

(注意:在Python 2.x中使用raw_input()。在Python 3.x中使用input()在Python 3.x中raw_input()被重命名为input()

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
小宇宙2020/05/28 15:15:03

尽管在你的榜样,int(input(...))做的伎俩在任何情况下,python-futurebuiltins.input是值得考虑的,因为这可以确保你的代码同时适用于Python 2和3 ,并禁用Python2的违约行为,input努力成为‘聪明的’关于输入数据类型(builtins.input基本上只是的行为类似于raw_input)。

蛋蛋2020/05/28 15:15:03

我在解决CodeChef上的问题时遇到了输入整数的问题,该问题应从一行读取两个以空格分隔的整数。

虽然int(input())对于单个整数就足够了,但是我没有找到直接输入两个整数的方法。我尝试了这个:

num = input()
num1 = 0
num2 = 0

for i in range(len(num)):
    if num[i] == ' ':
        break

num1 = int(num[:i])
num2 = int(num[i+1:])

现在,我将num1和num2用作整数。希望这可以帮助。

JimNear2020/05/28 15:15:03

对于单行中的多个整数,map可能会更好。

arr = map(int, raw_input().split())

如果数字是已知的(例如2个整数),则可以使用

num1, num2 = map(int, raw_input().split())
神奇神奇Near2020/05/28 15:15:03

input()(Python 3)和raw_input()(Python 2)始终返回字符串。使用显式将结果转换为整数int()

x = int(input("Enter a number: "))
y = int(input("Enter a number: "))
Cathy2020/05/28 15:15:03

多个问题需要在单行上输入多个整数。最好的方法是一行输入整个数字字符串,然后将它们拆分为整数。这是Python 3版本:

a = []
p = input()
p = p.split()      
for i in p:
    a.append(int(i))

也可以使用列表理解

p = input().split("whatever the seperator is")

并将所有输入从字符串转换为整数,我们执行以下操作

x = [int(i) for i in p]
print(x, end=' ')

应将列表元素直线打印。

小卤蛋2020/05/28 15:15:03

转换为整数:

my_number = int(input("enter the number"))

同样对于浮点数:

my_decimalnumber = float(input("enter the number"))