Python 如果索引在字符串之外,如何返回False?
我正在编写一个程序,比较字符串中的两个索引,并根据索引是否具有相同的值返回True或False。如果任何一个索引在字符串之外,它也应该返回false,但是我不知道如果不得到错误消息,如何前进。 以下是我目前掌握的情况:Python 如果索引在字符串之外,如何返回False?,python,Python,我正在编写一个程序,比较字符串中的两个索引,并根据索引是否具有相同的值返回True或False。如果任何一个索引在字符串之外,它也应该返回false,但是我不知道如果不得到错误消息,如何前进。 以下是我目前掌握的情况: def samat(jono,a,b): if jono[a] in jono and jono[b] in jono: return (jono[a]==jono[b]) if __name__ == "__main__":
def samat(jono,a,b):
if jono[a] in jono and jono[b] in jono:
return (jono[a]==jono[b])
if __name__ == "__main__":
print(samat("koodari", 1, 2))
当索引出现错误时,可以捕获异常并返回False
def samat(jono,a,b):
# check if it the same value
try:
return jono[a]==jono[b]
except IndexError:
return False
输出:
if __name__ == "__main__":
print(samat("koodari", -69, 2)) # False
print(samat("koodari", 420, 2)) # False
print(samat("koodari", 1, 2)) # True
当索引出现错误时,可以捕获异常并返回False
def samat(jono,a,b):
# check if it the same value
try:
return jono[a]==jono[b]
except IndexError:
return False
输出:
if __name__ == "__main__":
print(samat("koodari", -69, 2)) # False
print(samat("koodari", 420, 2)) # False
print(samat("koodari", 1, 2)) # True
这个答案假设索引为非负。考虑到这一事实,我们可以测试索引a和b是否大于jono的长度并返回False,或者比较这些位置的字符并返回结果
def samat(jono, a, b):
if a >= len(jono) or b >= len(jono):
return False
return jono[a] == jono[b]
if __name__ == "__main__":
print(samat("koodari", 1, 2))
或者,您可以按照user@tobias_k的建议,将samat函数缩短:
def samat(jono, a, b):
return 0 <= a < len(jono) and 0 <= b < len(jono) and jono[a] == jono[b]
这个答案假设索引为非负。考虑到这一事实,我们可以测试索引a和b是否大于jono的长度并返回False,或者比较这些位置的字符并返回结果
def samat(jono, a, b):
if a >= len(jono) or b >= len(jono):
return False
return jono[a] == jono[b]
if __name__ == "__main__":
print(samat("koodari", 1, 2))
或者,您可以按照user@tobias_k的建议,将samat函数缩短:
def samat(jono, a, b):
return 0 <= a < len(jono) and 0 <= b < len(jono) and jono[a] == jono[b]
或者返回a