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

Posted

技术标签:

【中文标题】python2.7在同一行的两个输入内退出(以空格分隔)【英文标题】:python2.7 quit within two input in the same line (separated by space) 【发布时间】:2018-02-23 15:59:45 【问题描述】:

我必须在同一行输入两个值,它们之间用空格隔开。 所以输出会是这样的

123 456

输入是 123 和 456

所以我使用代码

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

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

输入错误

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

据说

ValueError: 需要超过 1 个值才能解压

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

【问题讨论】:

【参考方案1】:

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

不要存储在 a,b 中,而是将其存储在列表中。

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

    有效输入的情况:

    >>> 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
    

    输入无效的情况-

    >>> 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
    

    额外的东西(有效)-

    >>> 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
    

    额外的东西(无效)-

    >>> 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
    

【讨论】:

【参考方案2】:

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

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

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

a,b=params

【讨论】:

以上是关于python2.7在同一行的两个输入内退出(以空格分隔)的主要内容,如果未能解决你的问题,请参考以下文章

C ++在同一行中的两个用户输入关键字加上单独的检查

一行内怎么显示3个div层呢?

创建一个循环以在同一行中记录下一个记录时间和日期(基于唯一 ID)

noj算法 堡垒问题 回溯法

如何使不同的 Django 表单输入按钮显示在同一行

有没有办法检查左侧单元格的值并将计数加两个,除非在同一行的另一个单元格中输入了一个值?