函数day10课堂小结

函数引入

函数--》工具(需要用的时候才用,提前造/买):

需要用函数的时候,拿来用就行了,提前写/复制粘贴

封装

函数不会改变某一个功能的代码。它只做了一件事情-->封装(接口),只会让你的代码更加简洁而已

函数的定义

使用工具之前-->必须得创造一个工具-》定义函数

def 函数名(等同于变量名):
	'''对函数(工具)的描述信息'''
    代码块
	pass
def guess():
    '''给定两个数,打印较大的数'''
    x = 30
    y = 20
    
    if x > y:
        print(x)	
	else:
        print(y)
        
print(guess._doc_)

定义阶段,检测语法错误,不执行

定义函数的三种方式

参数,未知数,变量

空函数:定义了函数,啥都没有, 只知道工具叫什么名字,但不知道如何造出

def func():
    pass

无参函数:工具可以单独使用

def add():
    '''无参函数'''
	x = input('num1:')
	y = input('num2:')
    
    print(int(x)+int(y))

add()

有参函数:这个工具不能单独使用,必须加个配件,零件

def add(x,y):
    '''有参函数'''
	print(int(x)+int(y))
    
print(1)
x = input()
y = input()
add(x,y)

函数的调用

函数的调用--》使用函数

函数名()

print(guess) # 函数地址

guess() # 没有为什么,加括号就能调用(执行内存中的代码)

函数的返回值

return()

def add(x,y):
	# 逻辑
    return x + y # 函数的返回值;终止函数(跳出函数)

res = add(1,2)
print(res)
    
def add(x,y):
    print(x+y)
   # return x + y
	
res = add(1,2)  # 默认返回None
print(res)

3
None

def add(x,y):
    # return(x,y,x+y) return可以返回任意数据类型
    return x,y,x+y # return可以返回任意数据类型,不加括号返回多个值时,默认用元组得到形式返回

x,y,z = add(1,2)
print(x,y,z)

函数的参数

参数:自己定义的条件

有参函数:有参数(粗/细/长/短的螺丝刀)的函数

def xianshiping(liangdu,duibidu): # 形参
    ''''''
    if liangdu == 0:
        print('不显示')
        return
	
    if duibidu > 300:
        print('高清无码')
    else:
        print('av画质')

        
xianshiping(0,100) # 有参数,就必须得传参 # 实参

形参:定义函数阶段的产物,具有接受实参的作用,具有描述意义

位置形参:从左到右一次接收实参的值

默认形参:1. 如果你不给,使用默认值;如果调用的时候传值,使用传的值

  1. 默认形参必须跟在位置形参后面。
def xianshiping(duibidu: int = 150,liangdu : int ) -> int:# 错误

xianshiping(1,300)

def xianshiping(liangdu : int, duibidu: int = 150) -> int:

xianshiping(1,300)

实参:调用阶段的产物,传给形参一个具体的值,具有具体的值(可以为所有数据类型)

位置实参:从左到右依次给位置形参传值,一一对应,形参有多少个,实参也必须有多少个。

关键字实参:位置实参必须写在关键字实参前面

按照形参名给形参传值(使用情况,基本为0)———》函数的参数一般0-3个;尽量不超过3个

def xianshiping(liangdu,duibidu,resolution_ratio,length,width):
    print(liangdu,duibidu,resolution_ratio,length,width)
     
        
    
xianshiping(liangdu=1,duibidu=2,resolution_ratio=3,length=4,width=5)

1 5 2 3 4

def xianshiping(liangdu : int, duibidu: int) -> int:
    # : 后面规定是参数的数据类型,约定俗成的 :->后面规定的是返回值的数据类型,约定俗称的

可变长参数

(可以无限长)

可变长实参

def min_10(a,b,c,d,e,f,g,h,i,j):
    print(a,b,c,d,e,f,g,h,i,j)
    res1 = min_8(a,b,c,d,e,f,g,h)
	res2 = min_2(i,j)
    return min_2(res1,res2)

lt = [1,2,3,4,5,6,7,8,9,10]
res = min_10[*lt] # * 相当于做了解压缩,也就是把lt内的元素一个一个取了出来c传给形参
print(res)

可变长形参

def min_10(a, b, c, *lt):  # *lt,把所有传过来的实参全部接收,并且以元组的形式存储
    print(lt)
    a, b, c, d, e, f, g, h, i, j, *_ = lt
    print(_)
    res1 = min_8(a, b, c, d, e, f, g, h)
    res2 = min_2(i, j)
    return min_2(res1, res2)


res = min_10(1, 2, 3, 4, 5, 6, 7, -1, 9, 10, 11, 12, 13, 1, 1, 1, 1, 1, 1, 1, 11,
             1, )  # *,相当于做了解压缩,也就是把lt内的元素一个一个取出来传给形参
print(res)
原文地址:https://www.cnblogs.com/shin09/p/11552634.html