繁体   English   中英

为什么 Python 将空白空间作为 upper() 返回 True?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM