所以我正在创建一个单词和字母计数程序,并且我有单词倒计时拍拍。字数统计应该允许用户输入任意数量的行,然后在完成后按回车键,然后程序将告诉该列表中有多少个单词。我现在正在尝试将字母计数构建到程序中。我是否因为功能中没有遇到问题?我尽量保持简单,不使用函数,因为我对它们感到困惑。在我的代码中,它告诉我有 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) + "")
在字数统计代码中,您使用的是变量 content
,该变量将所有用户输入的行保存在列表列表中。在字母计数代码中,您可以使用变量 line
它只是用户输入的最后一行。由于该行必须是"."才能离开循环,因此它永远不会有任何字母,因此您始终返回 0。将字母计数技术应用于单词列表中的每个单词,例如:
letter = sum(c.isalpha() for word in words_list for c in word)
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