为什么我不能在字符串列表中使用`str.isupper`?

时间:2020-07-28 11:47:43

标签: python string list methods

我想以排序方式打印每个大写字母

string = "CbcBcbaA" # type(string) => str
sort_string = sorted(string) # type(sort_string) => list
for char in string:
# type(char) => str
   if char.isupper:
      print(char)

此打印每个字符,而不是仅打印大写字符
列表中的每个项目都是class <str>,所以为什么我不能使用字符串方法?

4 个答案:

答案 0 :(得分:7)

您忘记了调用该函数。函数本身总是真实的,即

if char.isupper:

等同于

if True:

你想要

if char.isupper():

相反。

答案 1 :(得分:1)

您没有调用函数,只是将成员函数作为对象放置在了那里,尽管如此,该对象仍将评估为true。您应该像这样使用char.isupper()

string = "CbcBcbaA" # type(string) => str
sort_string = sorted(string) # type(sort_string) => list
for char in string:
# type(char) => str
   if char.isupper():
      print(char)

答案 2 :(得分:0)

您必须更改一些代码 这是代码

string = "CbcBcbaA" 
sort_string = sorted(string) # type(sort_string) => list
for char in sort_string:
   if char.isupper():
      print(char,end='')

output ABC

答案 3 :(得分:-1)

希望这对您有帮助,

string = "CbcBcbaA" # type(string) => str

# define `split` function to split your string in character-based array
def split(word): 
    return [char for char in word] 

splt = split(string)
sort_string = sorted(splt) # type(sort_string) => list
for char in sort_string:
# type(char) => str
   if char.isupper():
      print(char)