python多行用户输入单行

python multiple user input in single line

我必须读取一些用户输入参数。现在我可以对一行中的每一个都这样做,例如,参数1=原始输入("参数1:")参数2=原始输入("参数2:")

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

那么,是否可以将这行中的6个参数(一些是int、一些字符串和一些float)去掉?

B.T.W.我使用的是python 2.7

谢谢你的帮助!


您可以执行以下操作:

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

parameters将包含用户给出的参数列表。

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


如果问题出现在python3中,这里是解决方案。不能说它是否能在python 2中工作

我们要做的是列出输入并将其拆分为空格。那么我们要做的就是使用列表

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

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

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


只需按空白分割内容:

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

或者您也可以使用python re:

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

在这种情况下使用regex

1
2
3
4
5
6
7
8
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)根据你的需要来解决这个问题。

空闲输出:

4 + 4 ( Three inputs)

4 + 4 (Prints them)