Python函数,迭代

一、 函数

1. 函数的嵌套

 1 def huangwei():  # 函数不能里面执行不执行外面
 2     name = 'huang'
 3     print(name)
 4 
 5     def liuyang():
 6         name = 'liuyang'
 7         print(name)
 8 
 9         def nulige():
10             name = 'fahsfha'
11             print(name)
12 
13         print(name)
14         nulige()
15         return nulige
16 
17     liuyang()
18     print(name)
19     return liuyang

(1) 仅仅是 huangwei()   顺序为1-2-3-17-5-6-7-13-14-9-10-11-15-18-19

(2) huangwei() = liuyang    所以要运行liuyang    应为  huangwei()()

(3)huangwei()() = nulige    所以要运行努力哥应为  huangwei()()()

2. 函数的自循环

 1 person_list = ['a', 'b', 'v', 'd', 'vd']
 2 
 3 def ask_way(person_list):
 4     print('-' * 60)
 5     if person_list == 0:
 6         return '根本没人知道'
 7     person = person_list.pop(0)
 8     if person == 'd':
 9         return '那条路是。。。。。'
10     print('hi %s ,你知道xx 路吗' % person)
11     print('%s 我不知道 我帮你问问 %s' % (person, person_list))
12     import time
13     time.sleep(0)  # time 要先import
14     res = ask_way(person_list)
15     return res
16 """------------------------------------------------------------
17 hi a ,你知道xx 路吗
18 a 我不知道 我帮你问问 ['b', 'v', 'd', 'vd']
19 ------------------------------------------------------------
20 hi b ,你知道xx 路吗
21 b 我不知道 我帮你问问 ['v', 'd', 'vd']
22 ------------------------------------------------------------
23 hi v ,你知道xx 路吗
24 v 我不知道 我帮你问问 ['d', 'vd']
25 ------------------------------------------------------------
26 那条路是。。。。。
27 """

3. lambda 函数

(1)匿名函数 一般和其他函数联合使用lambda x:x+1:         x 为形参,x+1是返回值 

  (2)函数式编程,函数体内不应该有任何的赋值操作 ,没有变量的定义

二、迭代

y = x.__iter__()  将x 转换为可迭代对象,可以转换为迭代器

y.__next__()/ next(y)  进行迭代每一项元素的输出  ,一行代码输出一个,  如果太多了超出范围 会报错

yield    函数的yield 相当于return  但是return 只能执行一次, yield 可以执行多次

def test():
    yield S  # yield 相当于return
    yield 1
    yield 2
    yield 3  # yield 可以执行多次 ,但是return 只能执行一次
g = test()
print(g)
print((g.__next__()))
print((g.__next__()))
print((g.__next__()))
print((g.__next__()))
# 结果
# <generator object test at 0x10e240f20>
#{1, 2, 3}
#1
#2
#3

猜你喜欢

转载自www.cnblogs.com/adelinebao/p/12749458.html