• python之道11


    day11作业

    1. 请写出下列代码的执行结果:
      例一:
    def func1():
    	print(**'in func1'**)
    
    
    
    def func2():
    	print(**'in func2'**)
    
    
    
    ret = func1
    
    ret() #执行1 # func1() # 结果 in func1
    
    ret1 = func2 
    
    ret1() #执行2 # func2() # 结果 in func2
    
    ret2 = ret 
    
    ret3 = ret2
    
    ret2() # 执行3 # func1() # 结果 in func1
    
    ret3() # 执行4 # func1() # 结果 in func1
    
    执行结果:
    

    答案

    in func1
    in func2
    in func1
    in func1
    

    例二:

    def func1():
    	print(**'in func1'**)
    
    
    
    def func2():
    	print(**'in func2'**)
    
    
    
    def func3(x,y): # x = func2, y = func1
    
    	x() #3 相当于func2()# in func2
    
    	print(**'in func3'**) #4  #in func3
    
    	y() #5 相当于func1() # in func1
    	
    
    print(111) # 第1步 # 111
    
    func3(func2,func1) # 2 # 
    
    print(222) #6 # 222
    
    执行结果:
    

    答案

    111
    in func2
    in func3
    in func1
    222
    

    例三(选做题):

    def func1():
    	print('in func1')
    
    def func2(x):
    	print('in func2')
    	return x
    
    def func3(y):
    	print('in func3')
    	return y
    
    ret = func2(func1)
    
    ret()
    
    ret2 = func3(func2)
    
    ret3 = ret2(func1)
    
    ret3()
    
    执行结果:
    

    答案image-20190620092818214

    in func2
    in func1
    in func3
    in func2
    in func1
    
    1. 看代码写结果:
    def func(arg):
        return arg.replace('苍老师', '***')
    
    
    def run():
        msg = "Alex的女朋友苍老师和大家都是好朋友"
        result = func(msg)
        print(result)
    
    
    run()
    

    答案

    Alex的女朋友***和大家都是好朋友
    
    def func(arg):
        return arg.replace('苍老师', '***')
    
    
    def run():
        msg = "Alex的女朋友苍老师和大家都是好朋友"
        result = func(msg)
        print(result)
    
    data = run()
    print(data)
    
    

    答案

    Alex的女朋友***和大家都是好朋友
    None
    
    
    1. 看代码写结果:
    DATA_LIST = [] 
    
    
    def func(arg):
        return DATA_LIST.insert(0, arg) 
    
    
    data = func('绕不死你')
    print(data)
    print(DATA_LIST)
    
    

    答案

    None
    ['绕不死你']
    
    
    1. 看代码写结果:
    def func():
        print('你好呀')
        return '好你妹呀'
    
    
    func_list = [func, func, func]
    
    for item in func_list:
        val = item()
        print(val)
    
    

    答案

    你好呀
    好你妹呀
    你好呀
    好你妹呀
    你好呀
    好你妹呀
    
    
    1. 看代码写结果:
    def func():
        print('你好呀')
        return '好你妹呀'
    
    
    func_list = [func, func, func]
    
    for i in range(len(func_list)):
        val = func_list[i]()
        print(val)
    
    

    答案

    你好呀
    好你妹呀
    你好呀
    好你妹呀
    你好呀
    好你妹呀
    
    
    1. 看代码写结果:
    def func():
        return '烧饼'
    
    
    def bar():
        return '豆饼'
    
    
    def base(a1, a2):
        return a1() + a2()
    
    
    result = base(func, bar)
    print(result)
    
    

    答案

    烧饼豆饼
    
    
    1. 看代码写结果:
    for item in range(10):
        print(item)
        
    print(item)
    
    

    答案

    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    9
    
    
    1. 看代码写结果:
    def func():
        for item in range(10):
            pass
        print(item)
    func()
    
    

    答案

    9
    
    
    1. 看代码写结果:
    item = '老男孩'
    def func():
        item = 'alex'
        def inner():
            print(item)
        for item in range(10):
            pass
        inner()
    func()
    
    

    答案

    9
    
    
    1. 看代码写结果:
    l1 = []
    def func(args):
        l1.append(args)
        return l1
    print(func(1))
    print(func(2))
    print(func(3))
    
    

    答案

    [1]
    [1,2]
    [1,2,3]
    
    
    1. 看代码写结果:
    name = '太白'
    def func():
        global name
        name = '男神'
    print(name)
    func()
    print(name)
    
    

    答案

    太白
    男神
    
    
    1. 看代码写结果:
    name = '太白'
    def func():
        print(name)
    func()
    
    

    答案

    太白
    
    
    1. 看代码写结果:
    name = '太白'
    def func():
        print(name)
        name = 'alex'
    func()
    
    

    答案

    报错,上面引用了一个name = 太白的变量,下面又定义了一个,出错
    
    
    1. 看代码写结果:
    def func():
        count = 1
        def inner():
            nonlocal count
            count += 1
            print(count)
        print(count)
        inner()
        print(count)
    func()
    
    

    答案

    1
    2
    2
    
    
    1. 看代码写结果:
    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]
    list2=[123]
    list3=[10,'a'] # 不太懂
    
    
    1. 看代码写结果:
    def extendList(val,list=[]):
    	list.append(val)
    	return list
    print('list1=%s'% extendList(10))
    print('list2=%s'% extendList(123,[]))
    print('list3=%s'% extendList('a'))
    
    

    答案

    list1=[10]
    list2=[123]
    list3=[10,'a']
    
    
    1. 用你的理解解释一下什么是可迭代对象,什么是迭代器。

    答案

    dir内部含有__iter__的方法就是可迭代对象
    dir内部含有__iter__和__next__的方法就是迭代器
    
    
    1. 如何判断该对象是否是可迭代对象或者迭代器?

    答案

    li = [1,2,3,4]
    print('__iter__' in dir(li)) 如果是Ture就是迭代对象
    print('__iter__' in dir(li) and '__next__' in dir(li)) 如果返回值是True就是迭代器
    
    
    1. 写代码:用while循环模拟for内部的循环机制(面试题)。

    答案

    li = [1,2,3,4,5]
    obj = iter(li) # 将可迭代对象转换成一个迭代器
    while 1:
    	try: 
    		 print(next(obj))
    	except StopIteration:
    		break
    # 结果
    1
    2
    3
    4
    5
    
    
    1. 写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值}

      例如:min_max(2,5,7,8,4) 返回:{‘max’:8,’min’:2}(此题用到max(),min()内置函数)

    答案

    def min_max(*args):
    	print({'max':max(args),'min':min(args)})
    min_max(2,5,7,8,4)
    # 结果
    {'max': 8, 'min': 2}
    
    
    1. 写函数,传入一个参数n,返回n的阶乘
      例如:cal(7) 计算7654321

    答案

    def func(a):
        for i in range(a,0,-1):
            for j in range(a-1,0,-1):
                i = i * j
            return i
    print(func(7))
    # 输出结果
    5054
    
    
    1. 写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组(选做题)
      例如:[(‘红心’,2),(‘草花’,2), …(‘黑桃’,‘A’)]

    答案

    l1 = ['A',2,3,4,5,6,7,8,9,10,'J','Q','K']
    l2 = ['红桃','方块','黑桃','梅花']
    l3 = []
    def func(*args):
        l3.append(args)
        return l3
    for j in l1:
        for i in l2:
            func(i,j)
    print(l3)
    # 输出结果
    [('红桃', 'A'), ('方块', 'A'), ('黑桃', 'A'), ('梅花', 'A'), ('红桃', 2), ('方块', 2), ('黑桃', 2), ('梅花', 2), ('红桃', 3), ('方块', 3), ('黑桃', 3), ('梅花', 3), ('红桃', 4), ('方块', 4), ('黑桃', 4), ('梅花', 4), ('红桃', 5), ('方块', 5), ('黑桃', 5), ('梅花', 5), ('红桃', 6), ('方块', 6), ('黑桃', 6), ('梅花', 6), ('红桃', 7), ('方块', 7), ('黑桃', 7), ('梅花', 7), ('红桃', 8), ('方块', 8), ('黑桃', 8), ('梅花', 8), ('红桃', 9), ('方块', 9), ('黑桃', 9), ('梅花', 9), ('红桃', 10), ('方块', 10), ('黑桃', 10), ('梅花', 10), ('红桃', 'J'), ('方块', 'J'), ('黑桃', 'J'), ('梅花', 'J'), ('红桃', 'Q'), ('方块', 'Q'), ('黑桃', 'Q'), ('梅花', 'Q'), ('红桃', 'K'), ('方块', 'K'), ('黑桃', 'K'), ('梅花', 'K')]
    
    
    1. 写代码完成99乘法表.(选做题,面试题)

    1 * 1 = 1

    2 * 1 = 2 2 * 2 = 4

    3 * 1 = 3 3 * 2 = 6 3 * 3 = 9

    ......

    9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81

    答案

    def func(a,b):
        for i in range(a,b):
            for j in range(1,i+1):
                print(f"{i}*{j}={i*j}",end=' ')
            print(' ')
    func(1,10)
    # 结果
    
    1*1=1  
    2*1=2 2*2=4  
    3*1=3 3*2=6 3*3=9  
    4*1=4 4*2=8 4*3=12 4*4=16  
    5*1=5 5*2=10 5*3=15 5*4=20 5*5=25  
    6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36  
    7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49  
    8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64  
    9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81  
    
    
  • 相关阅读:
    leetcode18
    CSS 1. 选择器
    HTML
    练习题|MySQL
    练习题||并发编程
    第八章| 3. MyAQL数据库|Navicat工具与pymysql模块 | 内置功能 | 索引原理
    mysql练习
    第八章| 2. MySQL数据库|数据操作| 权限管理
    第八章| 1. MySQL数据库|库操作|表操作
    第七章|7.4并发编程| I/O模型
  • 原文地址:https://www.cnblogs.com/zanao/p/11061748.html
Copyright © 2020-2023  润新知