欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python day10

程序员文章站 2024-02-24 14:56:40
...

Python day10

函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

定义函数

函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号 : 起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。


def 函数名(参数列表):
    函数体
 

函数调用

先通过函数名定位到函数的内存地址
函数内存地址()->触发函数体代码的运行
强调:调用函数才会执行函数体代码

无参函数

def func():
    print("123")
    print("234")
    print("345")
​
func()#调用无参函数

有参函数的返回值

x = int(input("请输入数字1"))
y = int(input("请输入数字2"))
def addition(a, b):
    return a+b
print(addition(x,y))

空函数

主要用于在设计代码结构的时候使编译器不报错

def login():
	pass

参数

参数总体分为两大类:
形参:在函数定义阶段括号内指定的参数,称之为形式参数,简称形参-》变量名
实参:在函数调用阶段括号内传入的值,称之为实际参数,简称实参-》变量的值

形参

位置形参:在定义函数时,按照从左到右的顺序依次定义的变量名,称之为位置形参
特点:每次调用,必须被赋值


 def func(name,age):
     print(name)
     print(age)

默认形参:在定义函数时,就已经为某个形参赋值了,称之为默认形参
特点:调用函数时,可以不用为其赋值


 def func(name,age=18):
     print(name)
     print(age)
 func("zhangsan")
 func("zhangsan",19)

注意! 位置形参与默认形参可以混用,但是
1、位置形参必须在前面
2、默认形参的值通常应该是不可变类型
3、默认形参的值是在函数定义阶段赋值的

实参

位置实参:在调用函数时,按照从左到右的顺序依次传入的值,称之为位置实参
特点:按照位置为形参赋值,一一对应

 def func(name,age):
    print(name)
    print(age)
func("zhangsan",18)

关键字实参:在调用函数时,按照key=value的形式传值,称之为关键字实参
特点:可以打乱顺序,但是仍然能够指定道姓地为指定的形参赋值

def func(age, name):
  print(name)
  print(age)
func(name="zhangsan", age= 18)

注意!位置实参与关键字实参可以混用,但是位置实参必须在关键字实参的前面,且不能为同一形参重复赋值。

可变长参数

可变长参数指的是在调用函数时,传入的实参个数不固定,对应着必须有特殊形式的形参来接收溢出的实参

实参接收有两种方法

​ 溢出的位置实参—>*

​ 溢出的位置关键字实参—>**

*在形参中的应用:*会将溢出的位置实参合并成一个元组,然后赋值给紧跟其后的那个形参名

def func(x,*args): 
    print(x)#1
    print(args)# (2,3,4,5)

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

**在形参中的应用:**会将溢出的关键字实参合并成一个字典,然后赋值给紧跟其后的那个形参名

def func(x,**y):
    print(x)#1
    print(kwargs)# {"a":2,"c":4,"b":3}

func(1,a=2,b=3,c=4)

*在实参中的应用:*后可以跟可以被for循环遍历的任意类型,*会将紧跟其后的那个值打散成位置实参

def func(x,y,z):
    print(x)#11
    print(y)#22
    print(z)#33

func(*[11,22,33])

**在实参中的应用:**只能跟字典类型,**会将字典打散成关键字实参

def func(name,age,sex):
    print(name)#zhangsan
    print(age)#18
    print(sex)#man

func(**{"name":"zhangsan","sex":"man","age":18})

命名关键字形参: 在*与**中间的形参称之为命名关键字形参
特点: 必须按照key=value的形式传值

def func(x,m=333,*args,y=222,z,**kwargs):
    print(x)#1
    print(m)#2
    print(args)#(3,)
    print(y)#222
    print(z)#4
    print(kwargs)#{'a': 1, 'b': 2, 'c': 3}

func(1,2,3,z=4,a=1,b=2,c=3)
相关标签: python

上一篇: python day2

下一篇: