我想在函数定义中获得以下结果。当我使用for
循环时,它可以很好地工作,但是当我使用def
时,它只会给我第一个项目。
text= "I am not a student, but I like to be "
text1= text.split()
for index,item in enumerate(text1):
print (index, item)
输出:
0 I
1 am
2 not
3 a
4 student,
5 but
6 I
7 like
8 to
9 be
但是,这在函数def
中不起作用。你能帮我把结果搞到一个吗?
text= "I am not a student,but I like to be "
text1= text.split()
def words(text):
for index,item in enumerate(text1):
return index, item
words(text1)
输出:
(0, 'I')
答案 0 :(得分:2)
return
退出函数并中断函数中的操作,永远不会完成。
如果你没有返回第一个值,但是像第一个例子中那样打印所有值,你会看到相同的输出。
答案 1 :(得分:0)
问题是函数中的return
在for
循环的第一次迭代期间结束了它的执行。因此,要执行与非功能版本相同的操作,您需要print()
内部内的每个值,如下所示:
from __future__ import print_function
def words(text):
for index,item in enumerate(text1):
print(index, item)
text1 = "I am not a student, but I like to be ".split()
words(text1)
输出:
0 I
1 am
2 not
3 a
4 student,
5 but
6 I
7 like
8 to
9 be