每天二十分钟学习python_每天 3 分钟,小闫带你学 Python(二十一)

正文共:3035 字 6 图

预计阅读时间:8 分钟

每日分享

When you see a person without a smile, give them one of yours.

当你看到一个没有笑容的人时,请给他们一个。

小闫语录:

传递温暖,既暖了他人,也暖了自己。

前言

1.函数返回值概念理解,以及有返回值的函数书写。

2.函数内多个返回值的情况。

3.函数返回多个数据情况。

学习目标

1.掌握函数的4种类型,了解其使用场景。

2.熟悉函数嵌套的执行顺序。

3.掌握拆包与交换变量的值。

1.函数的4种类型

根据是否有参数以及是否有返回值,可以将函数大体分为四种类型。大家根据实际使用场景进行自由组合,灵活设计使用即可。

1.1 有参数有返回值

描述:此类函数既可以接受参数,又具有返回值。

适用场景:设计一个通用流程,可以根据参数进行数据处理,并将数据处理结果返回给调用者。

示例:# 计算1~num的累积和

def sumresult(num):

result = 0

i = 1

while i<=num:

result = result + i

i+=1

return result

result = sumresult(100)

print('1~100的累积和为:%d'%result)

1.2 有参数无返回值

描述:此类函数可以接受参数,但是没有返回值。

适用场景:适用于不需要返回结果,只需要调整内部变量执行简单输出的情况,如之前根据输入不同名字,输出欢迎语的功能。

示例:def welcomename(name):

print("热烈欢迎 %s 的到来" % name)

1.3 无参数有返回值

描述:此类函数不可以传入参数,但是有返回值。

适用场景:采集指定的数据,或者执行特定的功能需要重复使用结果。

示例:def gettime():

# 进行时间获取操作,此处省略

return time

time = gettime()

1.4 无参数无返回值

描述:此类函数既不能接受参数,又没有返回值。

适用场景:简单的的打印操作。如提示灯、特殊的图形等等。

示例:def printfunc():

print('--------------------------')

print(' 小闫笔记 温馨提示')

print('')

print(' 1. 先看使用说明再进行公众号使用')

print(' 2. 历史文章搜索不在公众号聊天界面')

print(' 3. 感谢每一位关注的粉丝,你的支持是我坚持的动力')

print('--------------------------')

2.函数的嵌套使用

在学习了之前循环函数嵌套使用、条件判断语句嵌套使用的情况后,大家应该理解了嵌套的概念。函数的嵌套使用,顾名思义,函数内部有函数。鉴于大家初学函数,此处嵌套为函数内部调用其他函数,函数内部定义函数的情况称之为闭包,是高级内容,历史文章中有此部分介绍。根据示例,大家思考一下它的执行顺序:def testB():

print('---- testB start----')

print('这里是testB函数执行的代码...(省略)...')

print('---- testB end----')

def testA():

print('---- testA start----')

testB()

print('---- testA end----')

testA()

看一下执行结果,是否同你预想的一样呢?---- testA start----

---- testB start----

这里是testB函数执行的代码...(省略)...

---- testB end----

---- testA end----在调用函数 A 的时候,从上到下按顺序执行函数 A 内部代码 ,在函数 A 内部遇到调用函数 B 时,会从上到下按顺序执行函数 B 内部代码,函数 B 代码执行结束后接着返回函数 A 中调用函数 B 位置之后的代码,直到函数 A 执行完毕。

3.拆包与交换变量的值

3.1 拆包

此处的拆包并非是 CF 中的 C4 炸弹,而是将多个元素的集合,拆分成一个个元素的情况。上述所说集合并非是数据类型集合,而是生活中的概念,集合为很多元素的聚集。

可以拆包的数据类型:元组、列表、字典等多元素集合。

以元组为例,对其进行拆包操作,其他数据类型留给大家练习。mytuple = (1, 2, 3, 4)

a,b,c,d = mytuple

print(a)

print(b)

print(c)

print(d)

执行结果为:1

2

3

4经过拆包操作,可以看到元组内部的元素已经分别赋值给了 a/b/c/d。

3.1.1 注意

拆包时,外部接收变量的个数必须与元素集合内部元素个数一致,否则会报错。

3.1.2 应用

前面讲到,一个函数如果有多个返回值,但是在调用函数后,使用一个变量进行接收返回值,会发现变量是一个元组,如果想使用内部的元素,可以进行拆包操作:def getinfo():

name = 'Ethanyan'

weight = 175

age = 18

return name, weight, age

my_name, my_weight, my_age = getinfo()

print(my_name)

print(my_weight)

print(my_age)大家看到结果或许很熟悉,之前讲到函数返回值时提到过此种写法,但是未说明它是拆包操作,现在理解即可。

3.2 交换变量的值

假设有两个变量 a 和 b,如果想要交换两者的值,怎么办?

1.可以使用第三个变量:a = 4

b = 6

c = a

a = b

b = c

print(a)

print(b)

查看输出结果:6

4

可以看到变量 a 和 b 的值已经互换。

2.Python 骚操作

Python 提供了一种交换变量值的骚操作,如下:a = 4

b = 6

a, b = b, a

print(a)

print(b)

查看结果:6

4

达到了效果,而且简化了操作。是不是很厉害?

4.作业

1.写一个函数,此函数功能为打印一条横线。

2.将上个函数改写,可以打印自定义函数的横线。涉及到了函数嵌套的使用

答案:# 打印一条横线

def printOneLine():

print("-"*30)

# 打印多条横线

def printNumLine(num):

i=0

# 因为printOneLine函数已经完成了打印横线的功能,

# 只需要多次调用此函数即可

while i

printOneLine()

i+=1

printNumLine(3)

3.写一个函数求三个数的和。

4.将上面的函数改写,改为可以求三个数的平均值。

答案:# 求3个数的和

def sum3Number(a,b,c):

return a+b+c # return 的后面可以是数值,也可是一个表达式

# 完成对3个数求平均值

def average3Number(a,b,c):

# 因为sum3Number函数已经完成了3个数的就和,所以只需调用即可

# 即把接收到的3个数,当做实参传递

sumResult = sum3Number(a,b,c)

aveResult = sumResult/3.0

return aveResult

# 调用函数,完成对3个数求平均值

result = average3Number(11,2,55)

print("average is %d"%result)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值