python2.7在同一行的两个输入中退出(以空格分隔)

时间:2017-09-14 15:23:05

标签: python-2.7 input split valueerror

我必须在同一行输入两个值,它们用空格分隔。 所以输出将是这样的东西

  

123 456

     

输入为123和456

所以我使用代码

a ,b = map(float, raw_input().split())
print ('input is '), a ,(' and '), b

这项工作 但是我想在用户输入“-1”时立即退出脚本 例如,如果用户输入-1作为a的值,程序将停止从用户读取输入,打印'错误输入'

  

错误的输入

但是当我尝试输入'-1'并按'输入'时

  

ValueError:解包需要多于1个值

是不是意味着我不应该使用'map(float,raw_input()。split())'?

2 个答案:

答案 0 :(得分:0)

只需将参数放入列表中然后处理它们:

params = map(float, raw_input().split())

然后你可以检查params [0]是否为-1或者数组的长度是否与预期的不同。检查完毕后,您可以指定:

a,b=params

答案 1 :(得分:0)

如果只输入一个输入(-1),在尝试将其存储在a,b中时,pytjon会抛出一个回溯。

而不是存储在a,b中,只需将其存储在列表中即可。

如果要使用地图功能,请使用以下命令:

  1. 有效输入的情况:

    /me/memberOf
  2. 输入无效的情况 -

    User.Read
  3. 额外的东西(有效) -

    >>> a = map(float, raw_input().split())
    123 456
    >>> if a[0] == -1 :
    ...     print 'Wrong Input'
    ... else :
    ...     print 'input is',a[0],' '.join(['and '+str(i) for i in a[1:]])
    ...
    input is 123.0 and 456.0
    
  4. 额外的东西(无效) -

    >>> a = map(float, raw_input().split())
    -1
    >>> if a[0] == -1 :
    ...     print 'Wrong Input'
    ... else :
    ...     print 'input is',a[0],' '.join(['and '+str(i) for i in a[1:]])
    ...
    Wrong Input