我必须阅读少数用户输入参数。现在我可以为一行中的每一个做到这一点,例如parameter1 = raw_input(“参数1:”) parameter2 = raw_input(“参数2:”)
为了更好的测试目的,在一行中做到这一点更实际。例如:输入(参数)可以是:1均为0.5 2 5 0.8
那么,是否可以在此行之外生成6个参数(有些是int,有些是字符串,有些是浮点数)?
B.t.w。我正在使用python 2.7
感谢您的帮助!
答案 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(',')