• Python全栈学习_day010作业


    1,继续整理函数相关知识点,写博客。

    2,写函数,接收n个数字,求这些参数数字的和。(动态传参)
    def MySum(*args):
    sum = 0
    for i in range(len(args)):
    sum += args[i]
    return sum

    3,读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么?
    a=10
    b=20
    def test5(a,b):
    print(a,b)
    c = test5(b,a)
    print(c)
    结果:
    a = 20
    b = 10
    c = None

    4,读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么?
    a=10
    b=20
    def test5(a,b):
    a=3
    b=5
    print(a,b)
    c = test5(b,a)
    print(c)
    结果:
    a = 3
    b = 5
    c = None
    5,写函数,传入函数中多个实参(均为可迭代对象如字符串,列表,元祖,集合等),将每个实参的每个元素依次添加到函数的动态参数args里面.
    例如 传入函数两个参数[1,2,3] (22,33)最终args为(1,2,3,22,33)
    1.
    def func1(*args):
    return args
    print(func1(*[1, 2, 3], *(22, 33), *['alex', 'BlameK']))
    2.
    def func1(*args):
    lis = []
    for i in range(len(args)):
    for j in range(len(args[i])):
    lis.append(args[i][j])
    args = tuple(lis)
    return args

    6,写函数,传入函数中多个实参(实参均为字典),将每个实参的键值对依次添加到函数的动态参数kwargs里面.
    例如 传入函数两个参数{‘name’:’alex’} {‘age’:1000}最终kwargs为{‘name’:’alex’ ,‘age’:1000}
    def func1(**kwargs):
    return kwargs
    print(func1(**{'name':'alex'}, **{'age':100}))

    7, 下面代码成立么?如果不成立为什么报错?怎么解决?
    7.1
    a = 2
    def wrapper():
    print(a)
    wrapper()
    结果:
    2
    成立

    7.2
    a = 2
    def wrapper():
    a += 1
    print(a)
    wrapper()
    结果:
    报错
    不成立,局部变量不能修改全局变量,更改:
    a = 2
    def wrapper():
    global a
    a += 1
    print(a)
    wrapper()

    7.3
    def wrapper():
    a = 1
    def inner():
    print(a)
    inner()
    wrapper()
    结果:
    1
    成立

    7.4
    def wrapper():
    a = 1
    def inner():
    a += 1
    print(a)
    inner()
    wrapper()
    结果:
    报错
    不成立,子函数不能修改父函数的变量,更改
    def wrapper():
    a = 1
    def inner():
    nonlocal a
    a += 1
    print(a)
    inner()
    wrapper()


    8,写函数,接收两个数字参数,将较小的数字返回.
    def MyMin(a, b):
    return a if a < b else b


    9,写函数,接收一个参数(此参数类型必须是可迭代对象),将可迭代对象的每个元素以’_’相连接,形成新的字符串,并返回.
    例如 传入的可迭代对象为[1,'老男孩','武sir']返回的结果为’1_老男孩_武sir’
    def MyJoin(a):
    for i in range(len(a)):
    a[i] = str(a[i])
    return '_'.join(a)


    10,写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值}
    例如:min_max(2,5,7,8,4) 返回:{‘max’:8,’min’:2}(此题用到max(),min()内置函数)
    def MaxMin(*args):
    dic = {'max':max(args), 'min':min(args)}
    return dic

    11,写函数,传入一个参数n,返回n的阶乘
    例如:cal(7) 计算7*6*5*4*3*2*1
    def cal(n):
    s = 1
    while n > 0:
    s = s * n
    n -= 1
    return s

    12写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组(升级题)
    例如:[(‘红桃’,2),(‘梅花’,2), …(‘黑桃’,‘A’)]
    def cards():
    '''
    扑克牌列表
    :return: 扑克牌列表
    '''
    lis = []
    card = ['黑桃', '红桃', '方块', '梅花']
    dic = {'1': 'A', '11': 'J', '12': 'Q', '13': 'K'}
    for i in range(len(card)):
    for j in range(1, 14):
    if 1 < j < 11:
    lis.append((card[i], j))
    else:
    lis.append((card[i], dic[str(j)]))
    return lis


    13 有如下函数:
    def wrapper():
    def inner():
    print(666)
    wrapper()

    你可以任意添加代码,用两种或以上的方法,执行inner函数.
    1.
    def wrapper():
    def inner():
    print(666)
    inner()
    wrapper()
    2.
    def wrapper():
    def inner():
    print(666)
    return inner()
    wrapper()


    明日默写:
    1,形参的接收顺序。
    2,什么是命名空间,什么是全局名称空间,什么是局部名称空间,什么是内置名称空间。
    3,什么是全局作用域,什么是局部作用域。
    4,名称空间的加载顺序,取值顺序。
    5,解释一下什么是global,什么是nonlocal。

  • 相关阅读:
    UVA 11488 Hyper Prefix Sets (字典树)
    UVALive 3295 Counting Triangles
    POJ 2752 Seek the Name, Seek the Fame (KMP)
    UVA 11584 Partitioning by Palindromes (字符串区间dp)
    UVA 11100 The Trip, 2007 (贪心)
    JXNU暑期选拔赛
    计蒜客---N的-2进制表示
    计蒜客---线段的总长
    计蒜客---最大质因数
    JustOj 2009: P1016 (dp)
  • 原文地址:https://www.cnblogs.com/lpgit/p/9985735.html
Copyright © 2020-2023  润新知