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

    1.写函数:

    根据范围获取其中3和7整除的所有数的和,并返回调用者:

    符合条件的数字个数以及符合条件的数字的总和,如:def func(start,end):

    def func(start,end):
        count=0
        s=0
        for i in range(start,end):
            if  i%3==0 and i%7==0:
                count+=1
                s+=i
                print(i)
        return s,count
    
    print(func(0,100))

    2.函数传递参数时,是引用还是复制值,并证明
    引用

    def test(a):
        print(id(a))
    b=1
    print(id(b))
    test(b)

    3.简述三元运算的书写格式以及应用场景
    变量=值1  if  条件1   else   值2

    将简单的条件判断精简写

    4.简述lambda表达式书写格式以及应用场景

    函数名=lambda 形参:功能      不写函数名也可以

    5.使用set集合获取两个列表l1=[11,22,33],l2=[22,33,44]中相同的元素集合 

    l1=[11,22,33]
    l2=[22,33,44]
    set(l1)&set(l2)

    6.定义函数统计一个字符串中大写字母、小写字母、数字的个数,并以字典为结果返回

    提示:可以用id进行判断

    d={'Al':0,'low':0,'num':0}
    def tongji(s):
        for i in s :
            if i.isupper():
                d.update(Al=d.get('Al')+1)
            elif i.islower():
                d.update(low=d.get('low') + 1)
            elif i.isnumeric():
                d.update(num=d.get('num')+1)
        return d
    
    t=tongji('Manuel123')
    print(t)

    7.简述函数的位置参数、关键字参数、默认参数、可变长参数的特点以及注意事项
    位置参数:按形参的位置传入的参数叫位置参数,即普通参数

    关键字参数:传入实参时指定形参的值

    默认参数:形参直接指定默认值的参数

    可变长参数:*args,**kwargs,一个*只能接收没有位置参数的实参或传入的列表、元组,两个*可以接收关键字参数和字典格式

    8.检查代码,如有错误请改正:

    a.

    def func(x,y,z):

      print(x,y,z)

    func(1,2,3)

    >>>1,2,3

    b.

    def func(x,z,y=5)

      print(x,y,z)

    func(1,3,3)

    >>>1,3,3

    c.

    def func(x,y,*z):

      print(x,y,z)

    func(1,2,3,4,5,6)

    >>>1,2,(3,4,5,6,)

    d.

    def func(x,y,*z):

      print(x,y,z)

    func(1,2,3,4,5,6,6)

    >>>1,2,(3,4,5,6,6,)

    e.

    def func(x,*z,**y):

      print(x,y,z)

    func(1,2,3)

    >>>1,(2,3,)

    f.

    def func(x,*y,**z):

      print(x,y,z)

    func(1,name=2,age=3)

    >>>1,(),{'name':2,'age':3}

    g.

    def func(x=2,*y,**z):

      pirnt(x,y,z)

    func(name=2,age=3)

    >>>2,(),{'name':2,'age':3}

    h.

    def func(*y,**z):

      print(y,z)

    func([1,2,3,4,5])

    >>>([1,2,3,4,5],){}

    i.

    def func(*y,**z):

      print()

    func(*[1,2,3,4,5])

    >>>(1,2,3,4,5,){}

    j.

    def func(*y,**z):

      print(y,z)

    func(*[1,2,3,4,5],name='alex',age=19)

    >>>(1,2,3,4,5,){'name':'alex','age':19}

    k.

    def func(*y,**z):

      pirnt(y,z)

    func(*[1,2,3,4,5],{'name':'alex','age':19})

    >>>(1,2,3,4,5,{'name':'alex','age':19}){}

    l.

    def func(*y,**z):

      pirnt(y,z)

    func(*[1,2,3,4,5],**{'name':'alex','age':19})

    >>>(1,2,3,4,5,){'name':'alex','age':19}

     m.

    b='oldboy%d%%'%(12,)

    print(b)

    >>>oldboy12%

     9.简述对象和类的关系

    如果值是某类型,那这个值就是这个类的对象

    10.内置函数all和any的区别

    all如果为空,则为真,如果非空,全真则为真

    any有一个为真则为真

    11.简述文件打开模式‘r’和‘rb’的区别

    ‘r’:只读模式,解码方式默认为‘utf-8’

    ‘rb’:以二进制方式读文件,通常处理非txt文件

    12.将‘老男人’转换成utf-8编码的字节类型

    a='老男人'
    
    b=a.encode('utf8')
    c=bytes(a,'utf8')
    print(b)
    print(c)

    13.利用内置函数zip,实现功能
    l1=['alex',1,2,3,4],l2=['is',1,2,3],l3=['sb',2,5,6]

    获取字符串s='alex_is_sb'

    l1=['alex',1,2,3,4]
    l2=['is',1,2,3]
    l3=['sb',2,5,6]
    s=zip(l1,l2,l3)
    a='_'.join(list(s)[0])
    print(a)

     14.检查代码,写出运行结果

    a.

    name='alex'
    def outer(func):
        name='bili'
        func()
    def show():
        print(name)#这里的name是全局的name,不是outer里面的name
    outer(show)

    >>>alex

    b.

    name='alex'
    def outer():
        name='bili'
        def inner():
            print(name)#这里的name是outer里的name,不是全局name
        return inner()
    ret=outer()
    print(ret)

    >>>bili
    None

    c.

    name='alex'
    def outer():
        name='bili'
        def inner():
            print(name)
        return inner
    ret=outer()
    ret()
    print(ret)
    result=ret()
    print(result)

    >>>bili

    inner内存地址

    bili

    None

    d.

    def outer(func,z,y):
        func(z)
    def show(x):
        return x*x
    ret=outer(show,9,23)
    print(ret)

    >>>None

    e.定义函数 实现阶乘

    def func(n):
        res=1
        for i in range(n,1,-1):
            res=res*i
        return res
    print(func(8))
    #方法二:递归
    def func(n):
        if  n==1:
            return 1
        return n*func(n-1)
    print(func(8))
    #方法三:
    from functools import reduce
    print(reduce(lambda x,y:x*y,range(1,5)))

    15.写程序:利用with实现同时打开两个文件(一写,一读,并将读取的内容写入到写入模式的文件中)

    with open('a','r') as x,open('b','w')as y:
        y.write(x.read())


     

  • 相关阅读:
    Java+seleinum+testng框架UI自动化测试环境搭建--第一节
    linux常用命令
    Linux下定时任务的查看及取消
    WampServer环境安装
    Airtest断言方法
    Pycharm创建模板头部默认
    QPS/TPS简介
    简易全文搜索引擎设计
    如何在linux下检测内存泄漏
    箱线图(boxplot)简介与举例
  • 原文地址:https://www.cnblogs.com/Manuel/p/10595592.html
Copyright © 2011-2022 走看看