我想读取两个输入值。第一个值应该是整数,第二个值应该是浮点数。
我看到了使用Python在单行中读取两个变量,但它仅适用于两个值都是相同类型的情况。我还有其他方法吗?
例如输入,第一个是int,第二个是float。输入应该在单行上:
20 150.50
http://www.codechef.com/problems/HS08TEST/
我对Python非常陌生。
我想读取两个输入值。第一个值应该是整数,第二个值应该是浮点数。
我看到了使用Python在单行中读取两个变量,但它仅适用于两个值都是相同类型的情况。我还有其他方法吗?
例如输入,第一个是int,第二个是float。输入应该在单行上:
20 150.50
http://www.codechef.com/problems/HS08TEST/
我对Python非常陌生。
像这样:
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并不适合用于一行式编程。
>>> [f(i) for f,i in zip((int, float), raw_input().split())]
1 1.2
[1, 1.2]
更简单的一行代码(但不太安全):
map(eval, raw_input().split())
如果输入以空格 " " 分隔:
a,b,c = raw_input().split(" ")
如果输入以逗号 ',' 分隔:
a,b,c = raw_input().split(",")
A,B = raw_input().split(" ")
A = int(A)
B = float(B)
print(A)
print(B)
输出:
34 6.9
34
6.9
map(str,input().split())
这就是做法。
>>> a,b=list(map(int,input().split()))
1 2
>>> print(a)
1
>>> print(b)
2
这是一个很好的解决方案,我个人认为 a, b = input().split()
。
如果你想用自定义字符分隔输入,可以将其放在括号中,例如 a, b = input().split(",")
x=list(map(str,input().split()))
print(x)
x,y=x,y=list(map(str,input().split()))
print(x,y)
x=input().split()
的结果是一个字符串列表,因此您不必要地执行了 map
和 list
。奇怪的是,在您的第二个示例中还有 x,y=x,y=
。 - David Buck以下片段适用于我。
a, b = input().split(" ")
a_value = int(a)
b_value = int(b)