zoukankan      html  css  js  c++  java
  • python练习题-day10

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

    2、写函数,接收n个数字,求这些参数数字的和。(动态传参)

    def fun(*args):
        sum=0
        for i in args:
            sum+=i
        return sum

    3、读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么?

    a=10
    b=20
    def test5(a,b):
        print(a,b)
    c = test5(b,a)
    print(c)

    ans: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)

    ans:a=5 b=3 c=None

    5、写函数,传入函数中多个实参(均为可迭代对象如字符串,列表,元祖,集合等),将每个实参的每个元素依次添加到
    函数的动态参数args里面.
    例如 传入函数两个参数[1,2,3] (22,33)最终args为(1,2,3,22,33)

    def fun(*args):
        return args
    print(fun(*('a','v','b'),*['a',"c"]))

    6、写函数,传入函数中多个实参(实参均为字典),将每个实参的键值对依次添加到函数的动态参数kwargs里面.

    例如 传入函数两个参数{‘name’:’alex’} {‘age’:1000}最终kwargs为{‘name’:’alex’ ,‘age’:1000}

    def fun(*kwargs):
        dic={}
        for i in kwargs:
            dic.update(eval(i))
        kwargs=dic
        return kwargs

    7、下面代码成立么?如果不成立为什么报错?怎么解决?

    7.1
    a = 2
    def wrapper():
      print(a)
    wrapper()

    2
    7.2
    a = 2
    def wrapper():
      a += 1
      print(a)
    wrapper()

    ans:global a

    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()

    解决办法  a += 1   前面添加:nonlocal a

    8、写函数,接收两个数字参数,将较小的数字返回.

    def hanshu(a,b):
        return a if a>b else b
    print(hanshu(1,2))

    9、写函数,接收一个参数(此参数类型必须是可迭代对象),将可迭代对象的每个元素以’_’相连接,形成新的字符

    串,并返回.
    例如 传入的可迭代对象为[1,'老男孩','武sir']返回的结果为’1_老男孩_武sir’

    def hanshu(*args):
        lst = []
        for i in args:
            lst.append(str(i))
        s = "_".join(lst)
        return s

    10、写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值}

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

    def fun(*args):
        li=[]
        for i in args:
            li.append(i)
        li.sort()
        return {"max":li[-1],"min":li[0]}

    11、写函数,传入一个参数n,返回n的阶乘

    例如:cal(7) 计算7*6*5*4*3*2*1

    def cal(a):
        sum=1
        while a>0:
            sum*=a
            a-=1
        return sum

    12、写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组

    例如:[(‘红心’,2),(‘草花’,2), …(‘黑桃’,‘A’)]

    def poker():
        li=[]
        for i in ("黑桃","红心","梅花","方块"):
            for j in (2,3,4,5,6,7,8,9,10,"J","Q","K","A"):
                li.append((i,j))
        return li

    13、有如下函数:

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

    def wrapper():
        def inner():
            print(666)
        inner()
    wrapper()
    def wrapper():
        def inner():
            print(666)
        return inner()
    wrapper()

    14、相关面试题(先从纸上写好答案,然后在运行):

    1,有函数定义如下:
    def calc(a,b,c,d=1,e=2):
      return (a+b)*(c-d)+e
    请分别写出下列标号代码的输出结果,如果出错请写出Error。
    print(calc(1,2,3,4,5))_____
    print(calc(1,2))____
    print(calc(e=4,c=5,a=2,b=3))___
    print(calc(1,2,3))___
    print(calc(1,2,3,e=4))____
    print(calc(1,2,3,d=5,4))_____
    2,(此题有坑)下面代码打印的结果分别是_________,________,________.
    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)

    ans:2 error 24 8 10 error

    [10,"a"],[123],[10,"a"]

    3、完成9*9乘法表

    for i in range(1,10):
        for j in range(1,i+1):
            print("%sx%s=%s"%(i,j,i*j),end=" ")
        print(end="
    ")
     
  • 相关阅读:
    大话重构连载首页
    大话重构连载19:大对象的演化过程
    大话重构连载18:最常见的问题
    大话重构连载17:抽取方法的实践
    大话重构连载16:超级大函数
    大话重构连载15:采用Mock技术完成测试
    大话重构连载14:我们是这样自动化测试的
    大话重构连载13:自动化测试——想说爱你不容易
    大话重构连载12:你不能没有保险索
    大话重构连载11:小步快跑是这样玩的
  • 原文地址:https://www.cnblogs.com/fumy/p/10345044.html
Copyright © 2011-2022 走看看