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

python2.7 quit within two input in the same line (separated by space)

我必须在同一行输入两个值,它们之间用space分隔。 这样输出就会像这样

123 456

input is 123 and 456

所以我用代码

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

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

wrong input

但是当我尝试输入“-1”并按下 'enter'

据说

ValueError: need more than 1 value to unpack

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

只需将您的参数放入列表中,然后对其进行处理:

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

然后您可以检查 params[0] 是否为 -1 或数组的长度是否与预期不同。检查后,您可以分配:

a,b=params

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

与其存储在 a,b 中,不如将其存储在列表中。

如果要使用地图功能,请使用以下内容:

  1. 有效输入大小写:

    >>> 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
    
  2. 输入无效的情况-

    >>> 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
    
  3. 额外的东西(有效)-

    >>> a = map(float, raw_input().split())
    12 34 56 78
    >>> if a[0] == -1 :
    ...     print 'Wrong Input'
    ... else :
    ...     print 'input is',a[0],' '.join(['and '+str(i) for i in a[1:]])
    ...
    input is 12.0 and 34.0 and 56.0 and 78.0
    
  4. 额外的东西(无效)-

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