"""
    函数 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:
#     方阵转置算法
#        (不用做成函数)
#        提示:详见内存图

python function类型 python function函数的用法_调用函数

 

 

内存图解刨:

python function类型 python function函数的用法_调用函数_02

 

 

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)