Python:如何确保列表中的数字为0

时间:2015-01-24 05:16:28

标签: python list input

好的,这是我的代码的一部分

user_inputs = input('Input A B C >')
user_inputs_list = user_inputs.split()
print(user_inputs_list)   #


print(user_inputs_list[:1])   #
if user_inputs_list[:1] == '0':
    print('error')

我正在尝试确保第一个数字不为零,但此代码不会打印错误。如果数字是0 1 2,则user_inputs_list [:1]应为0,对吗?不会打印错误吗?

3 个答案:

答案 0 :(得分:3)

您正在使用切片语法,该语法返回您的案例中的第一个n元素(n=1)的列表。如果要检查第一个元素是否为零,则应将元素数(从零开始)放入括号中:

In [1]: user_input = '0 1 2'.split()

In [2]: user_input
Out[2]: ['0', '1', '2']

In [3]: user_input[:1]
Out[3]: ['0']

In [4]: user_input[0]
Out[4]: '0'

In [5]: user_input[0] == '0'
Out[5]: True

答案 1 :(得分:1)

user_inputs = input('Input A B C >')
if user_inputs.startswith("0"):
    print ("error")

您可以使用更简单明了的startswith()

>>> 
Input A B C >26
>>> 
>>> 
Input A B C >026
error
>>>

答案 2 :(得分:0)

您需要检查

if user_inputs_list[1] == '0':

没有:前面的1

冒号使您写的是切片 - 包含最多1个项目的列表(因此,包含单个项目的列表,第0个)。

没有冒号你有一个索引,它获取该位置的一个项目 - 一个字符串,你可以明智地与另一个字符串比较,而不是字符串列表,它使没有任何意义可以比较。