从用户输入创建字母数

时间:2017-11-11 03:39:01

标签: python python-3.x user-input counting

所以我正在创建一个单词和字母计数程序,我有一个倒计时的字样。单词计数应该允许用户输入任意数量的行,然后在完成后点击输入,然后程序将告诉该列表中有多少单词。我现在正试图在计划上建立字母数。我遇到问题是因为他们不在职能部门吗?我试着保持简单而不使用函数,因为我对它们感到困惑。在我的代码中,它告诉我有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) + "")

2 个答案:

答案 0 :(得分:1)

在您的单词计数代码中,您使用变量content,该变量将所有用户输入的行保存在列表列表中。在您的计数代码中,您使用变量line,它只是用户输入的最后一行。因为该行必须是“。”离开循环它从来没有任何字母因此你总是返回0.将你的字母计数技术应用于单词列表中的每个单词,如:

letter = sum(c.isalpha() for word in words_list for c in word)

答案 1 :(得分:-1)

content中的每个元素似乎都是它自己的单元素列表。如果您拉出每个元素并加入它们,然后进行字符计数,您应该在letter中获得正确的值。

例如,输入foobar.

# 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
相关问题