0
点赞
收藏
分享

微信扫一扫

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

朱悟能_9ad4 2022-03-23 阅读 30
python

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

十二、函数基础

12.1、函数的定义

12.2、函数的使用步骤:

12.2.1、定义函数

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

例如:

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


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

12.2.2、函数参数

def num1(x, y):  # x, y与下面调用函数位置要一一对应,个数也要一致
    # 定义函数时同时定义了接收用户数据的参数x和y。  x,y为形参
    print(x)
    print(y)
    z = x + y
    print(z)


num1(9, 10)  # 调用函数时传入了真实的数据9和10,真实数据为实参
# 结果:
>>> 9
>>> 10
>>> 19

12.2.3、参数的分类

12.2.3.1、位置参数
def a(name, age, gender):
    print(f"您的姓名是{name}, 年龄是{age}, 性别是{gender}")
 
a("xli", 28, "女")  # 注意顺序(参数从左至右对应)以及个数(个数必须一致)
# 结果:
>>> 您的姓名是xli, 年龄是28, 性别是女
12.2.3.2、关键字参数
def b(name, age, gender):
    print(f"您的姓名是{name}, 年龄是{age}, 性别是{gender}")
# b(name="xiao", age=23, gender="女")
b(age=23, gender="女", name="xiao")  # 关键字参数的传参和顺序无关,不影响
# 结果:
>>> 您的姓名是xiao, 年龄是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、函数的返回值

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 函数名():
    """说明文档的位置"""
    代码
    .....

例如:
用法一:

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

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 条评论