当输入超出列表中的范围时执行错误消息 - python
我正在创建一个代码,当用户在对象列表中选择超出范围的输入数字时,我想创建一条错误消息。我正在使用的代码如下:当输入超出列表中的范围时执行错误消息 - python
choose = int(input('Which one would you like to do a fundamental analysis on?:'))
share = (object_list[choose - 1])
print('\n-----Fundamental analysis for ' + share.company_name + '-----')
print('The company solidity is:')
print(share.solidity)
print('The company p/e value is:')
print(share.p_e)
print('The company p/s value is:')
print(share.p_s)
预先感谢您!
,你可以保护一个try/except
声明数组访问:
choose = int(input('Which one would you like to do a fundamental analysis on?:'))
try:
share = (object_list[choose - 1])
except IndexError:
# do something
但不会保护你免受负面指标(如果choose
设置为0,那么你访问索引-1
这是有效的。蟒蛇所以我建议手动检查来代替(我建议到预减choose
先遵守,以0开始排列):
choose -= 1
if 0 < choose < len(object_list):
# okay
...
else:
raise IndexError("index out of range: {}".format(choose+1))
这看起来很有希望!我复制它,并放在我的代码周围,但我仍然只是从程序gett索引错误..我真的不明白什么是错的!编辑:得到它现在的工作!谢谢! – Jurkka
添加if
声明
if len(object_lis) < choose <= 0:
print("Entered value is out of range")
或者您可以使用try...except
。
如果'choose'是0或负数? –
@ Jean-FrançoisFabre;接得好。 – haccks
尝试/除了一般更好,但手动检查在这种情况下是安全的,因为负指数,是的。 –
使用'try' /'除了IndexError:' – JohanL
@coldspeed:很好找。但是,原始答案不检查负指数。尝试/除非在该特定情况下效率低下。那么,我会回答这样的原始问题,但我回答了一个,而不是... –