• 多测师肖sir_高级金牌讲师_python之函数007


    python之函数

    一、什么是函数
    (1)定义:函数是组织好的,可重复使用的,用来实现单一,或相关联功能 的代码段。
    (2)python的结构,(函数写在.py文件下)
    在这里插入图片描述
    在这里插入图片描述

    (3)函数的优点:
    1、降低代码冗余
    2、增加代码的复用性,提高开发效率
    3、提高程序拓展性
    4、函数有两个阶段:定义阶段,调用阶段
    定义时:只检查函数体内代码语法,不执行函数体内代码
    调用方便
    5、封装:就是把代码片段放在函数当中

    二、函数的使用

    1、自定义函数
    自定义函数:自己根据业务需求自己封装的函数

    2、如何定义一个函数(自定义函数)
    1、可以使用def关键字来创建Python自定义函数,
    格式:
    def 函数名(参数列表)
    函数体
    函数名() #调用函数
    案例1:
    def func():
    print(“1”)
    def func2():
    print(2)
    def func3():
    print(3)
    def func4():
    print(4)
    备注: def 函数名()英文括号 :
    tab 就是4小格
    函数体
    函数名() #调用函数

    在这里插入图片描述

    2、函数的调用有三种方法:
    主函数的解释: 解释: if name == ‘main’: 是函数的入口,也称为主函数 name 是当前模块名,当模块被直接运行时模块名为 main ,这句话的 意思就是,当模块被直接运行时,以下代码块将被运行,当模块是被导入时, 代码块不被运行

    (1)在本模块直接调用
    函数名()
    在这里插入图片描述
    (2)main的调用方法
    if name == ‘main’:
    main底下不能为空
    用pass来占位
    在这里插入图片描述

    (3)不同模块的调用函数
    ss文件:

    def a():
    print(“杭州多测师”)
    print(“上海多测师”)
    def b():
    print(“深圳多测师”)
    print(“广州多测师”)
    def c():
    print(“武汉多测师”)
    print(“成都多测师”)
    cc文件:
    from hz1201.ss import *

    a()
    在这里插入图片描述
    (3)
    ss文件
    在这里插入图片描述
    cc文件
    在这里插入图片描述
    案例:
    在这里插入图片描述
    在这里插入图片描述

    ===============
    三、函数中的参数

    (1)函数中无参数

    def  hs():
        print(1)
    hs()
    
    • 1
    • 2
    • 3

    (2)函数中有单个参数
    def ss(a):
    print(a)
    ss(2)
    在这里插入图片描述

    (3)函数中有多个参数
    def ss(a,b):
    print(a+b)
    ss(1,2)
    在这里插入图片描述

    (4)函数定义时带上默认参数(缺省参数)
    def ss(a,b=1):
    print(a+b)
    ss(2,2)
    在这里插入图片描述
    注意:
    传入参数优先级要高于默认参数

    (4)可变长参数中的可变长元组 ""表示的是可变长元组(
    def ss(*a):
    print(a)
    ss(2,2,3,4,6,7) #结果(2, 2, 3, 4, 6, 7)
    在这里插入图片描述

    (5)当普通参数和可变长元组在一起,普通参数在前,可变长元组在后
    def ss(b,*a):
    print(b,a)
    ss(“a”,2,2,3,4,6,7)
    在这里插入图片描述

    (6)可变长参数中的可变长字典 ""表示的是可变长字典(
    (1)传可变长字典
    def ss(**a):
    print(a)
    ss(name=“cy”,age=18,sex=“男”)
    在这里插入图片描述

    (2)可变长字典和普通参数
    def func(a,**dict):
    print(a)
    print(dict)
    func(‘ss’,name=‘zs’,age=“18”)

    在这里插入图片描述

    (3)可变长字典和可变长元组
    def ss(*b,**a):
    print(b)
    print(a)
    ss(1,2,3,4,name=“cy”,age=18,sex=“男”)
    在这里插入图片描述

    (4)普通参数和可变长字典和可变长元组
    def func(a,*b,**dict):
    print(a)
    print(b)
    print(dict)
    func(‘ss’,1,2,3,name=‘zs’,age=“18”)
    在这里插入图片描述
    直接调用变量(列表,元组,字典)
    list=[1,2,3,4]
    tuple=(5,6,7,8)
    dict={“name”:‘zs’,‘age’:‘18’}
    def func(a):
    print(a)
    func(list)
    func(tuple)
    func(dict)
    在这里插入图片描述

    ===============
    四、函数的变量和作用域
    全局变量:函数的变量和作用域
    局部变量:在函数中也可以定义变量,在函数中定义的变量被称之为局部变量,局部变量 只在定义它的函数内部有效
    优先级:局部变量>global 全局变量>全局变量

    案例1:

    a1=100 #全局变量
    def  func():
        a1=10  #局部变量
        print(a1)
    def func1():
        print(a1)
    func()
    func1()
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    在这里插入图片描述

    案例2:
    global 将局部变量设置成全局变量,
    global 全局变量优先级高于 直接定义的全局变量

    a1=100 #全局变量
    def  func():
       global a1#通过global将局部变量变成全局变量
       a1=10
       print(a1)
    def func1():
        print(a1)
    func()
    func1()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    =====================
    五、函数的返回值
    Python中,用 def 语句创建函数时,可以用 return 语句指定应该返回的值, 该返回值可以是任意类型。需要注意的是,return 语句在同一函数中可以出 现多次,但只要有一个得到执行,就会直接结束函数的执行。 函数中,使用 return 语句的语法格式如下: return [返回值] 其中,返回值参数可以指定,也可以省略不写(将返回空值 None)

    返回值的作用
    1、在程序开发中,有时候会希望一个函数执行程序结束后,告诉 调用者一个结果,以便调用者针对具体的结果做后续的处理。
    2、返回值是函数完成工作后,最后给到调用者的一个结果。
    3、在函数中使用return关键字可以返回结果。
    4、调用函数的一方可以使用变量来接收函数的返回结果
    案例:
    def func():
    a1=100/2
    return a1 #返回值

    def func1():
    s=func() #使用变量s来接收函数的返回结果
    c=s+1
    print©
    #func()
    func1()

    在这里插入图片描述

    print 打印出来的结果;
    return 返回的就一个值

    ==============================
    返回值作业:

    返回值实战练习
    需求:登录银行系统并显示余额,有两个功能第一个是登录,第二个是登录后显示余额,先登录然后根据登录是否成功然后是否显示余额。
    分析思路:如果想查询到余额,前提必须登录,所以现在我们用两个函数来处理,第一个函数实现登录,第二个函数实现余额查询,调用第一个函数得到的结果给第二个函数,然后第二个函数根据结果进行代码处理。

    案例1:
    import time
    import getpass
    dict1 = {‘账号’: ‘admin’, ‘密码’: ‘123456’, ‘余额’: 998001}
    name = input(‘请输入账号:’)
    password = input(‘请输密码:’)
    if name == ‘admin’ and password == ‘123456’:
    print(‘登录成功!’)
    time.sleep(1)

    def yue():
        return dict1['余额']
    
    yue1 = yue()
    print(f"当前余额为:{yue1}")
    
    • 1
    • 2
    • 3
    • 4
    • 5

    else:
    print(‘用户名或密码错误!’)
    案例2:

    m = 100000
    def login():
        username = input('请输入用户名:')
        password = input('请输入密码:')
        if username == 'admin':
            if password == '123456':
                return 0
        else:
            return 1
    def money():
        if login() == 0:
            print('登录成功!余额为:',m)
        else:
            print('登录失败,请重试!')
    money()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    案例2:

    def login():
        while 1:
            username = input("请输入用户名:")
            password = input("请输入密码:")
    
            if username == "admin" and password == "123456":
                return 1
            else:
                ch = input("用户名或密码错误,请重新输入用户名和密码,按 q 退出登录或其他任意键继续:")
                if ch == "q":
                    break
    
    
    def bank():
        while 1:
            login_y = login()
    
            if login_y:
                print("登录成功!")
                incom = 10000
                print("您的余额为:", incom)
    
                ch = input("按'q'退出登录或其他任意键切换账号登录:")
                if ch.lower() == "q":
                    break
                else:
                    continue
            else:
                print("退出登录!")
                break
    if __name__ == '__main__':
        bank()
    ``
    方法3:
    
    ```python
    def dl():
        a=input('请输入账号:')
        if a=='zxw':
            b=input('请输入密码:')
            if b=='666':
                return '登录成功'
            else:
                return '密码错误,登录失败'
        else:
            return'账号错误,登录失败'
    def cx():
        s=dl()
        if s=='登录成功':
            print('余额100元')
        elif s== '密码错误,登录失败':
            print('密码错误请重新输入!')
        else:
            print('账号错误请重新输入')
    
    if __name__ == '__main__':
     cx()
    
    y=1
    def login():
        user=input("请输入用户名账号:")
        if user=="yinhang123":
            password=input("请输入密码:")
            if password=="123456":
                return y
            else:
                print("密码错误,退出")
                return 0
        else:
            print("用户名错误,退出")
            return 0
    def check():
        if login()==y:
            print("余额为123")
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76

    ===============================
    python内置函数在这里插入图片描述
    1、format函数
    format()函数是一种格式化字符串的函数 ,该函数增强了字符串格式化的功能。
    基本语法:是通过 {} 来代替以前的 %
    (1)不设置指定位置,按默认顺序
    案例1:
    hz=‘{}{}’.format(“dcs”,‘18’)
    print(hz) #dcs18

    在这里插入图片描述

    案例2:
    hz1=‘{}’.format(“dcs”,‘18’)
    print(hz1) #dcs

    2、设置指定索引位置输出 备注:索引从0开始,
    案例1:
    h=‘{1}{0}’.format(“dcs”,‘18’)
    print(h) #18dcs
    在这里插入图片描述

    3、设置参数输出

    案例21:
    a=“姓名:{name},年龄:{age}”.format(name=“duoceshi”,age=18)
    print(a)
    在这里插入图片描述

    4、对列表进行格式化
    案例1:
    list=[1,2]
    print(“排名:{0[0]},奖励:{0[1]}”.format(list))
    在这里插入图片描述

    案例2:
    list4=[“dcs”,“hz”] #列表的索引0
    list5=[“1”,“2”] ##列表的索引1
    list6=[“3”,“4”] ##列表的索引2
    print(“公司:{2[0]},地址:{1[1]}”.format(list4,list5,list6))
    备注:大括号里面的0代表的是列表、中括号里面的0和1是列表元素对应的索引位

    案例:
    list=[1,2]
    list1=[3,4]
    print(“排名:{0[0]},奖励:{1[1]}”.format(list,list1))
    在这里插入图片描述

    5、对字典进行格式化 "**"表示可变长字典
    案例1:
    s={“name”:“dcs”,“wb”:“huawei”}
    hz1=(‘公司名称:{name},外包公司:{wb}’.format(**s))
    print(hz1)
    案例:

    dict1={‘name’:‘zs’,‘age’:‘18’}
    gs=(‘姓名:{name},年龄:{age}’).format(**dict1)
    print(gs)
    在这里插入图片描述

    ============================
    (2)zip函数
    定义:zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成 一个个元组,然后返回由这些元组组成的列表,如果各个迭代器的元素个 数不一致,则返回列表长度与最短的对象相同。
    (1)zip压缩
    案例1:(将两个列表装换成字典)
    list4=[“dcs”,“hz”] #列表的索引0
    list5=[“1”,“2”,“3”,“4”] ##列表的索引1
    c=zip(list4,list5)
    print(type©) #
    print© # zip对象
    s=dict©
    print(s)
    在这里插入图片描述
    在这里插入图片描述

    案例2:(将两个列表装换成元组)
    list=[1,2,5,6]
    list1=[3,4]
    c=zip(list,list1)
    tuple1=tuple©
    print(tuple1)

    在这里插入图片描述

    案例2:(将两个列表装换成列表)
    list4=[“dcs”,“hz”] #列表的索引0
    list5=[“1”,“2”,“3”,“4”] ##列表的索引1
    c=zip(list4,list5)
    print(type©) #
    print© # zip对象
    s=list©
    print(s)
    在这里插入图片描述

    (2)解压
    zip(*) zip压缩包
    案例1:先压缩在解压
    list4=[“dcs”,“hz”] #列表的索引0
    list5=[“1”,“2”,“3”,“4”] ##列表的索引1
    m,n=zip(*zip(list5,list4))
    print(m)
    print(n)

    案例:

    list1=[1,2,3,8,9] #0
    list2=[4,5,6] #1
    ys=zip(list1,list2)
    m,n=zip(*ys)
    print(list(ys))
    print(m)
    print(n)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述
    在这里插入图片描述

    ============================

    3、open函数

    open函数用于打开一个文就拿,创建一个file对象
    语法:语法:open(file, mode),模式有
    r(只读),
    w(写入覆盖),
    a(写入追加)

    • 表示 可以同时读写某个文件
      r+ 可读写文件
      w+ 写读
      a+ 同a

    在这里插入图片描述
    查看open函数用法:输入open,按住ctrl+鼠标点击open函数
    在这里插入图片描述
    查看open 的用法: 鼠标
    在这里插入图片描述

    案例1:(read读取文件所有内容)
    案例
    url=r"C:\Users\Administrator\PycharmProjects\dcshz12\hz1201\cc.py"
    f=open(url,“r”,encoding=“utf-8”)
    print(f.read()) #读取文件中所有的内容
    在读取中解决中文办法:添加encoding=“utf-8”)
    在这里插入图片描述

    案例2:(readline读取文件第一行)
    url=r"C:\Users\Administrator\PycharmProjects\dcshz12\hz1201\cc.py"
    f=open(url,“r”,encoding=“utf-8”)
    print(f.readline()) #读取文件中所有的内容
    案例3:readlines读取文件中所有的内容,并返回列表的格式
    url=r"C:\Users\Administrator\PycharmProjects\dcshz12\hz1201\cc.py"
    f=open(url,“r”,encoding=“utf-8”)
    print(f.readlines())
    在这里插入图片描述

    案例4:读取本地文件
    lj=r"D:\cd\abc.txt"
    m=open(lj,“r”,encoding=“utf-8”)
    print(m.read()) # 读取文章中所有的内容
    print(m.readline()) #读取文章中第一行内容 #print(1)
    print(s.readlines()) ## 读取文章中所有的内容,返回结果是一个列表
    #[‘print(1)\n’, ‘print(“中国”)\n’, ‘a=2\n’, ‘b=3\n’, ‘c=4\n’, ‘\n’, ‘\n’, ‘\n’]

    在这里插入图片描述

    二、写 w
    案例:写的模式:w(写入覆盖)
    url=“D:\dcs\多测师\hz.txt”
    f=open(url,“w”)
    f.write(“hhh,kkk”)
    f.close()
    在这里插入图片描述

    三、追加a
    案例:追加的模式:a(写入追加)
    url=“D:\dcs\多测师\hz.txt”
    f=open(url,“a”)
    f.write(“2222,1111”)
    f.close()
    在这里插入图片描述

    四、with open
    备注:用with语句的好处,就是到达语句末尾时,会自动关闭文件,即便出现异常
    案例:
    url=“D:\dcs\多测师\hz.txt”
    with open(url,“r”) as f:
    a=f.read()
    print(a)

    在这里插入图片描述

    =======================
    拓展:
    1、long 函数在python3中已删除
    long 将数字或字符转换成一个长整型
    2、len
    返回一个内容的长度
    语法:len(内容)
    内容:字符串,列表,字典,元组等
    案例1:计算字符串
    a=“abcdef”
    print(len(a)) #6
    案例2:计算列表
    b=[1,2,3]
    print(len(b)) #3
    案例3:计算字典
    c={“nmae”:“a”,“sex”:“男”}
    print(len©) #2
    案例4:计算元组
    d=(“a”,“b”,“c”)
    print(len(d)) #3
    在这里插入图片描述

    3、abs 绝对值
    案例:
    f=-1
    print(abs(f))
    4、sum求和
    案例:求出1-100的和
    print(sum(range(1,101))),
    5、id 函数返回对象唯一标识,标识的是一个整数
    案例
    a=-1
    b=[6,4,1,2,3]
    print(id(a)) #140719602754128
    print(id(b)) #2654254228104

    6、print(help(max)) 查看函数用法
    7、max函数
    案例:
    b=[6,4,1,2,3]
    print(max(b)) #6
    8、min函数
    b=[6,4,1,2,3]
    print(min(b) #1

    在这里插入图片描述
    9、help 函数用于查看函数或模块用途的详细说明
    help()
    print(help(max)) 显示帮助信息
    在这里插入图片描述
    10、int 函数是将一个串或数字转换为整型
    a=‘1234’
    print(type(a))
    b=int(a)
    print(type(b)
    在这里插入图片描述
    11、str ()函数将对象转化为适于人阅读的方式:返回对象string 格式
    在这里插入图片描述
    12、

  • 相关阅读:
    高效Java《Effective Java》3rd原文学习笔记-精华版(一)
    数据指标体系建设思路
    Routing路径系列数学建模(TSP+CVRP)
    声明式事务
    Swin Transformer 论文精读,并解析其模型结构
    Java多线程/总述
    ava面试八股文-基础概念二
    Vioovi ECRS工时分析软件:实现生产线平衡的有效工具
    数据结构——二叉树1
    文献学习01_Attention Is All You Need_20221119
  • 原文地址:https://blog.csdn.net/m0_47403059/article/details/133821153