• 迭代器 递归 格式化 练习


    第一题:

    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  润新知