为什么只有一位数字整数输入有效,而不是两位数字整数?

时间:2019-06-26 21:24:25

标签: python-3.x input integer

我正在尝试编写一个要求输入数字然后打印一行的函数。它可以完美地用于单个数字,但是一旦我使用两个数字,我的if / elif语句只能看到第一个数字,而不能同时看到两个数字。

我在python3中创建了一个示例函数并进行了测试。我尝试将str更改为int,也只是将input()更改为无效。

>>> def test():
...     out = str(input('Choice: '))
...     if out[0] == '1':
...             print('Test1 Worked')
...     elif out[0] == '2':
...             print('Test2 Worked')
...     elif out[0] == '10':
...             print('Test10 Worked')
... 
>>> test()
Choice: 1
Test1 Worked
>>> test()
Choice: 2
Test2 Worked
>>> test()
Choice: 10
Test1 Worked

在上一次运行test()时,我的选择是10,我期望输出为Test 10 Worked,但它说Test1 Worked。

2 个答案:

答案 0 :(得分:1)

因为out是一个字符串,并且您将第一个元素out[0]用作第一个字符。因此out[0] == '10'[0] == '1'

您将不得不执行out[:2] == '10',或者因为很容易搞砸,所以最好使用if out.startswith('10')。如果您知道整个字符串只是一个数字,则可以安全进行out == '10'

答案 1 :(得分:1)

您可能要检查out而不是out [0]的值,因为out [0]将检查输入的第一个字符

if vanilla: strawberry or buttercream   

if chocolate: mocha, dark chocolate or buttercream.