首页 > 编程语言 >Python函数基础

Python函数基础

时间:2024-09-21 09:24:12浏览次数:9  
标签:return 函数 Python 基础 参数 print def name

1-函数的概念

总结:

  • 函数是组织好的、可重复使用的、用来实现特定功能的代码段
  • 使用函数的好处:
    • 将功能封装在函数内,可供随时随地重复使用
    • 提高代码的复用性,减少重复代码,提高开发效率

2-函数的定义

总结:

  • 函数的定义语法
def 函数名(传入参数):
    函数体
    return 返回值
  • 函数的使用步骤
    • 先定义函数
    • 再调用函数
  • 函数的注意事项
    • 参数不需要,可以省略
    • 返回值不需要,可以省略

3-函数的参数

示例:

# 定义一个实现两值相加的函数
def add(x, y):
    result = x + y
    print(f"{x} + {y}的和为{x + y}")


# 调用函数并传参
add(2, 3)

总结:

  • 函数传入参数作用是为了在函数运行的时候,接收外部传入的数据
  • 注意事项:
    • 函数定义中的参数,称之为形式参数
    • 函数调用中的参数,称之为实际参数
    • 函数的参数数量不限,使用英文逗号分隔开
    • 传入参数的时候,实参要和形式参数一一对应,逗号隔开
# 先定义函数
def check_health(x):
    if x <= 37.5:
        print("请出示健康码以及72小时核酸证明,并配合测量体温!")
        print(f"体温测量中,您的体温是:{x}度,体温正常请进")
    else:
        print("请出示健康码以及72小时核酸证明,并配合测量体温!")
        print(f"体温测量中,您的体温是:{x}度,需要隔离")


# 获取用户的温度
x = float(input("请输入您的体温:"))
# 再调用函数
check_health(x)

4-函数的返回值

示例:

# 先定义函数
def add(x, y):
    result = x + y
    print(result)
    return result
	print('xxxxxx')


# 再调用函数
res = add(2, 3)
print(res)

总结:

  • 函数的返回值是函数在执行完成后,返回给调用者的结果
  • 返回值的应用语法:使用关键字return来返回结果
  • 注意:函数体在遇到return关键字之后就结束了,写return后的代码不会执行

None示例:

# 定义函数判断是否未成年
def check_age(age):
    if age > 18:
        return "success"
    else:
        return None


# 调用函数
res = check_age(19)
print(res)

# 根据函数结果判断是否让进入
# not None 为 True
if not res:
    print("您未成年不能进入该场所!!!")

总结:

  • None是类型‘NoneType’的字面量,用于表示:空的、无实际意义的
  • 函数如何返回None:
    • 不使用return语句时即返回None
    • 主动返回:return None
  • 使用场景
    • 设置函数返回值
    • if判断
    • 变量定义

5-函数说明文档

示例:

# 定义函数
def add(x, y):
    """
    这是一个两数相加的函数
    :param x: 这是第一个相加的数值
    :param y: 这是第二个相加的数值
    :return: 返回两数之和
    """
    result = x + y
    return result


# 调用函数
res = add(2, 3)

总结:

  • 函数说明文档是为方便对函数整体功能的解释,尤其是对参数和返回值的解释说明
  • 调用函数时,可以将鼠标光标悬浮在函数名上,就可以看到函数说明文档的注释,使用我们使用函数

6-函数的分类

def add():
    """
    这是一个无参无返回值的函数
    :return: None
    """
    print("这是一个无参无返回值的函数")


add()


def add(x, y):
    """
    这是一个有参无返回值的函数
    :param x: 这是第一个参数
    :param y: 这是第二个参数
    :return: None
    """
    print("这是一个有参无返回值的函数", x + y)


add(2, 3)


def add():
    """
    这是一个无参有返回值的函数
    :return: 返回一个固定的字符串
    """
    print("这是一个无参有返回值的函数")
    return "哈哈"


print(add())


def add(x, y, z):
    """
    这是一个有参有返回值的函数
    :param x: 这是相加的第一个数值
    :param y: 这是相加的第二个数值
    :param z: 这是相加的第三个数值
    :return: 三数之和
    """
    print("这是一个有参有返回值的函数")
    return x + y + z


print(add(1, 2, 3))

调试:

image-20240903170915697

7-变量的作用域

示例:

# 先定义函数
def test1():
    # 局部变量
    # global关键字可以将局部变量声明为全局变量
    global num
    num = 10
    # 使用局部变量
    # 就近原则:如果局部变量和全局变量同名,函数内优先使用局部变量
    print(num)


def test2():
    print(num)


if __name__ == '__main__':
    # 全局变量
    num = 100
    print(num)  # 100
    # 调用函数
    test1()
    test2()

    print(num)

总结:

  • 局部变量:只能在自定义的函数内的访问的变量
  • 全局变量:可以在任意函数内外都能访问的变量
  • 就近原则:如果局部变量与全局变量同名,函数内优先局部变量
  • global关键字可以将自定义函数中的局部变量声明为全局变量

8-综合案例

  • 需求分析
  • 定义一个全局变量:money,用来记录银行卡余额(默认5000000)
  • 定义一个全局变量:name,用来记录客户姓名(启动程序时输入)
  • 定义如下的函数:
    • 查询余额函数:query_balance()—打印变量money,并调用主菜单函数
    • 存款函数:save_money()—输入存钱数,与money累加,并调用主菜单函数
    • 取款函数:get_money()—输入取钱数,与money相减,并调用主菜单函数
    • 主菜单函数:main_menu()—一直循环(while True)根据用户输入选择项,调用对应的函数(查询(query_balance())、存款、取款)或者直接退出(break)
  • 要求:
    • 程序启动后要求输入客户姓名
    • 查询余额、存款、取款后都会返回主菜单
    • 存款、取款后,都应显示一下当前余额
    • 客户选择退出或输入错误,程序会退出,否则一直运行
# 定义全局变量
money = 500000
name = ""


def query_balance():
    """
    余额查询
    :return: None
    """
    print(f"{name}, 您好,您的余额为:{money}")
    # main_menu()


def save_money():
    """
    存款函数
    :return: None
    """
    global money
    # 从键盘录入存款金额
    amount = float(input("请输入您的存款金额:"))
    if amount <= 0:
        print("存款金额必须大于0")
    else:
        money += amount
        print(f"{name}, 您好,您的余额为:{money}")
    # main_menu()


def get_money():
    """
    取款函数
    :return: None
    """
    global money
    # 从键盘录入取款的金额
    amount = float(input("请输入您的取款金额:"))
    if amount <= 0:
        print("取款金额必须大于0")
    else:
        money -= amount
        print(f"{name}, 您好,您的余额为:{money}")
    # main_menu()


def main_menu():
    """
    主菜单函数,一直循环
    :return: None
    """
    while True:
        print('-' * 15 + '主菜单' + '-' * 15)
        print("查询余额:【输入1】")
        print("存   款:【输入2】")
        print("取   款:【输入3】")
        print("退   出:【输入4】")
        op_choice = input("请输入您的选择:")
        
        # 根据用户的选择调用对应的函数
        if op_choice == '1':
            query_balance()
        elif op_choice == '2':
            save_money()
        elif op_choice == '3':
            get_money()
        else:
            break



if __name__ == '__main__':
    """
    主程序入口
    """
    name = input("请输入您的姓名:")
    print(f"{name}您好,欢迎使用银行系统!!!")
    main_menu()

9-函数返回多值

return 值1, 值2, 值3…: 函数默认将多个值封装在一个元组中返回

# 1-定义函数
def show():
    return 1, 2, 3


# 2-调用函数
t = show()
print(t, type(t))
# 直接拆包接收
a, b, c = show()
print(a, b, c)

10-函数多种传参

示例:

  • 位置、关键字、缺省参数
# 1-定义函数
def show1(name, age, height):
    print(f"姓名: {name}, 年龄: {age}, 身高: {height}")


# 2-1调用函数,使用位置传参
# 注意:位置传参实参和形参的个数和顺序必须一致
show1(18, '张三', 183)

# 2-2调用函数,使用关键字传参
# 注意:关键字传参:k=v,要求形参和实参个数必须一致,但是顺序无所谓
# 如果位置传参和关键字传混用,位置参数必须在关键字参数前面
show1(age=18, height=183, name='李四')
show1('张三', age=18, height=183)


# 3-定义包含缺省参数的函数
def show2(name, age=18, height=188.8):
    print(f"姓名: {name}, 年龄: {age}, 身高: {height}")


# 3-1 调用函数,使用缺省参数传参
show2('张三')
show2('张三', 88)
show2('张三', 88)
show2('张三', height=158.6)

  • 不定长参数
# 1-1定义可变参数函数
def show1(*args):
    print(args)


# 1-2 调用可变参数函数
show1(1)
show1(1, 2)
show1(1, 2, 'a')


# 2-1 定义关键字传参的不定长参数
def show2(**kwargs):
    print(kwargs)


# 2-2 调用关键字传参的不定长参数的函数
show2(name='张三')
show2(name='张三', age=18)
show2(name='张三', age=18, gender='女')

总结:

  • 位置参数:调用函数时,要求实参与形参的顺序和个数必须保持一致
  • 关键字参数:调用函数时,k=v方式传参(形参=实参),只要求个数一致,顺序无所谓,但是如果位置和关键字参数混用,位置参数必须在关键字参数前面
  • 缺省参数:定义函数时,直接给形参设置默认值(形参=默认值),调用函数时可以省略不传实参
  • 可变参数:定义函数时,使用*args接收位置传参的内容,**kwargs接收关键字传参的内容
  • 需求:定义一个函数实现能对任意个数字进行

-1 定义关键字传参的不定长参数
def show2(**kwargs):
print(kwargs)

2-2 调用关键字传参的不定长参数的函数

show2(name=‘张三’)
show2(name=‘张三’, age=18)
show2(name=‘张三’, age=18, gender=‘女’)


总结:

> - 位置参数:调用函数时,要求实参与形参的顺序和个数必须保持一致
> - 关键字参数:调用函数时,k=v方式传参(形参=实参),只要求个数一致,顺序无所谓,但是如果位置和关键字参数混用,位置参数必须在关键字参数前面
> - 缺省参数:定义函数时,直接给形参设置默认值(形参=默认值),调用函数时可以省略不传实参
> - 可变参数:定义函数时,使用*args接收位置传参的内容,**kwargs接收关键字传参的内容

- 需求:定义一个函数实现能对任意个数字进行 













标签:return,函数,Python,基础,参数,print,def,name
From: https://blog.csdn.net/qq_51504246/article/details/142410759

相关文章

  • JAVA函数式接口不会用怎么办,一文轻松解决
    函数式接口1.函数式接口的由来​我们知道使用Lambda表达式的前提是需要有函数式接口,而Lambda表达式使用时不关心接口名,抽象方法名。只关心抽象方法的参数列表和返回值类型。因此为了让我们使用Lambda表达式更加的方法,在JDK中提供了大量常用的函数式接口packagecom.bob......
  • Python基础语法
    1-字面量示例:print(10)print(3.1415926)print(True)print("True")print("3.14.!#$!@#$!@#%#2515926")总结:字面量的含义:代码中,被写在代码中的固定的值常见的字面量类型有:整数、浮点数、字符串、布尔类型2-注释示例:"""单行注释:#多行注释:一对三引号ctrl+a......
  • 图片工具类 - C#小函数类推荐
          此文记录的是图像操作的工具类。/***图片工具类AustinLiu刘恒辉ProjectManagerandSoftwareDesignerE-Mail:[email protected]:http://lzhdim.cnblogs.comDate:2024-01-1515:18:00使用方法例子:Bitm......
  • java计算机毕业设计数字乡村基础治理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,数字化已成为推动社会进步的重要力量。在乡村振兴战略的大背景下,数字乡村基础治理系统的建设显得尤为重要。传统乡村治理方式......
  • HarmonyOs DevEco Studio小技巧19 --函数表达式与箭头函数
    在JavaScript中,函数表达式和箭头函数是定义函数的两种常见方式。函数表达式:函数表达式是将一个函数赋值给一个变量的方式函数表达式的一般形式是:letfunctionName=function([parameters]){//函数体[returnstatement]};简单的函数表达式的示例letadd=fun......
  • 59.【C语言】内存函数(memmove函数)
    2.memove函数*简单使用memove:memorymovecplusplus的介绍点我跳转对比第59篇的memcpy函数对比memmcpy函数的介绍如下区别:部分翻译memmove多了:Copyingtakesplaceasifanintermediatebufferwereused(复制就像中间的缓存区使用一样),allowingthedestinati......
  • 史上最全Python图像识别:从基础到高级的全方位指南
    一、引言图像识别是计算机视觉的核心任务之一,它涉及图像的预处理、特征提取、分类等多个步骤。Python凭借其丰富的第三方库支持和简洁的语法,成为了图像识别领域的重要工具。本文将详细介绍如何使用Python进行图像识别,从基本概念到实际应用案例。二、基础知识2.1Python......
  • 嵌入式硬件基础知识
    一、嵌入式系统的定义与特点定义:嵌入式系统是一种专为特定应用而设计的计算机系统,它通常被嵌入到更大的设备或系统中,作为这些设备或系统的一部分来执行预设的任务。与通用计算机相比,嵌入式系统具有更高的专用性、更低的功耗、更小的体积以及更强的实时性等特点。特点:专用性:......
  • Python的串口通信库
    一、串口通信基础1.1串口通信概述串口通信(SerialCommunication),也称为串行通信,是一种将数据位按顺序一位一位地传输的通信方式。与并行通信相比,串口通信在传输速度上可能稍逊一筹,但其具有传输线少、成本低、易于实现远距离通信等优点,因此广泛应用于各种嵌入式系统、仪器仪表......
  • python提问及解析
    在看答案之前,可以先试试自己做哦!1.图书馆借书还书系统问题描述问题:设计一个Python程序,该程序模拟一个大型图书馆的图书管理系统。图书馆拥有成千上万的书籍,每本书都有一个唯一的ISBN号、书名、作者、出版年份和所在书架的位置。系统需要支持以下功能:添加书籍:能够添加新书到......