我正在尝试输入一个名称列表,然后确定哪些名称包含字母“ 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()
答案 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条件中,否则,该程序仅计算小写字母。