所以我正在创建一个单词和字母计数程序,我有一个倒计时的字样。单词计数应该允许用户输入任意数量的行,然后在完成后点击输入,然后程序将告诉该列表中有多少单词。我现在正试图在计划上建立字母数。我遇到问题是因为他们不在职能部门吗?我试着保持简单而不使用函数,因为我对它们感到困惑。在我的代码中,它告诉我有0个字母。
到目前为止,这是我的代码:
print("Enter as many lines of text as you want.")
print("When you're done, enter a single period on a line by itself.")
content = []
while True:
line = input()
if line == ".":
break
words = line.split()
content.append(words)
words_list = [item for sublist in content for item in sublist]
print("The number of words entered: " + str(len(words_list)))
letter = sum(c.isalpha() for c in line)
print("The number of letters used: " + str(letter) + "")
答案 0 :(得分:1)
在您的单词计数代码中,您使用变量content
,该变量将所有用户输入的行保存在列表列表中。在您的计数代码中,您使用变量line
,它只是用户输入的最后一行。因为该行必须是“。”离开循环它从来没有任何字母因此你总是返回0.将你的字母计数技术应用于单词列表中的每个单词,如:
letter = sum(c.isalpha() for word in words_list for c in word)
答案 1 :(得分:-1)
content
中的每个元素似乎都是它自己的单元素列表。如果您拉出每个元素并加入它们,然后进行字符计数,您应该在letter
中获得正确的值。
例如,输入foo
,bar
,.
:
# output
# The number of words entered: 2
print(content)
# [['foo'], ['bar']]
letter = sum(c.isalpha() for c in ''.join([x[0] for x in content]))
...
# The number of letters used: 6