【Python进阶篇】python之函数的返回值

返回值简介

  • 简单介绍 print 和 return 的区别,print 仅仅是打印在控制台,而 return 则是将 return 后面的部分作为返回值作为函数的输出,可以用变量接走,继续使用该返回值做其它事。
  • 函数需要先定义后调用,函数体中 return 语句的结果就是返回值。如果一个函数没有 reutrn 语句,其实它有一个隐含的 return 语句,返回值是 None,类型也是 'NoneType'。
  • return 语句的作用:结束函数调用、返回值

指定返回值与隐含返回值

  • 函数体中 return 语句有指定返回值时返回的就是其值

  • 函数体中没有 return 语句时,函数运行结束会隐含返回一个 None 作为返回值,类型是 NoneType,与 return 、return None 等效,都是返回 None。

指定 return 返回值函数举例: 

1

2

3

4

5

6

7

8

9

10

11

12

def showplus(x):

    print(x)

    return + 1

     

num = showplus(6)

add = num + 2

print(add)

 

 

输出结果:

6

9

隐含 return None 举例:

1

2

3

4

5

6

7

8

9

10

11

def showplus(x):

    print(x)

 

num = showplus(6)

print(num)

print(type(num))

 

输出结果:

6

None

<class 'NoneType'>

return 语句位置与多条 return 语句

  • python 函数使用 return 语句返回 "返回值",可以将其赋给其它变量作其它的用处;

  • 所有函数都有返回值,如果没有 return 语句,会隐式地调用 return None 作为返回值;

  • 一个函数可以存在多条 return 语句,但只有一条可以被执行,如果没有一条 reutrn 语句被执行,同样会隐式调用 return None 作为返回值;

  • 如果有必要,可以显式调用 return None 明确返回一个None(空值对象)作为返回值,可以简写为 return,不过 python 中懒惰即美德,所以一般能不写就不写;

  • 如果函数执行了 return 语句,函数会立刻返回,结束调用,return 之后的其它语句都不会被执行了

举例 :

 1 def showplus(x):
 2     print(x)
 3     return x + 1
 4     print(x + 1)  #该语句会执行么
 5 
 6 print(showplus(6))
 7 
 8 
 9 输出结果:
10 6
11 7

 

返回值类型

  • 无论定义的是返回什么类型,return 只能返回单值,但值可以存在多个元素;

  • return [1,3,5] 是指返回一个列表,是一个列表对象,1,3,5 分别是这个列表的元素;

  • return 1,3,5 看似返回多个值,隐式地被Python封装成了一个元祖返回

举例 :

def showlist():
    return [1,3,5]   #多元素,返回的是什么类型

print(type(showlist()))
print(showlist())


输出结果:
<class 'list'>
[1, 3, 5]    #列表类型

举例 :

def showlist():
    return 2,4,6   #多值时,不指定类型

print(type(showlist()))
print(showlist())


输出结果:
<class 'tuple'>    #默认封装成元祖类型

函数嵌套

  • 函数有可见范围(内外可见关系),这就是作用域的概念;

  • 内部函数不能被外部直接调用,会抛异常 NameError。

举例 :

def outer():
    def inner():  #可以理解为内部函数
        print("inner")  
    print("outer")
outer()


输出结果:
outer

此时如果调用 outer(),只会执行 print("outer"),因为 inner 虽然在 outer 函数内,但它也是一个函数,函数如果要调用,就必须用 '函数名()' 方式。

举例 :

def outer():
    def inner():
        print("inner")
    print("outer")
    inner()

outer()

输出结果:
outer
inner

【完】

  • 57
    点赞
  • 207
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
### 回答1: Python进阶语法是指对Python编程语言更深入理解和运用的一些高级特性和技巧。掌握这些进阶语法可以让我们编写更高效、灵活和复杂的Python程序。 首先,函数式编程是Python进阶语法中的重要一环。函数是一等公民,可以作为参数传递和返回值返回,使得程序的设计更加灵活和模块化。除了普通函数外,Python还支持匿名函数(lambda表达式)、高阶函数(map、reduce、filter等)和装饰器等函数式编程的特性。 其次,生成器和迭代器也是Python进阶语法中的关键概念。生成器函数可以通过yield关键字实现状态的保存和暂停执行,提高代码的可读性和性能。而迭代器则是一种用于迭代访问集合元素的对象,通过实现__iter__和__next__方法,可以自定义迭代器。 另外,元类(metaclass)是Python进阶语法中的高级特性。元类可以定制类的创建过程,可以在类定义之后对类进行修改,实现一些元编程的功能。它可以用于创建自己的类创建函数,对类的属性和方法进行自动初始化等。 此外,异步编程也是Python进阶语法中的重要内容。asyncio模块和async/await关键字的引入,使得Python可以更好地支持协程编程和异步IO操作,提高程序的并发性和响应性。 最后,对于性能优化和调试技巧,Python进阶语法中也涉及一些相关的知识。比如使用装饰器对函数进行性能统计,使用线程池或进程池并行执行任务,使用性能分析工具对代码进行调优等。 总而言之,Python进阶语法包含了函数式编程、生成器和迭代器、元类、异步编程以及性能优化和调试技巧等多个方面的知识,掌握这些知识可以使我们编写更高级、更复杂的Python程序。 ### 回答2: Python进阶语法是指在掌握基础语法的基础上进一步学习和应用的Python语言的一系列高级特性和用法。通过学习Python进阶语法,可以更加灵活地编写代码,提高代码的可读性和可维护性,实现更加复杂的功能。 Python进阶语法包括但不限于以下几个方面。 1. 函数式编程:函数Python的核心组件之一,进阶语法中可以更加深入地理解函数的原理和特性,并学习使用高阶函数、匿名函数、闭包等概念和技巧,提高代码的简洁性和可重用性。 2. 迭代器和生成器:迭代器和生成器是处理可迭代对象的重要工具,进阶语法可以学习如何自定义迭代器和生成器,以及它们的底层原理和性能优化策略。 3. 装饰器:装饰器是Python中强大且灵活的语法特性,可以在不修改原函数代码的情况下为函数添加新的功能,比如日志记录、计时统计等,提高代码的灵活性和可扩展性。 4. 异常处理:进阶语法中可以学习如何更好地处理异常,包括自定义异常类、多个异常的处理顺序等,提高代码的健壮性和可靠性。 5. 面向对象编程:进阶语法中可以深入学习和应用面向对象编程的概念和技巧,包括类的继承和多态等,实现更加复杂的程序设计。 总之,Python进阶语法是在基础语法的基础上进一步扩展和应用的一系列高级特性和用法。掌握这些语法可以使我们更加灵活地编写代码,提高代码质量和开发效率。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr. Sun_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值