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) |
如果问题出现在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)