Python08

今日内容概要

  • 函数的返回值
  • 函数的类型
  • 函数的参数
  • 常见的内置函数

今日内容详细

调用函数与函数返回值

  1. 定义与调用
    定义函数使用关键字def,调用函数需要使用函数名加括号(如果函数需要参数那么则额外传递参数)

  2. 定义阶段
    函数在定义阶段只检测函数体语法不执行函数体代码

  3. 调用阶段
    函数名加括号调用函数的时候才会执行函数体代码

什么是返回值?

返回值就是执行完某个方法该方法反馈出来的结果

如何获取返回值?

通过变量名与赋值符号即可,变量名 = 方法/函数()

  1. 当函数体没有return关键字的时候,默认返回None
    def index():
        print(from index)
    
    
    res = index()
    print(res) # None即空 表示没有

    Python08

  2. return关键字后面写什么函数就返回什么
    def index():
        print(from indexreturn 123
    
    
    res = index()
    print(res)

    Python08

  3. return后面跟多个值默认会组织成元组的形式返回
    def index():
        print(from indexreturn 123, 555, 66, 5, 4, 5, 4
    
    
    res = index()
    print(res)

    Python08

  4. 函数体代码遇到return立刻结束整个函数的运行
    def index():
        print(from indexreturn 123, 555, 66, 5, 4, 5, 4
    
    
    print(from index

    Python08

函数的类型

  1. 无参函数:函数在定义阶段没有参数调用阶段也不需要参数
    def index():
        print(from index)
    
    
    index()
  2. 有参函数:函数在定义阶段括号内填写了变量名即需要参数
    def index(x):
        print(from index, x)
    
    
    index(1
  3. 空函数:没有具体的函数体代码
    def run():
        pass # 补全语法结构 本身没有任何含义
    def fight():
        pass
    def talk():
        pass

函数的参数

形参与实参介绍

函数的参数分为形式参数和实际参数,简称形参和实参:

形参即在定义函数时,括号内声明的参数。形参本质就是一个变量名,用来接收外部传来的值。

实参即在调用函数时,括号内传入的值,值可以是常量、变量、表达式或三者的组合。

def index(name): 形参
    print(name)
index(jason‘)  实参  name = jason

两者在调用函数的时候临时绑定,函数运行结束分开

形参与实参的具体使用

  1. 位置参数:按照位置一一对应传值 多一个不行少一个也不行
    def index(x, y):
        print(x, y)
    
    
    # index() # 不传不可以
    # index(1) # 传少了也不行
    # index(1,2) # 个数正确可以
    # index(1,2,3,4,5,6,7) # 传多了也不行
  2. 关键字参数:指名道姓的给形参传值,可以打破位置限制
    def index(x, y):
        print(x, y)
    
    
    index(y=111, x=222)
    index(111, y=222)
    index(111, x=222) # 报错 形参x被重复赋值
    print(y=111,222) # 报错 位置参数一定要在关键字参数的前面

    PS:需要注意在调用函数时,实参也可以是按位置或按关键字的混合使用,但必须保证关键字参数在位置参数后面,且不可以对一个形参重复赋值

  3. 默认参数:函数在定义阶段就给形参赋值了
    def register(name, age, gender=male):
        print(name, age, gender)
    
    
    register(jason, 18)
    register(tony, 28)
    register(kevin, 38) # 使用默认的值
    register(huahua, 18, female) # 使用自带的值

    Python08

  4. 可变长参数:函数如何做到无论接收多少个位置参数、关键字参数都可以正常运行
    def func(*a, **b):
        print(a, b)
    
    
    func(1, 2, 3, a=1, b=2, c=3)
    func(1, 2, 3, 4, 5, 6, 7)
    func(a=1, b=2, c=3)

    位置参数使用*完成操作,关键字参数使用**完成操作Python08

    一般情况下针对形参中的可变长参数,变量名推荐使用(*args  **kwargs)

* 和 ** 的使用

* 在形参中会接收多余的位置参数组织成元组的形式赋值给*后面的变量名,在实参中会将列表/元组内的元素打散成一个个位置参数传递给函数

**在形参中会接收多余的关键字参数组织成字典的形式赋值给**后面的变量名,在实参中会将列表/元组内的元素打散成一个个位置参数传递给函数

l = [11, 22, 33, 44, 55]
d = {‘username‘: ‘jason‘, ‘pwd‘: 123, ‘hobby‘: ‘read‘}


def func(*args, **kwargs):
print(args, kwargs)


func(1, 2, 3, a=1, b=2, c=3)
func(1, 2, 3, 4, 5, 6, 7)
func(a=1, b=2, c=3)
func(*l)
func(**d)

Python08

内置函数

  • 取绝对值:print(abs())
  • 相当于and:print(all([1, 2, 3, 4, 0]))
  • 相当于or:print(any([1, 2, 3, 4, 0]))
  • 转二进制:print(bin())
  • 转八进制:print(oct())
  • 转十六进制:print(hex())
  • 判断变量是否可以调用:print(callable())
  • 返回ASCII码中数字对应的字符:print(chr())
  • format字符串格式化输出:
  • 取最大值:print(max())
  • 取最小值:print(min())
  • 求和:print(sum())

Python08

Python08

上一篇:Java并发13:并发三特性-原子性定义、原子性问题与原子性保证技术


下一篇:C语言内嵌汇编代码