我正在浏览各种网页,并在名为 Numbers 的字符串中提取数字集合。对于某些网页,字符串 Numbers 是空的,因为我正在寻找的内容都不在网页中。字符串 Numbers 可以是从空到10000以上的任何长度。
我的代码读取excel表格,我在字符串 Numbers 中指定我要查找的号码的位置。该位置由变量 Position 给出。我想写一个条件,告诉我 Numbers 在 Position 位置的字符串中是否有数字,如果有,请继续执行其他命令。我的问题来自于我正在抓取的网页经常更新。因此,字符串 Numbers 会更改长度,而我在 Position 位置所寻找的内容不再存在。字符串 Numbers 可能会更短,使用以下代码会导致错误:
if Numbers[Position]:
move on with the code
else:
print 'no number found'
我得到了
IndexError: list index out of range
如果
我想知道什么条件,适应各种场景(空字符串,更短的字符串),有类似的东西:
如果 Numbers 中位置位置有号码,请继续。它会阻止我的代码崩溃。
答案 0 :(得分:0)
您可以在此处使用一些检查。
if numbers:
# string is not empty
try:
print('Number at position {} is {}'.format(position, numbers[position]))
except IndexError:
# position doesn't exist
print('{} does not exist in string'.format(position))
else:
# string is empty
print('String is empty')
如果你不想成为那个特定的,因为切片总是小于字符串的长度,你可以这样做:
if len(numbers) > position:
print('Number at position {} is {}'.format(position, numbers[position]))
else:
print('{} does not exist'.format(position))
答案 1 :(得分:0)
测试长度:
if len(Number) > Position:
# Number[Position] will work
或者你可以抓住异常:
try:
result = Number[Position]
# get here and it worked
except IndexError:
# nope, no such position