Python基础(九),零基础钢琴第九课
Python基础(九),零基础钢琴第九课
今日主要内容
- 函数初识
- 函数定义
- 函数调用
- 函数返回值
- 函数参数
一、函数初识
(一)为什么要用函数
有一个需求,给出一个变量,计算变量的长度,要求不能使用len()
s = "郭老湿今天崩溃了,在后面直叹气"
count = 0
for i in s:
count += 1
print(count)
我们利用上述一段代码完成了需求,很强666。但是问题来了,现在100个人每个人给你一个变量,让你计算变量的长度,此时只能苦逼的敲代码来计算!!!
s = ......
count = 0
for i in s:
count += 1
print(count)
lst = ......
count = 0
for i in lst:
count += 1
print(count)
tu = ......
count = 0
for i in tu:
count += 1
print(count)
......................
我们发现一个问题,上述每一段代码有将近99%的内容完全一样,我们完全可以把这段代码提前写出来,等到使用的时候,拿过来用一下,解决了我们重复性的大问题,这就是函数的产生
def my_len(): # 这就是把我的代码封装成一个函数
count = 0
for i in s:
count += 1
print(count)
s = [1, 2, 3, 4, 5]
my_len()
s = "12345"
my_len()
......................
函数可以为我们精简代码,把重复的内容封装起来,需要使用的时候调用就好了,同时加强了代码的重用性
(二)函数定义
定义函数的格式:
def 函数名():
函数体
- def:定义函数的关键字
- 函数名:函数名的命名规范和变量的命名规范完全相同
- 函数体:函数执行的时候,真正执行的部分
补充:定义变量时,开辟的内存空间、内存地址与变量名之间的关系
- 内存空间:程序执行到定义变量内一行,先开辟一块内存空间,用来存放数据
- 内存地址:当内存空间开辟之后,内存地址同时就产生了,一个内存空间的地址是永远不会改变的
- 变量名:内存地址的外号,可以更快的找到内存空间,可有可无
s = "zxd"
print(id("zxd")) # 2844747728632
print(s)
此时已经开辟了一块内存空间,同时产生内存地址,之后为了方便找到"zxd",起一个外号为a,a也指向这个内存空间
- 函数定义
- 函数调用
- 函数返回值
- 函数参数
(一)为什么要用函数
有一个需求,给出一个变量,计算变量的长度,要求不能使用
len()
s = "郭老湿今天崩溃了,在后面直叹气" count = 0 for i in s: count += 1 print(count)
我们利用上述一段代码完成了需求,很强666。但是问题来了,现在100个人每个人给你一个变量,让你计算变量的长度,此时只能苦逼的敲代码来计算!!!
s = ...... count = 0 for i in s: count += 1 print(count) lst = ...... count = 0 for i in lst: count += 1 print(count) tu = ...... count = 0 for i in tu: count += 1 print(count) ......................
我们发现一个问题,上述每一段代码有将近99%的内容完全一样,我们完全可以把这段代码提前写出来,等到使用的时候,拿过来用一下,解决了我们重复性的大问题,这就是函数的产生
def my_len(): # 这就是把我的代码封装成一个函数 count = 0 for i in s: count += 1 print(count) s = [1, 2, 3, 4, 5] my_len() s = "12345" my_len() ......................
函数可以为我们精简代码,把重复的内容封装起来,需要使用的时候调用就好了,同时加强了代码的重用性
(二)函数定义
定义函数的格式:
def 函数名(): 函数体
- def:定义函数的关键字
- 函数名:函数名的命名规范和变量的命名规范完全相同
- 函数体:函数执行的时候,真正执行的部分
补充:定义变量时,开辟的内存空间、内存地址与变量名之间的关系
- 内存空间:程序执行到定义变量内一行,先开辟一块内存空间,用来存放数据
- 内存地址:当内存空间开辟之后,内存地址同时就产生了,一个内存空间的地址是永远不会改变的
- 变量名:内存地址的外号,可以更快的找到内存空间,可有可无
s = "zxd" print(id("zxd")) # 2844747728632 print(s)
此时已经开辟了一块内存空间,同时产生内存地址,之后为了方便找到"zxd",起一个外号为a,a也指向这个内存空间
```
print("zxd")
print(id("zxd")) # 2118956123896
# 单执行这句话时,开辟了一块内存空间,同时产生内存地址,但是这个就没有变量名,所以变量名可有可无,但内存地址是唯一的
(三)函数调用
函数的调用就是使用之前预先定义好的函数
函数调用方法:
函数名+()
def play(): print("登陆游戏") print("开始排位赛") print("开始激烈的争逐...") print("Victory") play() # 函数名+括号 就是函数调用
函数执行顺序
- 先定义,在调用,调用后执行函数体内容
- 在内存中的变化
- 定义函数时在在内存中开辟一块空间,用于存放函数体执行时产生的数据
- 当调用函数时,执行到每一行代码都会新开辟一块内存空间用来存储数据
(四)函数返回值
函数名+()
的全部作用:- 调用函数
- 接收返回值
(五)函数参数
看我们一段上面的代码
def play(): print("登陆游戏") print("开始排位赛") print("开始激烈的争逐...") print("Victory") play()
这是LOL大概的流程,但是我们忽略了一点,打排位得选英雄吧,那么此时我们需要填入一个参数来决定我们选择的英雄
def play(hero): print("登陆游戏") print("开始排位赛") print("选择英雄", hero) print("进入召唤师峡谷") print("开始激烈的争逐...") print("Victory") play("卡莎")
而hero就是我们填入的参数,在函数执行的时候,我们传入的参数就会通过函数名传入到我们的函数体中,这有点类似我们的格式化输出,参数其实可以理解为一个占位符,通过函数调用时传进去,接下来我们来看看参数的分类
相关内容
- 暂无相关文章
评论关闭