栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

自学Python 22 函数的返回值和变量的作用域

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

自学Python 22 函数的返回值和变量的作用域

Python 函数(二)

文章目录
  • Python 函数(二)
  • 一、函数的返回值
    • 1.1 返回一个简单值
    • 1.2可选实参
    • 1.3返回一个字典
  • 二、变量的作用域
    • 2.1 三种变量作用域
    • 2.2 使用变量作用域


一、函数的返回值

函数并不是总是直接显示输出信息的,有时也可以处理一些数据,并返回一个或一组数据。函数返回的值被称为返回值。在Python中,函数可以使用return语句将值返回到调用函数的代码行。

1.1 返回一个简单值

在Python程序中,对函数返回值的最简单用法就是返回一个简单值,例如返回一个文本单词。示例如下:

def get_name(first_name, last_name):
    "返回一个简单的值"
    full_name = first_name + ' ' + last_name
    return full_name
jiandan = get_name ('五一','劳动节')
print(jiandan)

输出结果:

在上述代码中,在定义函数get_name()时通过形参接收“first_name”和“last_name”,然后将两者合二为一,在它们之间再加上一个空格,并将结果存储在变量full_name。

1.2可选实参

有时需要让实参变成一个可选参数,这样函数的使用者只需要在必要时才提供额外的信息。在Python程序中,可以使用默认值来让实参变为可选的。例如下面的例子中,假设还需要扩展函数get_name()的功能,使其还具备处理中间名的功能,则可以使用如下所示代码,让实参变成一个可选参数:

def get_name(first_name, last_name,middle_name=' '):          #middle_name是可选参数
    "返回一个简单的值"
    full_name = first_name + ' ' + middle_name + ' ' + last_name
    return full_name
jiandan1 = get_name ('五一','劳动节','和')        #调用时对可选参数赋值
jiandan2 = get_name ('五一','劳动节')        #调用时不对可选参数赋值
print(jiandan1)
print(jiandan2)

为让get_name()在没有提供中间名时依然可行,可给实参middle_name指定一个默认值——空字符串,这样调用时,可根据情况对可选实参赋值或者不赋值,执行结果如下:

1.3返回一个字典

在Python程序中,函数可返回任意类型的值,包括列表和字典等复杂的数据结构类型。示例如下:

def person(first_name, last_name,age=''):            #middle_name是可选参数
    "返回一个字典"
    person = {'first' : first_name, 'last': last_name}  #将参数封装在字典person中
    if age:
        person['age'] = age     #设置字典person中的age就是参数age的值
    return person
musician = person ('五一','劳动节',age=20)
print(musician)

在Python程序中,函数person()接收两个参数(first_name和last_name),并将这些值封装到字典中。在存储first_name的值时,使用的键是first,而在存储last_name的值时,使用的键是last。最后返回整个字典。

二、变量的作用域

在Python程序中,变量的作用域是指变量的作用范围,是指这个变量在什么范围内起作用。在Python程序中有三种作用域,分别是局部作用域、全局作用域和内置作用域。

2.1 三种变量作用域

Python三种变量作用域的具体说明如下所示。

  • 局部作用域:定义在函数内部的变量拥有一个局部作用域,表示只能在其被声明的函数内部访问。
  • 全局作用域:定义在函数外的拥有全局作用域,表示可以在整个程序范围内访问。在调用一个函数时,所有在函数内声明的变量名称都将被加入到作用域中。
  • 内置作用域:Python预先定义的。
2.2 使用变量作用域

例如在下面的实例代码中,演示了在函数内外都有同一个名称的变量而不互相影响的过程:

def myfun():
    a = 0
    a += 3
    print('函数内a:',a)
a = 'external'
print('全局作用域a:',a)
myfun()
print('全局作用域a:',a)

输出结果:

另外,还有一种方法使函数中引用全局变量并进行操作,如果要在函数中使用函数外的变量,可以在变量名前使用关键字global。示例如下:

def myfun():
    global a
    a = 0
    a += 3
    print('函数内a:',a)
a = 'external'
print('全局作用域a:',a)
myfun()
print('全局作用域a:',a)

在上述代码中,通过代码“global a”使在函数内使用的变量a变为全局变量。在函数中改变了全局作用域变量a的值,即有字符串“external”变为整数3,执行结果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/858684.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号