[英]Why Python built in “all” function returns True for empty iterables?
[英]Why Python returns True for empty space as upper()?
任何人都可以澄清为什么下面的程序返回带有空格的“JFK”而不是“JFK”?
string = "John Fitzgerald Kennedy"
initials = ""
for letter in string:
if letter == letter.upper():
initials += letter
print(initials)
另一方面,下面的程序返回没有空格的“JFK”,
string = "John Fitzgerald Kennedy"
initials = ""
for letter in string:
if letter != letter.lower():
initials += letter
print(initials)
谢谢!!!
编辑:啊......我在阅读答案后问这个真的很傻吗? 我应该在询问之前尝试以下内容......它返回“ohn itzgerald ennedy”
string = "John Fitzgerald Kennedy"
initials = ""
for letter in string:
if letter == letter.lower():
initials += letter
print(initials)
感谢大家:)
试试string.upper()
。 你会得到'JOHN FITZGERALD KENNEDY'
。 请注意,空格的大写版本没有改变。
如果要检查字符是否为大写,可以使用isupper
:
string = "John Fitzgerald Kennedy"
initials = ""
for letter in string:
if letter.isupper():
initials += letter
print(initials)
因为
space(" ") == space(" ").upper() --> True
还
space(" ") != space(" ").upper() --> False
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.