Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何在字符串中查找下一个字符,只需知道该字符是否位于python中前一个字符之后_Python 3.x - Fatal编程技术网

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可能想对它做些什么,但这里没有区别。你是对的