如何在一行中读取由空格分隔的两个输入?

21

2
链接问题的答案是你所需要的大部分答案。你尝试过什么? - SingleNegationElimination
@TokenMacGuy 错误是我的。我应该先阅读文档 :( - Prince Ashitaka
请遵循通用问题指南:说明任何特殊限制,展示您已经尝试过的内容并询问具体什么地方让您感到困惑。 - Roger Pate
13个回答

31

像这样:

In [20]: a,b = raw_input().split()
12 12.2

In [21]: a = int(a)
Out[21]: 12

In [22]: b = float(b)
Out[22]: 12.2

你不能一行完成这件事(或者至少不在没有额外超级duper hackz0r技能--或分号的情况下完成),但是Python并不适合用于一行式编程。


4
一句话简介 :)
>>> [f(i) for f,i in zip((int, float), raw_input().split())]
1 1.2
[1, 1.2]

1
请解释该行代码的每个组成部分。 - abhishah901

4

更简单的一行代码(但不太安全):

map(eval, raw_input().split())

3

如果输入以空格 " " 分隔:

a,b,c = raw_input().split(" ")

如果输入以逗号 ',' 分隔:

a,b,c = raw_input().split(",")

3
在Python 2.7中,我使用以下代码:
A,B = raw_input().split(" ")
A = int(A)
B = float(B)
print(A)
print(B)

输出:

34 6.9

34

6.9

2

map(str,input().split()) 这就是做法。


1
以下代码片段对我有效。
>>> a,b=list(map(int,input().split()))
1 2
>>> print(a)
1
>>> print(b)
2

0

这是一个很好的解决方案,我个人认为 a, b = input().split()

如果你想用自定义字符分隔输入,可以将其放在括号中,例如 a, b = input().split(",")


0
如果您希望接受任意数量的输入,则可以按照以下方式操作:
    x=list(map(str,input().split())) 
    print(x)

如果您想要两个输入:
   x,y=x,y=list(map(str,input().split()))
   print(x,y)

x=input().split() 的结果是一个字符串列表,因此您不必要地执行了 maplist。奇怪的是,在您的第二个示例中还有 x,y=x,y= - David Buck

0

Python 3.5

以下片段适用于我。

a, b = input().split(" ")
a_value = int(a)
b_value = int(b)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接