zoukankan      html  css  js  c++  java
  • 函数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)
    
  • 相关阅读:
    bzoj3505 数三角形 组合计数
    cogs2057 殉国 扩展欧几里得
    cogs333 荒岛野人 扩展欧几里得
    bzoj1123 BLO tarjan求点双连通分量
    poj3352 road construction tarjan求双连通分量
    cogs1804 联合权值 dp
    cogs2478 简单的最近公共祖先 树形dp
    cogs1493 递推关系 矩阵
    cogs2557 天天爱跑步 LCA
    hdu4738 Caocao's Bridge Tarjan求割边
  • 原文地址:https://www.cnblogs.com/shin09/p/11552634.html
Copyright © 2011-2022 走看看