以下是本人最近学习函数中的相关说明及代码分享。
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
定义函数的格式如下:
# 函数体相对独立,函数定义的上方,应该和其他代码(包括注释)保留两个空行
def 函数名(参数1, 参数2):
"""函数的文档注释(在函数调用位置,可通过快捷键Ctrl+Q查看文档注释信息)"""
函数封装代码
......
def 是英文 define 的缩写
函数名称应该能够表达函数封装代码的功能,方便后续的调用
函数名称的命名应该 符合 标识符的命名规则
可以由字母、数字和下划线组成
不能以数字开头
不能与关键字重名
def_01_九九乘法表
代码
def multiple_table():
row = 1
while row <= 9:
col = 1
while col <= row:
# print("*", end="")
print("%d * %d = %d" % (col, row, col*row), end="t")
col += 1
# print("%d" % row)
print("")
row += 1
输出结果
只是定义了一个函数,无输出结果,通过def_02_快速体验调用后会有结果输出
def_02_快速体验
代码
import def_01_九九乘法表
def_01_九九乘法表.multiple_table()
输出结果
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
def_03_第1个函数
代码
# 注意:定义好函数之后,只表示这个函数封装了一段代码
# 如果不主动调用函数,函数是不会主动执行的,
# 函数的上方需要有2空白行,否则会出现PEP:8 expected 2 blank lines, found 0提示
def say_hello():
print("hello 1")
print("hello 2")
print("hello 3")
# 调用函数很简单,只需要通过 函数名() 即可完成对函数的调用
say_hello()
输出结果
hello 1
hello 2
hello 3
def_04_第1个函数改造
代码
name = "xdddzc"
# Python 解释器知道下方定义了一个函数
def say_hello():
"""打招呼(函数的文档注释格式)"""
print("hello 1")
print("hello 2")
print("hello 3")
print(name)
# 只有在程序中主动调用函数,才会让函数执行
# 函数执行完成后,会重新回到主程序中,继续执行后面的代码
say_hello()
print(name)
输出结果
xdddzc
hello 1
hello 2
hello 3
xdddzc
def_05_函数的参数
代码
def sum_2_num(num1, num2):
"""对两个数字的求和"""
# num1 = 10
# num2 = 20
result = num1 + num2
print("%d + %d = %d" % (num1, num2, result))
sum_2_num(10, 220)
输出结果
10 + 220 = 230
def_06_函数的返回值
代码
def sum_2_num(num1, num2):
"""对两个数字的求和"""
result = num1 + num2
# 可以使用返回值,告诉调用一方的计算结果
return result
sum_result = sum_2_num(10, 30)
print("计算结果%d" % sum_result)
输出结果
计算结果40
def_07_函数的嵌套调用
代码
def test1():
print("⭐" * 20)
def test2():
print("✳" * 20)
test1()
print("♥" * 20)
test2()
输出结果
✳✳✳✳✳✳✳✳✳✳✳✳✳✳✳✳✳✳✳✳
⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
def_08_打印分割线
代码
def print_line(char, times):
print(char * times)
print_line("⭐ ", 20)
输出结果
⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐
def_09_打印多行分割线
代码
def print_line(char, times):
"""打印分割线
:param char: 分割线字符
:param times: 分割字符重复次数
"""
print(char * times)
def print_lines(char, times, rows):
"""打印多行分割线
:param char: 分割字符
:param times: 分割字符重复次数
:param rows: 分割线打印行数
"""
row = 0
while row < rows:
print_line(char, times)
row += 1
print_lines("⭐ ", 20, 2)
输出结果
⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐
⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐
模块是Python程序架构的一个核心概念
模块就好比工具包,要想使用这个工具包中的工具,就需要 导入impot 这个模块
每一个以扩展名 py 结尾的Python源代码文件都是一个模块
在模块中定义的全局变量、函数都是模块能够提供给外界直接使用的工具
模块名也是一个标识符
由字母、数字和下划线组成
不能以数字开头
不能与关键字重名
注意:如果在给Python文件起名时,以数字开头是无法在PyCharm中导入这个模块的
pyc文件可以提高程序的执行速度,也就是py文件编译后生成的字节码文件
def_10_体验模块
代码
import def_10_分割线模块
def_10_分割线模块.print_line("⭐ ", 33)
print(def_10_分割线模块.name)
创建Python文件def_10_分割线模块.py 供 def_10_体验模块 调用
name = "10_分割线模块_内部变量"
def print_line(char, times):
"""打印分割线
:param char: 分割线字符
:param times: 分割字符重复次数
"""
print(char * times)
def print_lines(char, times, rows):
"""打印多行分割线
:param char: 分割字符
:param times: 分割字符重复次数
:param rows: 分割线打印行数
"""
row = 0
while row < rows:
print_line(char, times)
row += 1
输出结果
⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐
10_分割线模块_内部变量