This question already has answers here:
Letter Count on a string
                                
                                    (11个答案)
                                
                        
                                2年前关闭。
            
                    
我正在尝试制作一个Python脚本来计算我的Hangman游戏中随机选择的单词中的字母数量。

我已经在网上四处张望,但我能找到的大多数东西都是用单词来数特定的字母。经过更多的环顾后,我最终发现了这一点,由于某种原因,它不起作用。如果有人指出错误,将不胜感激。

wordList = ["Tree", "Fish", "Monkey"]
wordChosen = random.choice(wordList)
wordCounter = wordChosen.lower().count['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
print(wordCounter)

最佳答案

首先,您的代码包含一个非常重要的错误,需要理解:

wordChosen.lower().count['a', 'b'] #...


count是一个函数,因此需要您用括号而不是方括号将其参数括起来!

接下来,您应该在首次使用函数时尝试引用Python Documentation。那应该可以帮助您了解为什么您的方法行不通。

现在解决您的问题。如果要计算字符串中的字母数,请使用len(wordChosen)来计算字符串中的字符总数。

如果要计算每个字母的频率,已经建议了几种方法。这是使用字典的又一个:

import string
LetterFreq={}
for letter in string.ascii_lowercase:
    LetterFreq[letter] = 0
for letter in wordChosen.lower():
    LetterFreq[letter] += 1


这样可以使单词中不存在的所有字母默认为0 :)

希望这可以帮助!

关于python - 如何计算单词中的字母? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32187934/

10-12 18:43
查看更多