好的,这是我的代码的一部分
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,对吗?不会打印错误吗?
答案 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个)。
没有冒号你有一个索引,它获取该位置的一个项目 - 一个字符串,你可以明智地与另一个字符串比较,而不是字符串列表,它使没有任何意义可以比较。