【发布时间】:2021-07-30 18:16:05
【问题描述】:
任务是编写一个名为count_letter 的函数,该函数接受单词列表和某个字母,并返回至少找到该字母一次的单词数量。而且,我们必须使用for 循环。
所以我列出了一些编程语言和字母“a”,并尝试应用我们迄今为止学到的所有内容以及一些互联网教程来了解如何将人类逻辑转换为代码行,但显然我遗漏了一些东西,因为它没有不工作:(
这就是我的代码现在的样子:
mylist = ['fortran', 'basic', 'java', 'python', 'c++']
letter = 'a'
a_list = []
def count_letter(mylist):
count = 0
for i in range(len(mylist)):
if letter in i:
count += 1
a_list.append(i)
return a_list
print(len(a_list))
结果是 - 没有结果。 Online-python 编译器返回响应 ** 进程退出 - 返回码:0 ** 我的问题是 - 我会错过什么或错误地定位那个循环不起作用。我想自己理解。 在教程中,我发现了一个返回正确答案的结构(看起来非常优雅和紧凑),但它没有任何功能,所以它不是我们真正需要编写的:
mylist = ['fortran', 'basic', 'java', 'python', 'c++']
letter = 'a'
res = len ([ele for ele in mylist if letter in ele])
print ('Amount of words containing a: ' +str(res))
这里系统响应:3,正如预期的那样。
请告诉我应该在代码 #1 中检查什么。
【问题讨论】:
-
抱歉,“社区您好!”从我的问题中消失了。
-
你的循环有问题:
for i in range()返回整数。你想要的是字符串,所以请改用for word in mylist: -
print在return和for i in range(len(mylist)):可以是for i in mylist:之后永远不会执行
标签: python python-3.x function for-loop