首页 文章

python多行用户输入单行

提问于
浏览
1

我必须阅读 few user input parameters . 现在我可以为一行中的每一个做到这一点,例如parameter1 = raw_input("Parameter 1:")parameter2 = raw_input("Parameter 2:")

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

那么,是否可以从这一行中生成6个参数(有些是int,有些是字符串,有些是浮点数)?

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

谢谢你的帮助!

4 回答

  • 2

    你可以这样做:

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

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

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

  • 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)根据您的需要解决它 .

    空闲输出:

    4 4(三输入)4 4(打印)

  • 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())]
    
  • 0

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

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

    l=input().split(' ')
    

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

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

相关问题