使用find命令的Python程序有什么问题?

时间:2018-11-11 22:37:19

标签: python

我正在尝试输入一个名称列表,然后确定哪些名称包含字母“ e”或字母“ E”,但它始终只返回0。有人可以告诉我为什么吗?

def count_contain_e():

    num_names = int(input("How many names are you going to enter: "))
    count = 0

    for i in range(num_names):
        name = input("Enter middle name: ")
    if (name.find("e") >= 0):
        count += 1

    return count

def main():
    num_w_e = count_contain_e()
    print "The number of middle names with the letter e is " + str(num_w_e)

main()

2 个答案:

答案 0 :(得分:1)

您有缩进问题。 if应该与name分配处于同一级别(比当前多1个标签)。

答案 1 :(得分:0)

问题是if语句的标识。 您需要在if内插入for,以便分析您输入的所有名称,例如:

for i in range(num_names):
        name = input("Enter middle name: ")
        if (name.find("e") >= 0):
            count += 1

现在在if中,您只在分析姓氏,因为在循环中,您一直在重写变量,以执行find方法。

并且可以肯定的是,如果您也要计算大写字母,则需要将其添加到if条件中,否则,该程序仅计算小写字母。