-
迭代器 递归 格式化 练习
第一题:
def func1():
print('in func1') #直接输出 in func1
def func2():
print('in func2') # 输出 in func2
ret = func1
ret() #func1() 第一次调用
ret1 = func2
ret1() #func2() 第二次调用
ret2 = ret
ret3 = ret2
ret2() #func1 可以被多次调用 第三次调用
ret3() #func1 可以被多次调用 第四次调用
输出结果:
n func1
in func2
in func1
in func1
第二题
def func1():
print('in func1') #打印 in func1
def func2():
print('in func2') #打印 in func2 2
def func3(x, y):
x() #func2
print('in func3') # 打印 in func3 3
y() #func1
print(111) #输出 111 1
func3(func2, func1) #调用 func3 函数 #这里添加一步 如果有 print 的话就返回 None 这样子 func3 只是储存起来
print(222) # 222 5
# 答案
111
in func2
in func3
in func1
222
第三题
def func1():
print('in func1') #输出 in func1 2 #输出 in func1 5
def func2(x): # x 是 func1
print('in func2') #输出 in func2 1 #输出 in func2 4
return x
def func3(y): #y 是 func2
print('in func3') #输出 in func3 3
return y
ret = func2(func1) #调用 func2
ret() # 调用func1
ret2 = func3(func2) #调用 func3 ret2 是 func2
ret3 = ret2(func1) #再次调用 func2
ret3() #再次调用 func1
输出结果
in func2
in func1
in func3
in func2
in func1
第四题
def func(arg): #arg = msg
return arg.replace('苍老师', '') # Alex 的女朋友和大家都是好朋友
def run():
msg = "Alex的女朋友苍老师和大家都是好朋友"
result = func(msg) #调用 func 函数
print(result) # Alex 的女朋友***和大家都是好朋友 1
run() #调用 run函数
data = run() # Alex 的女朋友***和大家都是好朋友 2 又调用了一次
print(data)
# None
第五题
data_list = []
def func(arg): #arg = '绕不死你'
return data_list.insert(0, arg) #没有东西接收它 所以下面返回的是 None
data = func('绕不死你') #调用 func 函数
print(data) # None #这里稍微有些不太明白 要问
print(data_list) #['绕不死你']
第六题
def func():
print('你好呀') # 你好呀
return '好你妹呀'
func_list = [func, func, func]
for item in func_list:
val = item() #调用三次 func
print(val) # 好你妹呀 重复三次
你好呀
好你妹呀
你好呀
好你妹呀
你好呀
好你妹呀
第七题
def func():
print('你好呀')
return '好你妹呀'
func_list = [func, func, func]
for i in range(len(func_list)): 长度为三 这里要理解
val = func_listi
print(val) # 和第六题相似
你好呀
好你妹呀
你好呀
好你妹呀
你好呀
好你妹呀
第八题
def func():
return '大烧饼'
def bar():
return '吃煎饼'
def base(a1, a2): #a1 = func a2 = bar
return a1() + a2()
result = base(func, bar)
print(result) #大烧饼吃煎饼 就是一次又一次的调用
第九题:
for item in range(10):
print(item)
print(item)
#0
1
2
3
4
5
6
7
8
9
9
第十题
def func():
for item in range(10):
pass #占个位
print(item) #最后输出 9
func()
11 题
item = '老男孩'
def func():
item = 'alex'
def inner():
print(item)
for item in range(10): #它比上面先执行 所以 items 是 9
pass
inner()
func()
9
12 题
l1 = []
def func(args):
l1.append(args)
return l1
print(func(1)) # [1]
print(func(2)) #[1,2]
print(func(3)) #[1,2,3]
13 题
name = '宝元'
def func():
global name
name = '男神' #这里被赋值了
print(name) # 宝元 1
func()
print(name) #男神 2
宝元
男神
14 题
name = '宝元'
def func():
print(name)
func()
宝元
15 题
name = '宝元'
def func():
print(name)
name = 'alex' #局部不能修改全局 报错
func()
16 题
def func():
count = 1
def inner():
nonlocal count
count += 1
print(count) # 2
print(count) # 1
inner()
print(count) # 2 局部变量变了就变了
func()
17 题
def extendList(val,list=[]):
list.append(val)
return list
list1 = extendList(10)
list2 = extendList(123,[])
list3 = extendList('a')
print('list1=%s'%list1)
print('list2=%s'%list2)
print('list3=%s'%list3)
list1=[10, 'a']
list2=[123]
list3=[10, 'a']
18 题
def extendList(val,list=[]):
list.append(val)
return list
print('list1=%s'% extendList(10))
print('list2=%s'% extendList(123,[]))
print('list3=%s'% extendList('a'))
-
相关阅读:
java并发5-volatile关键字解析
java并发4-单例设计方法
Java并发3-多线程面试题
JAVA并发2
JAVA并发
2015第27周三Java内存模型
同一时候使用windows和linux系统
深入浅出Windows BATCH
DrawText的使用
redmine忘记username和password
-
原文地址:https://www.cnblogs.com/hualibokeyuan/p/11215168.html
Copyright © 2020-2023
润新知