本文的练习是基于前三章的练习进行函数的改写。
这是python基础的最后一个章节。大家在看文档时候,也可以配套下面的网站进行学习,效果事半功倍。
文章目录
一、函数 function
pycharm相关设置
“代码自动完成”时间延时设置
File -> Settings -> Editor -> General -> Code Completion -> Autopopup in (ms):0.
快捷键:
Ctrl +P 参数信息(在方法中调用参数)
Ctrl + Q 快速查看文档
Ctrl + Alt+ M 提取方法
定义
- 用于封装一个特定的功能,表示一个功能或者行为。
- 函数是可以重复执行的语句块,可以重复调用。
定义函数
语法:
def 函数名(形式参数):
函数体
说明:
def关键字∶全称是define,意为“定义”。
函数名∶对函数体中语句的描述,规则与变量名相同。
形式参数︰方法定义者要求调用者提供的信息。
函数体∶完成该功能的语句。
函数的第一行语句建议使用文档字符串描述函数的功能。
调用函数
语法:函数名(实际参数)
说明:根据形参传递内容。
"""
自定义函数
"""
#定义(做功能)函数
def attack01():
"""
单次攻击
"""
print("临门一脚")
print("直拳")
print("摆拳")
print("肘击")
def attack02(count):#count是形式参数
"""
:param count: 攻击次数,int类型
"""
for i in range(count):
print("临门一脚")
print("直拳")
print("摆拳")
print("肘击")
#调用函数
attack01()
#调用函数
attack01()
#调用函数
attack01()
print("----------------")
#调用函数
#3是实际参数
attack02(3)
运行结果:
临门一脚
直拳
摆拳
肘击
临门一脚
直拳
摆拳
肘击
临门一脚
直拳
摆拳
肘击
----------------
临门一脚
直拳
摆拳
肘击
临门一脚
直拳
摆拳
肘击
临门一脚
直拳
摆拳
肘击
练习1:将下列代码,定义到函数中,再调用一次。
for r in range(3):
#内层循环控制列#0123 0123 0123
for c in range(4):
print("*", end="")
print()
def print01(r_count,c_count,char):
"""
打印矩形
:param r_count: 行数
:param c_count: 列数
:param char: 填充的字符
"""
for r in range(r_count):
#内层循环控制列#0123 0123 0123
for c in range(c_count):
print(char, end="")
print()
print01(3,4,"#")
运行结果:
####
####
####
练习2:定义在控制台中打印一维列表的函数。
【例如[1,2,3]—>1 2 3 每个元素一行】
def print02(list_target):
"""
打印列表
:param list_target: 一维数组列表
"""
for item in list_target:
print(item)
print02([1,2,3])
print02(["a",True,1,1.5])
运行结果:
1
2
3
a
True
1
1.5
练习3:定义在控制台中打印二维列表的函数。
例如:
[
[1,2,3,44],
[4,5,5,5,65,6,87],
[7,5]
]
变成:
1 2 3 44,
4 5 5 5 65 6 87
7 5
def print_list(list_target):
"""
打印二维列表
:param list_target:需要打印的二维列表
"""
for item in list_target:
for i in range(len(item)):
print(item[i],end = " ")
print()
list01=[
[1,2,3,44],
[4,5,5,5,65,6,87],
[7,5]
]
print_list(list01)
运行结果:
1 2 3 44
4 5 5 5 65 6 87
7 5
练习4:(扩展)方阵转置,不用做成函数
提示:详见图片
思路:# (0,1)(0,2)(0,3)
# (1,2)(1,3)
# (2,3)
list02= [
[1,2,3,4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16],
]
# 方法一:
for r in range(len(list02)