zoukankan      html  css  js  c++  java
  • python 函数

    初始函数

    为什么要用函数?

    • 避免代码重用
    • 提高代码的可读性

    函数的定义与调用?

    def 函数名(参数1,参数2):
        '''函数注释'''
        print("函数体")
        return 返回值
    

    定义:def 关键字开头,空格之后接函数名和圆括号,最后还要加上一个冒号。

    ​ def是固定的,不能改变。

    函数名:函数名命名规则是包含字母、数字、下划线的任意组合,但是不能以数字开头,虽然函数名和随便取名,但是一般尽量定义为可以表达函数功能的名字。

    函数的调用

    ​ 返回值=函数名(参数1,参数2)#记得函数名后面加括号

    示例
    定义一个求计算字符串长度的函数,假如我们的len()函数现在不能用了,name我们就需要定义一个函数,求字符串的长度。如果让我们一次一次的去写相同的代码,会非常麻烦,所以我们需要使用函数。
    def length():
        s = "hello world"
        length = 0
        for i in s:
            length+=1
        print(length)
    print(length())
    
    return 必须放在函数里,当函数有返回值的时候,必须用变量接收才有效果。
    def length():
        s = "hello world"
        length = 0
        for i in s:
            length += 1
    	return length
    hprint(length())
    

    函数的返回值

    • return的作用:结束一个函数的执行

    • 首先返回值可以是任意的数据类型

    • 函数可以有返回值:如果有返回值,必须要有变量接收才有效果

    • 函数也可以没有返回值

    • 没有返回值的时候分为三种情况

      • 当不写return的时候,函数的返回值为None
      • 当只写一个return的时候,函数的返回值为None
      • return None的时候,函数的返回值为None
    • return返回一个值(一个变量)

    • return返回多个值(多个变量)多个值之间用逗号隔开,以元组的形式返回。接收:可以用一个变量接收,也恶意用多个变量接收,返回几个值就用几个变量接收

    •   def func():
            a = 111
            b = [1,2,3]
            c = {"a":15,"b":6}
            #return a 返回一个值
            #return a,b,c 返回多个值,变量之间按逗号隔开,以元组的形式返回
        print(func())
      
    #不写return时返回None
    def func():
        a = 111
        b = [1,2,3]
    ret = func()
    print(ret)
    #自卸一个return时,返回None
    def func():
        a = 111
        b = [1,2,3]
        return 
    ret = func()
    print(ret)
    #return None的时候返回None
    def func():
        a = 111
        b = [1,2,3]
        return None
    ret = func()
    print(ret)
    

    return 的作用

    def func():
        print("开始")
        return  #结束一个函数的执行
    	print("结束")
    func()
    

    定义一个列表,返回列表最后一个值

    #方法一
    def func():
        list = [1,3,4,5]
        return list[-1]
    #方法二
    def func():
        list = [1,3,4,5]
        return list
    a,b,c,d = func()
    print(d)
    

    函数的参数

    def func(c):
        '''
        参数接受形式参数,简称形参
        '''
    

    实参和形参

    • 形参:是函数定义时候的参数
    • 实参:函数调用时候传进来的参数

    如何传递多个参数

    • 可以传递多个参数,多个参数之间用逗号隔开。
    • 站在传参的角度上,调用函数时传参数有两种方式
      • 按照位置传参数
      • 按照关键字传参数
    • 用法:
      • 位置参数必须在关键字参数的前面
      • 对于一个参数只能赋值一次
    def func(a,b):
        if a > b:
            return a
        else:
            return b
    print(func(1,3))#按照位置传参
    print(func(a=1,b=3))#按照关键字传参
    print(func(1,b=3))#按照位置传参和关键字传参混搭
           
    

    默认参数

    用法:

    • 为什么要用默认参数?
      • 将变化比较小的值设置为默认参数
    • 定义:
      • 默认参数可以不传,不传的时候用的是默认值,如果传会覆盖默认值。
      • 默认的值是定义函数的时候已经确定了的。
    def func(a,b=1):
        print(a,b)
    func(0)
    dunc(0,2)
    

    默认参数缺陷:默认参数是一个可变的数据类型

    def func(a,l=[]):
        l.append(a)
        print(l)
        
    func(1)
    func(2)
    
    #输出[1]    [1,2]
    

    动态参数

    按位置传参多余的参数都是有*args统一接收,保存成一个元组的形式。

    按关键字传参多余的参数都是由**kwargs接收,保存成一个字典的形式。

    def func(a,b,*args):
        sum = a+b
        for i in args:
            sum += i
        return sum
    
    print(func(1,2,3,4))#输出他们的和
    
    def func(a,b,**kwargs):
        print(a,b,**Kwargs)
        
    func(a=10,b=20,c=30,d=40)#输出10,20 {"c":30,"d":40}
    

    总结

    • 定义:def 关键字揩油,空格之后是函数名称和圆括号()和:
    • 参数:圆括号用来接收参数,若传入多个参数,参数之间用逗号分隔。
    • 参数可以定义多个,也可以不定义。
    • 参数有很多种,如果涉及到多种参数的定义,应始终遵循位置参数、*args、默认参数、*kwargs.
    • 注释:函数第一行语句应该添加功能注释
    • 函数体:函数内容以冒号起始,并且缩进。
    • 返回值:return [表达式]结束函数,不带表达式的return相当于返回None。
    def 函数名(参数1,参数2,*args,**kwargs):
    	'''注释内容'''
        函数体
        return 返回值
    
  • 相关阅读:
    日志
    JAVA字符串类
    JAVA包
    JAVA面向对象
    JAVA数组
    JAVA循环结构
    JAVA程序调试
    JAVA条件判断
    JAVA算术运算符
    JAVA数据类型
  • 原文地址:https://www.cnblogs.com/pyliuwei/p/13260889.html
Copyright © 2011-2022 走看看