我正在尝试检查字符串中的每个字符是否都大写。我必须使用循环,不能使用正则表达式。我的想法是,循环检查每个字符是否都是大写字母和已知字符。如果到达的字符既不是大写字母也不是已知字符,则退出循环并返回false,否则返回true。
for i in range(len(s)):
char = s[i]
if is_capitalized(char):
return True
else:
return False
break
else:
return False
这里是该函数的行为的文档字符串。由于某种原因,is_all_caps('CHATte')返回True。
>>> is_all_caps('HA')
True
>>> is_all_caps('CHAT')
True
>>> is_all_caps('CHATte')
False
这是因为一旦函数返回一个值,它就会结束并且不会继续。因此,一旦到达大写字符(if is_capitalized(char)
),它将返回True
,而不检查其余字符。
[您可以利用这一点,一旦看到无效字符,并且如果for循环到达末尾,那么您就知道所有字符都必须有效(大写):立即返回False:
for i in range(len(s)):
char = s[i]
if not is_capitalized(char):
return False
return True