如何在python中使用空格分隔3个输入,相当于C中的scanf("%d%d%d",&a,&b,&n);
。
答案 0 :(得分:2)
a, b, n = map(int, input('enter three values: ').split())
实施例
enter three values: 3 5 6
>>> a
3
>>> b
5
>>> n
6
此解决方案适用于Python 3.x在Python 2.x中将input
替换为raw_input
。
答案 1 :(得分:2)
使用 raw_input()从键盘获取值。
raw_input()
演示:
>>> a = raw_input("Enter three number separated by space:")
Enter three number separated by space:1 3 2
>>> print a
1 3 2
>>> print type(a)
<type 'str'>
>>> a1 = a.split()
>>> a1
['1', '3', '2']
>>> int(a1[0])
1
>>>
异常处理:
在类型转换期间处理异常的最佳做法,因为用户也可能输入alpha值。
演示:
>>> try:
... a = int(raw_input("Enter digit:"))
... except ValueError:
... print "Enter only digit."
... a = 0
...
Enter digit:e
Enter only digit.
注意:强>
对input()
使用Python 3.x
,raw_input()
Python 2.x
答案 2 :(得分:0)
如documentation中所述,您可以使用正则表达式来解析scanf
中的字符串。
input_string = raw_input()
import re
m = re.search("([-+]?\d+) ([-+]?\d+) ([-+]?\d+)", input_string)
if m is None:
raise ValueError("input not valid %s" % input_string)
input_numbers = map(int, input_string_splitted)