统计word中大小写字符的个数

新手上路,请多包涵
def Charater():
    UpperCount = 0
    LowerCount = 0
    word = input('Enter a word: ')
    for letter in word:
        if letter == letter.upper
            UpperCount = UpperCount + 1
            return UpperCount
        else:
            LowerCount = LowerCount + 1
            return LowerCount

print(Charater())

如果这看起来很糟糕,请不要评判我。但是我是一个初学者,我试图让代码计算用户输入的单词中有多少个大写和小写字符。每次执行此操作时,它都会返回 1。(可能是我的 if 语句)。有人可以指出问题并告诉我如何解决它。

原文由 Addie 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 384
2 个回答

您可以使用 mapstr.isupperstr.islower 分别查找大写和小写字符的计数:

 >>> my_word = "HelLo WorLd"
>>> lower_count = sum(map(str.islower, my_word))
>>> lower_count
6

>>> upper_count = sum(map(str.isupper, my_word))
>>> upper_count
4

原文由 Moinuddin Quadri 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 collections.Counter 、生成器理解和嵌套三元在一行中计数:

 import collections

my_word = "HelLo WorLd"
c = collections.Counter("upper" if x.isupper() else "lower" if x.islower() else "" for x in my_word)
print(c)

结果:

 Counter({'lower': 6, 'upper': 4, '': 1})

原文由 Jean-François Fabre 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题