python进阶-----第十二课 --函数基础

python进阶,在第一期的基础上做了极大的优化,整体更加美观易懂

十二、函数基础

12.1、函数的定义

函数的作用:函数就是将一段具有独立功能的代码块集合到一个整体并命名,在需要的位置调用这个名称即可完成对应的需求,避免代码重用,使程序更高效执行

12.2、函数的使用步骤:

12.2.1、定义函数
def 函数名(参数)  # def关键字, 参数,可有可无
    代码1
    代码2

例如:

def sel_func():  # 函数调用,需要先定义再调用,定义函数后函数内为该函数需要的作用
    print("余额")
    print("存款")
    print("取款")
    print("帮助")
# 函数定义完可以开始调用


sel_func()  # Pycharm向下空2行没有黄色波浪线,可不空行,不影响结果
# 结果:
>>> 余额
>>> 存款
>>> 取款
>>> 帮助

注意:
1、函数需要先定义后调用,如果先调用会报错
2、如果没有调用函数,只定义函数,函数体内部代码是不会执行
3、函数执行流程:
. . . a、如果说遇到函数调用的时候,那么解释器会回到函数定义的位置去执行函数体内部代码(下方缩进的代码)
. . . b、当这些代码执行完了之后,会回到调用函数的位置继续向下执行

12.2.2、函数参数

需求:用函数调用做加法运算,以参数形式传入真实数据

def num1(,):  # x, y与下面调用函数位置要一一对应,个数也要一致
    # 定义函数时同时定义了接收用户数据的参数x和y。  x,y为形参
    print(f'你输入的x是 {}')  # 顺带巩固一下f格式化
    print("你输入的y是",)  # 常规写法
    z =+print('{x} + {y} 的值为 {z}'.format(x=, y=, z=z))  # 同时在python中中文也可以做变量


num1(500, 21)  # 调用函数时传入了真实的数据500和21,真实数据为实参
# 结果:
>>> 你输入的x是 500
>>> 你输入的y是 21
>>> 500 + 21 的值为 521
12.2.3、参数的分类
12.2.3.1、位置参数

位置参数: 调用函数时根据函数定义的参数位置来传递参数

def a(name, age, gender):
    print(f"您的姓名是{name}, 年龄是{age}, 性别是{gender}")
 
a("xyi_cqk", 28, "女")  # 注意顺序(参数从左至右对应)以及个数(个数必须一致)
# 结果:
>>> 您的姓名是xyi_cqk, 年龄是28, 性别是女
12.2.3.2、关键字参数

关键字参数:函数调用时通过"键" = "值"形式加以确定,可以让函数更清晰,容易使用

def b(dxj, age, gender):
    print(f"您的姓名是{name}, 年龄是{age}, 性别是{gender}")
# b(name="dxj", age=23, gender="女")
b(age=23, gender="女", name="dxj")  # 关键字参数的传参和顺序无关,不影响
# 结果:
>>> 您的姓名是dxj, 年龄是23, 性别是女
12.2.3.3、缺省参数

缺省函数:也叫默认参数,为参数提供默认值,调用函数时可不传该默认参数的值

def c(name, age, gender="女"):  # 调用时候可以不传参就默认性别为女,传参时候如果需要改变可继续传参
    print(f"您的姓名是{name}, 年龄是{age}, 性别是{gender}")
#多次测试,每次测试后面贴出结果
c(name="张三", age=23)  # 没有缺省参数,使用默认值默认为女
# 结果:
>>> 您的姓名是张三, 年龄是23, 性别是女
c(name="张三", age=23, gender="男")  # 有缺省参数,修改默认值
# 结果:
>>> 您的姓名是张三, 年龄是23, 性别是男
c("张三", age=23, gender="男")  # 如果是组合式的参数传参,位置参数必须要写在关键字前面
# 结果:
>>> 您的姓名是张三, 年龄是23, 性别是男
# c(age=23, "张三", gender="男")  # 无法运行结果会报错
12.2.3.4、不定长参数

不定长参数:也叫可变参数,用于不确定会传递多少个参数的时候,可用来包裹关键字参数或者是位置参数来进行参数传递 ->组包

包裹位置参数来进行参数传递

def d(*args):  # 加*后接args(args可改,只要命名规范就行)
    print(args)


d("张三")
d("张三", 45)
d("李四", 45, "张三同伙")
d("王五", 23, "注:想黑吃黑")  # 格式不同
# 结果:
>>> ('张三',)
>>> ('张三', 45)
>>> ('李四', 45, '张三同伙')
>>> ('王五', 23, '注:想黑吃黑')

包裹关键字参数来进行参数传递 ——》返回一个字典类型

def e(**kwargs):  # 加**(两个*)后接kwargs(kwargs可改,只要命名规范就行)
    print(kwargs)

e(name="张三")
e(name="张三", age=45)
e(name="李四", age=45, relation="张三同伙")  # relation 中文意思:关系
# 结果:
>>> {'name': '张三'}
>>> {'name': '张三', 'age': 45}
>>> {'name': '李四', 'age': 45, 'relation': '张三同伙'}

12.3、函数的返回值

return作用
. . . a、负责函数的返回值,把结果返回给用户(返回结果给函数调用的地方
. . . b、如果遇到了return,就直接返回,return下方函数体后面的内容不执行

def bug():
    return "单身狗"  # 返回结果给函数调用的地方
print(bug())
# 结果:
>>> 单身狗
# 用return函数计算两数字和
def sum_num1(a1, b1):  # 定义一个sum_num1函数,里面有两个形参
    return a1+b1
    
result1 = sum_num1(2, 3)  # 括号内为传参(实参)
print(result1)
# 结果:
>>> 5

12.4、 函数的说明文档

函数的说明文档:专门针对函数出现,定义一个函数程序员如何快速的明白该函数的作用

help函数:查看函数说明文档(函数的解释说明的信息)

help()  # 运行

>>> Welcome to Python 3.7's help utility!
>>> If this is your first time using Python, you should definitely check outthe tutorial on the Internet at https://docs.python.org/3.7/tutorial/.
>>>
>>> Enter the name of any module, keyword, or topic to get help on writing Python programs and using Python modules.  To quit this help utility and
>>> return to the interpreter, just type "quit".

>>> To get a list of available modules, keywords, symbols, or topics, type,"modules", "keywords", "symbols", or "topics".  Each module also comes, with a one-line summary of what it does; to list the modules whose name, or summary contain a given string such as "spam", type "modules spam".

>>> help>

以下是译文

# 翻译:
欢迎来到Python3.7的帮助实用程序!
如果这是您第一次使用Python,您一定要检查一下,该教程可以在https://docs.python.org/3.7/tutorial/网站上找到。
#
# 输入任何模块、关键字或主题的名称来获得写作帮助
Python程序和使用Python模块。 退出这个帮助工具和返回到解释器,输入"quit">
# help(len)  # 可以是内部函数
# 结果:
Help on built-in function len in module builtins:

len(obj, /)
Return the number of items in a container.

help函数的语法

def 函数名():
    """说明文档的位置"""
    代码
    .....

“查看函数的说明文档”
help(函数名)

例如:
用法一:

def sum_num1(a1, b1):  # 先定义一个函数,然后写上说明文档
    """求和函数,返回a1+b1的值"""
    return a1+b1
    
result1 = sum_num1(2, 3)
# print(result1)  # 结果:5

help(sum_num1)  # 函数后面的括号不要
# 结果:
>>> Help on function sum_num1 in module __main__:
>>>
>>> sum_num1(a1, b1)
>>>    求和函数,返回a1+b1的值

用法2

说明文档的3对引号正中间回车,会出现对函数里面用到的参数一个个说明

def sum_num2(a1, b1):
    """
    函数作用,求a1和b1相加的和
    :param a1: 参数1
    :param b1: 参数2
    :return: 返回值
    """
    return a1+b1


help(sum_num2)
# 结果:
>>> Help on function sum_num2 in module __main__:
>>>
>>> sum_num2(a1, b1)
>>>     函数作用,求a1和b1相加的和
>>>     :param a1: 参数1
>>>     :param b1: 参数2
>>>     :return: 返回值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值