这是 Python 的一个练习,我对 Python 中的变量范围感到困惑。
“如果给定的字符串包含“xyz”的外观,其中 xyz 没有直接以句点 (.) 开头,则返回 True。所以“xxyz”很重要,但“x.xyz”没有。
xyz_there('abcxyz') → 真
xyz_there('abc.xyz')→ 假 xyz_there('xyz.abc') → 真"
这是我的回答:
def xyz_there(str):
for i in range(len(str)-2):
if str[i]=='.':
i+=1
continue
elif str[i:i+3]=='xyz':
return True
return False
这是错误的。xyz_there('abc.xyz') → False
总会回来True
的。因为变量i
将始终为 0,1,2.... 而i+=1
并不意味着什么。为什么???