吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 627|回复: 4
收起左侧

[学习记录] Python学习日记Day3:Python函数

[复制链接]
木头127 发表于 2022-3-27 20:47
本帖最后由 木头127 于 2022-3-27 21:06 编辑

Python函数和类

一、Python函数

任何程序里面包含的不是函数就是类,Python也是如此。

  1. 函数的定义

函数的作用有两个:①模块化编程     ②代码重用

函数是独立的,完成特定功能的代码段,在Python程序中,所有的一切都是函数,大多数是有名函数,也存在匿名函数。

#函数的基本语法:
def 函数名称([参数1,参数2,.....]):  #这里的参数是形式参数
    函数体
    ...
    [return 返回值] 
#尽量使用return来进行函数值的返回
  1. 函数的参数(形参和实参)
    在函数定义和调用的时候,我们能根据自己的需求来实现参数的传递,函数的参数有两种形式:形参和实参。
    形参:在函数定义的时候,括号中所编写的参数成为形式参数。
    实参:在函数调用的时候,传递的参数成为实际参数
    def hello(name):#name是定义时所编的形式参数,这里name是局部变量
    return name
    mingzi  ='Mrzhang'
    greet(mingzi)#函数调用时,括号内传递的是实际参数
    函数的参数类型:位置参数、关键词参数、缺省参数,不定长参数、
    在函数定义时,我们可以定义多个参数,但是在函数调用时,我们也应该传递多个参数,正常情况下,要一一对应。
    位置参数:
    def student(name,age,mobile):
    print(f'学生的名字交{name},今年{age}岁了,联系方式是{mobile}')

    传递实参要一一对应

    student('zhangsan',20,'1310389090')

    顺序不能颠倒,否则意思就会改变,所以该参数也叫位置参数

    关键词参数:
    def student(name,age,mobile):
    print(f'学生的名字交{name},今年{age}岁了,联系方式是{mobile}')

    传递实参要一一对应

    student(name='zhangsan',age=20,mobile='1310389090')

    通过键=值的形式指定内容,让函数更加清晰,即使位置改变,意思也不会改变。

    缺省参数:也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可以不穿该默认值。
    注意:定义缺省参数时,一定要把它卸载参数列表的最后面。
    def student(name,age,gender='male'):
    print(f'学生的名字交{name},今年{age}岁了,联系方式是{mobile}')

    传递实参要一一对应

    student('zhangsan',20)
    student('lisi',21,female)
    student('wanger',18)
    不定长参数:也叫可变参数

    用于不确定调用的时候会传递多少个参数(无参数也可)的场景

    分为包裹位置和包裹关键字参数

    包裹位置参数

    def student(*args):#args 元组类型数据对传递参数有顺序要求
    print(f'学生的名字交{name},今年{age}岁了,联系方式是{mobile}')
    student('zhangsan',20,'1310389090')

    包裹关键字参数

    def student(**kwargs):

    kw=keyword+args

    #kwargs字典类型数据,对传递参数没有顺序要求,格式要求key=value
        print(f'学生的名字交{kwargs["name"],今年{kwargs["age"]岁了,联系方式是{kwargs["mobile"]}')      

    Python组包:把多个数据组成元组或字典的过程。无论是包裹位置传递还是包裹关键字传递,都是一个组包的过程。

  2. Python拆包(元组和字典)
    拆包:对于函数中的多个返回数据,去掉元组,列表或者字典 ,直接获取里面数据的过程。

    元组的拆包过程

    def func():
    return 100,200 #返回多个值,使用tuple元组类型数据

    定义两个变量接受元组中的每个数组进行拆包

    num1,num2=func()
    print(num1)
    print(num2)

    结果为 100 ,200

    字典的拆包过程

    dict1 = {'name':'小明', 'age':18}
    a, b = dict1
    print(a)
    print(b)

    获取字典中的数据

    print(dict1[a])
    print(dict1[b])

  3. 函数的变量(局部变量和全局变量)
    在Python中,定义在函数外部的变量称之为全局变量;定义在函数内部的变量称之为局部变量。

    全局变量作用范围:在整个程序范围内都可以直接使用

    局部变量作用范围:在函数调用的过程中,开始定义,函数运行的过程中生效,执行完毕之后,进行销毁。(可以了解Python的垃圾回收机制)

    num=1
    def func():
    i=1

    num 为全局变量,i为局部变量

    思考:能不能在局部作用域中对全局变量进行更改?
    答:global关键字
    num=10
    def funca():
    global num

    若没有这一句,输出的num会等于 10,并没有更改全局变量

       num =20

    funca()
    print(num)

    global关键字可以用于多函数之间的数据共享

  4. 关于return返回值问题:
    (1)如果一个函数有两个return,程序如何执行?
    def return_text():
    return 1
    return 2
    reslut=return_text()
    print(result)

    结果是返回 1 ,因为return可以退出当前函数,第一个return下面的代码就不执行了

    (2)如果一个一个函数有多个返回值,该如何书写?
    def return_text():
    return 1,2
    result=return_text()
    print(result)

    在python中,一个函数只能返回一个结果,如果想要返回多个结果,可以使用元组的形式,在学习元组时也有讲到过,元组可以返回多个值。

    可以查看结果类型,type(result)

  5. 函数的调用:
    在Python中函数和变量一样,都是先定义后进行调用

    基本语法:

    def hello(name):
    return name+',hello!'
    result=hello('Mrzhang') #直接使用函数名进行调用,赋值给str
    print(result)

    打印结果

  6. 函数的嵌套
    函数的嵌套调用:一个函数里面又调用了另外一个函数。
    Python代码执行遵循一个顺序原则: 从上往下,从左往右,一行一行地执行。
    def funcA():
    print('this is function A.')
    def funcB():
    print('' 40) # 可以打印40个
    print('this is function B')
    funcA()
    print('
    ' * 40)
    funcB()

    代码运行顺序(按照行数):1 3 8 4 5 6 2 7

    代码执行流程:
    执行第1行时仅仅定义了funcA函数,内部代码没有执行,跳过第2行继续执行,
    执行到第3行,定义funcB函数,并没有真正的调用和执行。
    代码跳到第8行,funcB函数,调用funcB并且执行内部代码,程序返回第4行
    执行第4行,打印字符,并继续执行,直到第6行调用函数funcA(),跳到第2行。
    第二行执行完毕后,返回funcB,继续第7行,打印字符串。

  7. Python的内置函数:
    内置函数无须从模块中导入,也不用定义 就可以直接在任意位置直接调用。

    一些常用的内置函数

    abs(-1):求绝对值,返回1
    max([1,2,3]):求序列中最大值,可以是列表或元组
    min(2,3,4):求序列中最小值,可以是列表或元组
    divmod(6,3):取模,返回一个元组,包含商和余数
    int(3.9):转换成整数,去尾转换,结果为3
    float(3):转换成浮点数
    str(123):转换成字符串
    list((1,2)):元组转换为列表
    tuple([1,2]):列表转换成元组
    len([1,3,5]):求序列长度,可以是列表或元组

9.Python文件操作方法(读写)

open函数负责新建、打开文件,并返回操作对象。

read方法将文件内容读取到内存。

write方法将指定内容写入文件

close方法关闭文件,open文件后必须有close文件。

#open函数的语法
open(filename[,mode,encoding=])
'''
filename 要打开或新建的文件地址或者名称,字符串形式,例如 text.txt 或者E:/python/text.txt
mode 文件访问模式,只读,只写,读写等等,可选参数,有参数列表,默认模式为只读
encoding= 编码解码的标准,如果文件中包含中文信息,需要制定encoding=utf-8

'''
实例:
f=open('test.txt','a+',encoding='utf-8')
data=f.write('Hello World')
read=f.read()
print(read)

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
葫芦不是瓢 + 2 + 1 跟着楼主学python

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 木头127 发表于 2022-3-27 21:06
预览的时候好好的,提交完内容就变得错乱了
 楼主| 木头127 发表于 2022-3-27 22:16
头像被屏蔽
xiadongming 发表于 2022-3-27 22:41
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 14:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表