python多行用户输入单行

时间:2015-02-24 11:00:01

标签: python

我必须阅读少数用户输入参数。现在我可以为一行中的每一个做到这一点,例如parameter1 = raw_input(“参数1:”)                       parameter2 = raw_input(“参数2:”)

为了更好的测试目的,在一行中做到这一点更实际。例如:输入(参数)可以是:1均为0.5 2 5 0.8

那么,是否可以在此行之外生成6个参数(有些是int,有些是字符串,有些是浮点数)?

B.t.w。我正在使用python 2.7

感谢您的帮助!

4 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

separator = ' '
parameters = raw_input("parameters:").split(separator)

parameters将包含用户提供的参数列表。

separator是您要使用的分隔符(示例中的空格,但可以是任何字符串)

答案 1 :(得分:0)

在这种情况下使用正则表达式

import re

re_exp = re.compile(r'\s*(\d+)\s*([^\d\s])+\s*(\d+)')
expr = raw_input()
match = re_exp.match(expr)
if match:
    num1, oper, num2 = match.groups()
    print num1, oper, num2

一行需要3个输入(INT,OPERATION,INT)。并为您打印(int,operation,int) 根据您的需要解决它。

IDLE输出:

  

4 + 4(三输入)

     

4 + 4(打印)

答案 2 :(得分:0)

只需按空格分割内容:

data = [int(i) for i in raw_input().split()] # cast to integers

或者你也可以使用Python re:

data = [int(i) for i in re.findall(r'\d+', raw_input())]

答案 3 :(得分:0)

如果问题出现在Python 3中,这就是解决方案。不能说它是否适用于Python 2

我们做的是列出输入并将其拆分为空格。然后,我们所要做的就是使用列表

l=input().split(' ')

如果不是空格,分隔符是','我们执行以下操作,依此类推:

l=input().split(',')