我正在尝试完成确保字符串中的所有字符均满足以下条件的任务:
对于大多数字符串,该功能有效;但是,当显示0时,我返回的是错误的False
。
问题已被局限在for循环(for character in string:
)上,如输出所示。
def valid_product_code(string):
if len(string) % 4 == 0:
print("String is divisible by 4")
if "A1" in string:
print("A1 is contained within string")
for character in string:
print(character)
if character == character.lower():
print("Character is a Lowercase")
return False
elif character == ("!"or "." or "," or ":"):
print("Character is punct")
return False
else:
return True
else:
return False
else:
return False
print(valid_product_code(“ 0O3LG6EWN7AA1NI596LCVBRZ”))
代码输出如下:
String is divisible by 4
A1 is contained within string
0
Character is a Lowercase
False
答案 0 :(得分:1)
您需要使用if character.islower():
而不是if character == character.lower():
,因为'0'.lower()=='0'
才能使if语句(if character == character.lower():
)始终返回true
,如果您的字符串包含任何数字< / p>
答案 1 :(得分:1)
简短的答案是'0'.lower() == '0'
。而不是检查不良字符(例如小写字母或标点符号),应在Python中描述成为好字符的含义。
在这种情况下,成为好角色就意味着
'A' <= character <= 'Z' or '0' <= character <= '9'
答案 2 :(得分:1)
您正在做的是非Python的。代替使用if character == character.lower():
,而使用.islower()
。
.islower()
返回True
。这与所有字符都是字母不同。