Python学习笔记(四):函数的定义、函数的返回值、None类型、函数说明文档、函数的嵌套调用、局部变量、全局变量、global关键字

这篇具有很好参考价值的文章主要介绍了Python学习笔记(四):函数的定义、函数的返回值、None类型、函数说明文档、函数的嵌套调用、局部变量、全局变量、global关键字。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、函数介绍

1. 函数是:

2. 使用函数的好处是:

二、函数的定义:

三、函数的参数

1.传入参数的功能是:

2.函数的传入参数 - 传参定义

3.注意事项:

4.练习:测量体温

四、函数的返回值

1.函数返回值的定义

2.None类型

五、函数说明文档

六、函数的嵌套调用

七、变量的作用域

1.局部变量

2.全局变量

3.global关键字

案例:银行ATM


一、函数介绍

1. 函数是:

组织好的、可重复使用的、用来实现特定功能的代码段

2. 使用函数的好处是:

将功能封装在函数内,可供随时随地重复利用

提高代码的复用性,减少重复代码,提高开发效率

二、函数的定义:

def 函数名(传入参数):

       函数体

       return  返回值

函数的调用:

 函数名(参数)

#求字符串长度
defmy_len(data):
count=0
foriindata:
count+=1
print(f"字符串{data}的长度是{count}")

#函数调用
my_len("abc")
my_len("abcd")
my_len("abcde")

注意:

① 参数如不需要,可以省略

② 返回值如不需要,可以省略

③ 函数必须先定义后使用

三、函数的参数

1.传入参数的功能是:

在函数进行计算的时候,接受外部(调用时)提供的数据

有如下代码,完成了2个数字相加的功能:Python学习笔记(四):函数的定义、函数的返回值、None类型、函数说明文档、函数的嵌套调用、局部变量、全局变量、global关键字,学习,笔记,python

函数的功能非常局限,只能计算1 + 2。

有没有可能实现:每一次使用函数,去计算用户指定的2个数字,而非每次都是1 + 2呢?

可以的,使用函数的传入参数功能,即可实现。

2.函数的传入参数 - 传参定义

基于函数的定义语法:

def 函数名(传入参数):

       函数体

       return  返回值

可以有如下函数定义:

#定义函数
def add(x,y):
      result = x + y
      print(f"{x}+{y}的结果是:{result}")
#调用函数
add(5.6)

实现了,每次计算的是x + y,而非固定的1 + 2

x + y的值,可以在调用函数的时候指定。

函数定义中,提供的x和y,称之为:形式参数(形参),表示函数声明将要使用2个参数

参数之间使用逗号进行分隔

函数调用中,提供的5和6,称之为:实际参数(实参),表示函数执行时真正使用的参数值

传入的时候,按照顺序传入数据,使用逗号分隔

3.注意事项:

函数定义中的参数,称之为形式参数

函数调用中的参数,称之为实际参数

函数的参数数量不限,使用逗号分隔开

传入参数的时候,要和形式参数一一对应,逗号隔开

4.练习:测量体温

#定义函数,接收一个形式参数,数字类型,表示体温
defcheck(num):
#在函数体内进行判断体温
print("去测量一下你的体温")
ifnum<=37.5:
print(f"体温测量中,您的体温是:{num}度,体温正常!")
else:
print(f"体温测量中,您的体温是:{num}度,您生病了,请及时就医!!!")

#调用函数传入实际参数改为浮点数输入温度并使用函数调用
check(float(input("请输入您的体温:")))

四、函数的返回值

1.函数返回值的定义

1.1 什么是函数返回值?

函数在执行完成后,返回给调用者的结果

1.2返回值的应用语法:

使用关键字:return 来返回结果

#定义一个函数,完成2数相加功能
defadd(a,b):
result=a+b
#通过返回值,将相加的结果返回给调用者
returnresult

#函数的返回值,可以通过变量去接收
r=add(5,6)
print(r)

1.3 注意:

函数体在遇到return后就结束了,所以写在return后的代码不会执行。

#定义一个函数,完成2数相加功能
defadd(a,b):
result=a+b
#通过返回值,将相加的结果返回给调用者
returnresult
#返回结果后,还想说句话 
print("我完事了")  #这句话不打印

#函数的返回值,可以通过变量去接收
r=add(5,6)
print(r)

2.None类型

2.1None

思考:如果函数没有使用return语句返回数据,那么函数有返回值吗?

实际上是:有的。

Python中有一个特殊的字面量:None,其类型是:<class 'NoneType'>

无返回值的函数,实际上就是返回了:None这个字面量

None表示:空的、无实际意义的意思

函数返回的None,就表示,这个函数没有返回什么有意义的内容。

也就是返回了空的意思。

2.2None类型的应用场景

None作为一个特殊的字面量,用于表示:空、无意义,其有非常多的应用场景。

用在函数无返回值上

用在if判断上

在if判断中,None等同于False

一般用于在函数中主动返回None,配合if判断做相关处理

用于声明无内容的变量上

定义变量,但暂时不需要变量有具体值,可以用None来代替

五、函数说明文档

函数是纯代码语言,想要理解其含义,就需要一行行的去阅读理解代码,效率比较低。

我们可以给函数添加说明文档,辅助理解函数的作用。

语法如下:

Python学习笔记(四):函数的定义、函数的返回值、None类型、函数说明文档、函数的嵌套调用、局部变量、全局变量、global关键字,学习,笔记,python

:param 用于解释参数

:return 用于解释返回值

通过多行注释的形式,对函数进行说明解释

内容应写在函数体之前

在PyCharm编写代码时,可以通过鼠标悬停,查看调用函数的说明文档

Python学习笔记(四):函数的定义、函数的返回值、None类型、函数说明文档、函数的嵌套调用、局部变量、全局变量、global关键字,学习,笔记,python

六、函数的嵌套调用

所谓函数嵌套调用指的是一个函数里面又调用了另外一个函数Python学习笔记(四):函数的定义、函数的返回值、None类型、函数说明文档、函数的嵌套调用、局部变量、全局变量、global关键字,学习,笔记,python

执行效果:

Python学习笔记(四):函数的定义、函数的返回值、None类型、函数说明文档、函数的嵌套调用、局部变量、全局变量、global关键字,学习,笔记,python

执行过程:

Python学习笔记(四):函数的定义、函数的返回值、None类型、函数说明文档、函数的嵌套调用、局部变量、全局变量、global关键字,学习,笔记,python

如果函数A中,调用了另外一个函数B,那么先把函数B中的任务都执行完毕之后才会回到上次 函数A执行的位置

七、变量的作用域

1.局部变量

变量作用域指的是变量的作用范围(变量在哪里可用,在哪里不可用)

主要分为两类:局部变量和全局变量

所谓局部变量是定义在函数体内部的变量,即只在函数体内部生效

Python学习笔记(四):函数的定义、函数的返回值、None类型、函数说明文档、函数的嵌套调用、局部变量、全局变量、global关键字,学习,笔记,python

变量a是定义在`testA`函数内部的变量,在函数外部访问则立即报错.

局部变量的作用:在函数体内部,临时保存数据,即当函数调用完成后,则销毁局部变量

2.全局变量

所谓全局变量,指的是在函数体内、外都能生效的变量

思考:如果有一个数据,在函数A和函数B中都要使用,该怎么办?

答:将这个数据存储在一个全局变量里面

 Python学习笔记(四):函数的定义、函数的返回值、None类型、函数说明文档、函数的嵌套调用、局部变量、全局变量、global关键字,学习,笔记,python

3.global关键字

思考:`testB`函数需要修改变量num的值为200,如何修改程序?

Python学习笔记(四):函数的定义、函数的返回值、None类型、函数说明文档、函数的嵌套调用、局部变量、全局变量、global关键字,学习,笔记,python

`testB`函数内部的 num = 200 是定义了一个局部变量

☆ 使用 global关键字 可以在函数内部声明变量为全局变量, 如下所示

Python学习笔记(四):函数的定义、函数的返回值、None类型、函数说明文档、函数的嵌套调用、局部变量、全局变量、global关键字,学习,笔记,python文章来源地址https://www.toymoban.com/news/detail-751708.html

案例:银行ATM

#定义全局变量moneyname
money=500000
name=None
#要求用户输入姓名
name=input("请输入您的姓名:")
#定义查询函数
defquery(show_header):
ifshow_header:
print("-----------查询余额-----------")
print(f"{name},您好,您的余额剩余:{money}元")
#定义存款函数
defsaving(num):
globalmoney#使用global让money在函数内部定义为全局变量
money+=num
print("-----------存款-----------")
print(f"{name},您好,您存款{num}元成功")

#调用query函数查询余额
query(False)
#定义取款函数
defget_money(num):
globalmoney#使用global让money在函数内部定义为全局变量
money-=num
print("-----------取款-----------")
print(f"{name},您好,您取款{num}元成功")

#调用query函数查询余额
query(False)
#定义主菜单函数
defmain():
print("-----------主菜单-----------")
print(f"{name}.您好,欢迎来到ai坤银行。请选择操作:")
print("查询余额\t[输入1]")
print("存款\t\t[输入2]")
print("取款\t\t[输入3]")#通过\t制表符对齐输出
print("退出\t[输入4]")
returninput("请输入您的选择:")
#设置无限循环,确保程序不退出
whileTrue:
keyboard_input=main()
ifkeyboard_input=="1":
query(True)
continue#通过continue继续下次循环,一进来就是回到了主菜单
elifkeyboard_input=="2":
num=int(input("你想存多少钱?请输入"))
saving(num)
continue
elifkeyboard_input=="3":
num=int(input("你想取多少钱?请输入"))
get_money(num)
continue
else:
print("程序退出了")
break#通过break退出循环

到了这里,关于Python学习笔记(四):函数的定义、函数的返回值、None类型、函数说明文档、函数的嵌套调用、局部变量、全局变量、global关键字的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python入门篇】——Python函数(函数介绍,函数的定义,函数的参数和函数的返回值)

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: Python入门,本专栏主要内容为Python的基础语法,Python中的选择循环语句,Python函数,Python的数据容器等。 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 函数:是组织好的

    2024年02月08日
    浏览(81)
  • Django authenticate() 函数查找不到与提交的用户名和密码匹配的用户,则会返回 None。

    在你的user APP下面添加一个utils.py文件 然后在你的配置文件里面添加 就可以解决了. 如果不可以就: 检查您的用户名和密码是否正确,并确保它们与数据库中的数据一致。 确保您正在使用正确的身份验证后端。如果您使用的是 Django 默认的身份验证后端,可以在  AUTHENTICATION

    2024年02月05日
    浏览(46)
  • 【python基础】—函数def()的定义与调用、参数、return返回值及变量作用域

    语法: 举例: 上面我们定义一个名字为hello的函数,括号内部是函数接收的参数name,紧接着就是函数的功能代码。 多次调用 位置参数 这里的\\\"手拍黄瓜\\\"和\\\"大米饭\\\"是对应参数appetizer和course的位置顺序传递的,所以被叫作位置参数,这也是最常见的参数类型。 默认参数 注意

    2024年02月02日
    浏览(40)
  • C语言——自定义类型结构体_学习笔记

    结构体是一种用户自定义的数据类型,可以包含 多个不同类型的变量 。通过使用结构体,我们可以将相关联的数据组织在一起,便于管理和使用。 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型的一类。 结构体可以包含多个不同类型的数据成员,例

    2024年02月07日
    浏览(40)
  • C#学习笔记--复杂数据类型、函数和结构体

    特点:多个数据变量地一个集合体,可以自己命名 种类:枚举、数组和结构体 枚举:整型常量的集合 数组:任意变量类型的顺序存储的数据集合 结构体:任意变量类型的数据组合成的数据块 枚举 : 枚举可以方便表示对象的各种状态,本质还是一种变量。 例如我们可以用

    2024年02月08日
    浏览(44)
  • TypeScript 获取函数的参数类型、返回值类型

    事例: 使用预定义的 Parameters 可以获取到一个函数的参数类型列表。 获取 test 函数的参数类型: 获取 idx 参数的类型: 我们看一下 Parameters 的定义: 我们可以看到,其实它主要是通过 infer P 获取到 T 的参数类型列表 P 并返回,如果 T 不是函数则返回 never 。 使用预定义的

    2024年02月09日
    浏览(37)
  • Linux shell编程学习笔记24:函数定义和使用

    *20231113 补充了实例使用for循环来简化代码的内容 为了实现模块化设计和代码重用,很多编程语言支持函数或过程,Linux shell也支持函数定义和调用。 Linux shell中的函数与其它编程语言很多有相似之处,也有自己独特之处。 其中: function是 Shell 中的,专门用来定义函数

    2024年02月05日
    浏览(60)
  • 小议C++函数签名与模板返回类型

    题记:什么事情都要追问一个为什么,真正理解了为什么,才能活学活用。 下面的代码能编译通过吗? 答案肯定是编译不过。因为下面两个函数的“签名”是一样的: 在 C++ 语言中,函数签名包含函数名称、函数参数类型、函数参数个数等信息,但是不包含返回值类型。 下

    2024年02月08日
    浏览(44)
  • Qt-OpenCV学习笔记--基本函数操作--cv::convertTo(图像类型转换)

    不是所有格式的Mat型数据都能被使用。 目前OpenCV主要只支持单通道和3通道的图像,并且此时要求其深度为8bit和16bit无符号(即CV_16U),所以其他一些数据类型是不支持的,比如说float型等。 如果Mat类型数据的深度和通道数不满足上面的要求,则需要使用convertTo()函数和cvtColor(

    2024年02月04日
    浏览(59)
  • Python学习笔记--容器类型

    本文摘自朱雷老师所著《Python工匠》一书内容,作为笔记予以记录。 列表、元组、字典、集合是Python中4中内置容器类型,是Python语言中最为重要的组成部分,在《Python工匠》第三章容器类型中做了重要知识点的介绍,并引申出了对象的可变性、可哈希性等诸多基础概念,在

    2024年01月25日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包