Python基础学习(五)函数

代码获取:https://github.com/qingxuly/hsp_python_course
完结版:Python基础学习(完结版)

函数

函数介绍

基本介绍
  • 为完成某一功能的程序指令(语句)的集合,称为函数。
  • 在 Python 中,函数分为:系统函数、自定义函数。
    • 内置函数,Python 解释器内置了很多函数和类型,任何时候都能使用。
    • 模块提供的函数,如:math 模块提供的函数。
    • 自定义函数:定义函数使用关键字 def,后根函数名与括号内的形参列表。函数语句从下一行开始,并且必须缩进。
  • 即:内置函数和模块中提供的函数都是系统函数(由 Python 提供),自定义函数是程序员根据业务需要开发的。
函数的好处
  • 提供代码的复用性。
  • 可以将实现的细节封装起来,然后供其他用户来调用即可。

函数的定义

基本语法

image-20240613183314341

  • 函数代码块以 def 关键字开头,后接函数标识符名称和圆括号()。
  • 函数内容以冒号 : 开始,并且缩进。
  • 函数参数 (a, b),可以有多个,也可以没有,即直接是 ()(a, b) 也称为形参列表。
  • 函数可以有返回值,也可以没有,如果没有 return 相当于返回 None。
函数的调用
  • 函数定义好了,并不会自动执行,需要程序员调用,才会执行。
  • 调用方式:函数名(实参列表),比如:max(10, 20)。
快速入门
# 自定义cry 函数,输出“喵喵喵”
# 定义函数
def cry():
    print("喵喵喵")


# 调用函数
cry()
# 自定义cal01 函数,可以计算从 1+...+1000的结果
def cal01():
    total = 0
    for i in range(1, 1001):
        total += i
    print("total =", total)


cal01()
# 自定义cal02 函数,该函数可以接收一个n,计算从 1+...+n 的结果
def cal02(n):
    total = 0
    for i in range(1, n + 1):
        total += i
    print("total =", total)


# (10) 表示我调用函数时,出入了实参 10,即把10赋给了形参n:n = 10
cal02(10)
# 自定义get_sum 函数,可以计算两个数的和,并返回结果
def get_sum(num1, num2):
    return num1 + num2


"""
1.调用get_sum(10, 50) 调用get_sum
2.(10, 50) 表示传入了两个实参10, 50,把10赋给num1,把50赋给num2
3.result 就是接收get_sum 函数返回的结果
"""
result = get_sum(20, 30)
print("result =", result)
# 使用函数解决计算问题
def cal04():
    n1 = float(input("请输入第一个数:"))
    n2 = float(input("请输入第二个数:"))
    oper = input("请输入运算符 + - * / :")
    res = 0.0
    if oper == "+":
        res = n1 + n2
    elif oper == "-":
        res = n1 - n2
    elif oper == "*":
        res = n1 * n2
    elif oper == "/":
        res = n1 / n2
    else:
        print("输入的运算符错误")

    print(n1, oper, n2, "=", res)


cal04()

函数的调用机制

函数调用过程

image-20240613221808610

return 语句
  1. 基本语法
def 函数名(参数列表):
    语句...
    return 返回值
  1. 说明:如果没有 return 语句,默认返回 NoneNone内置常量,通常用来代表空值的对象。
def f1():
    print("hi")


result = f1()
# r: None <class 'NoneType'> 140736690859152
print("r:", result, type(result), id(result))
函数注意事项和使用细节
  1. 函数的参数列表可以是多个,也可以没有,如:(), (n1, n2...)

  2. 函数的命名规范遵循标识符命名规则和规范,具体参考前面讲过的标识符命名规则和规范。

  3. 函数中的变量是局部的,函数外不生效。

def hi():
    n = 10
    print("n:", n)


hi()
# 函数内部定义的n,在函数外部不能使用
# print("n:", n)
  1. 如果同一个文件,出现两个函数名相同的函数,则以就近原则进行调用。
def cry():
    print("hi")


def cry():
    print("ok")


# 这个ry会默认就近原则,即第二个cry(),输出OK。
cry()
  1. 调用函数时,根据函数定义的参数位置来传递参数,这种传参方式就是位置参数,传递的实参和定义的形参顺序和个数必须一致,同时定义的形参,不用指定数据类型,会根据传入的实参决定。
def car_info(name, price, color):
    print(f"name: {
     name}, price: {
     price}, color: {
     color}")


# 传递的实参和定义的形参顺序和个数必须一致,否则报 TypeError 错误
# car_info("宝马", 500000, "red", 1)  # TypeError: car_info() takes 3 positional arguments but 4 were given
car_info("宝马", 500000, "red")
  1. 函数可以有多个返回值,返回数据类型不受限制。
def f2(n1, n2):
    return n1 + n2, n1 - n2


r1, r2 = f2(10, 20)
print(f"r1: {
     r1}, r2: 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五月行秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值