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)
    
  • 相关阅读:
    Python列表去重
    hash表长度优化证明
    DDD初学指南
    继承和实现的明显区别
    微信商户支付
    centos7+mono4+jexus5.6.2安装过程中的遇到的问题
    SVN:重命名文件之后不允许提交
    SpringMVC 自定义全局日期转换器
    解决Cannot change version of project facet Dynamic web module to 2.5
    Maven项目热部署到Tomcat容器下
  • 原文地址:https://www.cnblogs.com/shin09/p/11552634.html
Copyright © 2011-2022 走看看