在python中读取多个输入

时间:2015-03-16 14:22:00

标签: python

如何在python中使用空格分隔3个输入,相当于C中的scanf("%d%d%d",&a,&b,&n);

3 个答案:

答案 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()从键盘获取值。

  1. 要求用户通过raw_input()
  2. 从键盘输入值
  3. 拆分用户按空格输入值。
  4. 使用类型转换将字符串转换为整数。
  5. 演示:

    >>> 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.xraw_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)