函数
- 定义函数:封装独立的功能
- 调用函数:使用封装的成果
快速体验
#loop.py文件
def print9multi9():
row = 1
while row <= 9:
col = 1
while col <= row:
print("%d * %d = " % (col, row) + str(col * row), end="\t")
col += 1
print("")
row += 1
#function_test.py文件
import loop #导入模块
loop.print9multi9() #使用模块中的方法
函数的定义
- 使用def定义函数,def是define的缩写
- 函数名称应该能够准确表达函数封装代码的功能,方便后续的调用
- 函数命名应该遵循标识符命名规则
def 函数名():
······
函数的调用
#()内为函数的参数
函数名()
- python 解释器在读到def 关键字时,明确此处定义了一个函数
- 只有在程序中,主动调用函数,才能让函数执行
- 调用函数之前,应该先定义函数,原因是python是自上而下一行一行执行的
函数的文档注释
- PEP 8建议,函数定义上方保留两个空行
- 在函数入口,为函数增加文档注释
def sayHello():
"""
打招呼
"""
print("say hello")
- 在Pycharm中,使用Ctrl+Q ,可以快速查看该函数的文档注释
- 在Pycharm中,使用代码提示(Insert docstring stub),可以生成带参数的文档注释
函数的参数
数字求和
def sum_2_num(num1,num2):
result = num1+num2
参数
- 在函数定义的 () 内填写参数
- 参数之间以 , 分割
- 函数的参数,增加函数的通用性,针对相同数据的处理逻辑,能够适应更多的数据
- 在函数 内部 ,把参数当作变量来使用,进行需要的数据处理
- 函数在调用时,按照函数定义的参数顺序,把希望在函数内部处理的数据,通过参数传递
形参和实参
- 形参,定义 函数时,小括号中的参数,用来接收参数,在函数内部作为变量使用
- 实参,调用 函数时,小括号中的参数,用来把数据传递到 函数内部
函数的返回值
- 在程序开发中,有的时候希望一个函数执行结束后,返回一个结果,便于调用者通过返回结果做后续处理
- 返回值是 函数 完成工作后,最后给 调用方 的一个结果
- 在函数中使用 return 关键字返回结果
- 调用者用 变量 来获得调用函数的返回结果
def sum_2_num(num1,num2):
return num1+num2
return 关键字后面的代码,不会被执行
函数的嵌套调用
def test():
print("8" * 50)
def test1():
print("-" * 50)
test() # 嵌套调用
使用模块中的函数
- 模块是python程序架构中的一个核心概念,使用 import关键字导入模块
- 每个以 py 结尾的文件都是一个模块
- 在模块中定义的全局变量、函数都是模块能够提供给外界使用的工具
- 使用 模块名.变量或者模块名.函数 的方式使用模块
- 模块名也是python标识符,命名规则与标识符命名一致(由字母、数字、下划线组成,不能以数字开头,不能与关键字重复)
pyc文件
表示编译后的python文件,使用import导入后,python解释器将导入的模块编译成 字节码,提高程序运行效率