"""
函数 function
定义:
功能,使用一个名称,包装多个语句
语法:
做
def 名字(形参):
函数体
用
名字(实参)
"""
# 定义(做功能)函数,函数内的东西不调用
def attack():
"""
:return:
"""
print("唱")
print("跳")
print("rap")
print("打篮球")
# 调用函数
attack()
# ..........
# 调用函数
attack()
# ..........
# 调用函数
attack()
# ()为形式参数
def attack_repeat(count):
"""
:param count:
:return:
"""
for i in range(count):
print("唱")
print("跳")
print("rap")
print("打篮球")
# 调用函数
# 实际参数
attack_repeat(3)
# 练习1:
# 将下列代码定义到函数中,再调用一次。
# for r in range(3): # 0 1 2
# #内层循环控制列,外层循环控制行
# for c in range(4): # 0123 0123 0123
# print("*", end=" ")
# print()
def print_rectangle(r_count, c_count, char):
"""
打印矩形
:param r_count: 行数
:param c_count: 列数
:param char: 填充的字符
"""
for r in range(r_count):
for c in range(c_count):
print(char, end="")
print()
print_rectangle(3, 4, "*")
# 练习2:
# 定义在控制台中打印一维列表的函数
# 例如:[1, 2, 3] -> 123 每个元素一行
def print_list(list_target):
"""
打印列表
:param list_target: 目标列表
"""
for item in list_target:
print(item)
list01 = [1, 2, 3]
print_list(list01)
# 练习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_double_list(double_list):
"""
打印二维列表
:param double_list:需要打印的二维列表
"""
for line in double_list:
for item in line:
print(item, end=" ")
print()
list01 = [
[1, 2, 3, 44],
[4, 5, 5, 5, 65, 6, 87],
[7, 5]
]
print_double_list(list01)
# 练习4:
# 方阵转置算法
# (不用做成函数)
# 提示:详见内存图
内存图解刨:
list02 = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]
]
# # 思路:
# # 第一步:
# # list02 [1][0] <-> list02[0][1] # 2<->5
# # list02 [2][0] <-> list02[0][2] # 3<->9
# # list02 [3][0] <-> list02[0][3] # 4<->13
# # 第二步:
# for r in range(1, 4):
# # list02[r][0] <-> list02[0][r]
# pass
#
# # list02[2][1] <-> list02[1][2] # 7<->10
# # list02[3][1] <-> list02[1][3] # 8<->14
# for r in range(2, 4): # 2 3
# # list02[r][1] <-> list02[1][r] # 7<->10
# pass
#
# # list02[3][2] <-> list02[2][3] # 12<->15
# for r in range(3,4):
# # list02[r][2] <-> list02[2][r] # 12<->15
# pass
# # 第三步:
# for c in range(1, 4): # 1 2 3
# for r in range(c, 4):
# list02[r][c - 1], list02[c - 1][r] = list02[c - 1][r], list02[r][c - 1] # 12<->15
# print(list02)
for c in range(1, len(list02)): # 1 2 3
for r in range(c, len(list02)):
list02[r][c - 1], list02[c - 1][r] = list02[c - 1][r], list02[r][c - 1] # 12<->15
print(list02)