python基础(四)

本文详细讲解了Python中的函数,包括pycharm的相关设置、定义与调用、返回值、函数内存图,以及作用域LEGB规则。通过多个练习介绍了函数参数、可变与不可变类型的传参区别,并探讨了局部和全局变量、global语句的使用。此外,还涵盖了函数参数的实际参数、形式参数及不同类型的参数传递方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文的练习是基于前三章的练习进行函数的改写。
这是python基础的最后一个章节。大家在看文档时候,也可以配套下面的网站进行学习,效果事半功倍。在这里插入图片描述


一、函数 function

pycharm相关设置

“代码自动完成”时间延时设置
File -> Settings -> Editor -> General -> Code Completion -> Autopopup in (ms):0.
快捷键:
Ctrl +P 参数信息(在方法中调用参数)
Ctrl + Q 快速查看文档
Ctrl + Alt+ M 提取方法

定义

  1. 用于封装一个特定的功能,表示一个功能或者行为。
  2. 函数是可以重复执行的语句块,可以重复调用。

定义函数

语法:

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)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值