Python 3.x 如何在字符串中查找下一个字符,只需知道该字符是否位于python中前一个字符之后
我只想知道字符串中的下一个字符是否存在,我只是在代码的一小部分中发布有问题的地方Python 3.x 如何在字符串中查找下一个字符,只需知道该字符是否位于python中前一个字符之后,python-3.x,Python 3.x,我只想知道字符串中的下一个字符是否存在,我只是在代码的一小部分中发布有问题的地方 num='XMM' if num[3]: print('empty') 我得到这个错误: IndexError: string index out of range 当我只是想要一个真实或错误的评价 我试过使用if not num[3]:它似乎并不像我预期的那样工作。任何帮助都将不胜感激。您可以使用的是try/except结构: try : x = num[3] print(x) #
num='XMM'
if num[3]:
print('empty')
我得到这个错误:
IndexError: string index out of range
当我只是想要一个真实或错误的评价
我试过使用
if not num[3]:
它似乎并不像我预期的那样工作。任何帮助都将不胜感激。您可以使用的是try/except结构:
try :
x = num[3]
print(x) # or something else you want to do if there is a char
except IndexError:
print("empty")
但请注意,这是一个坏主意,最好只使用字符串的长度:
if len(num) <= 3:
print("empty")
if len(num)我觉得上面所有答案都遗漏了一件事,那就是python允许我们使用-ve索引:),如下所示:
In [1]: num='XMM'
...:
In [2]: num[1]
Out[2]: 'M'
In [4]: num[-3]
Out[4]: 'X'
因此,检查索引是否有效的正确方法是如下检查:
In [6]: index_to_check = -1
In [7]: index_to_check in range(-len(num), len(num))
Out[7]: True
In [8]: index_to_check = -4
In [9]: index_to_check in range(-len(num), len(num))
Out[9]: False
如果len(num)>3:
?你说空是什么意思?一个空格?我认为这会起作用。捕捉一个特定的异常(在本例中是索引器)比捕捉一个简单的,除了为什么不直接打印(num[3])
?因为问题不是很清楚,如果存在字符,OP可能想对它做些什么,但这里没有区别。你是对的