c++ 一个函数包括多个返回值判断_Python函数的概念和使用

函数

为了便于程序的维护和更好的实现模块化,好的程序都会分解为很多函数。

可以这么说,对于任何的编程语言,函数都是一个非常重要的概念。

python 不仅简化了函数的定义过程,而且还大量借鉴了其他函数编程语言中的优秀特性。

本章内容非常重要!

191d312ee17ec421f8d2479b07fbe5c6.png

一、 函数的概念和作用

1.1什么是函数

函数就是把完成特定功能的一段代码封装起来。给该功能起一个名字(函数名)。

哪里需要实现该功能就在哪里调用该函数。

函数可以在任何时间任何地方调用。

所谓函数,就是把具有独立功能的代码块组织为一个小模块,在需要的时候调用。

1.2 函数的作用

  • 函数是能完成某一功能的代码段

  • 函数是可重复执行的代码段

  • 函数方便管理和维护,便于复用

二、函数的使用

2.1 函数的使用步骤

  1. 定义函数:封装独立的功能

  2. 调用函数:就是执行函数。(调用几次就函数执行几次)

2.2 函数的定义

使用函数之前一定要先定义。

python 的函数定义非常简单。

函数定义语法:

def 函数名([形参列表]):
函数体

说明:

  1. def 是定义函数的关键字。(define function)

  2. 函数名是这个函数的符号(引用),调用这个函数的时候我们需要函数名。

  3. 函数名后的圆括号是必须的。

  4. 形参列表表示我们可以定义多个形参,接受函数调用时传递过来的参数。形参不是必须的,根据需要决定是否需要定义形参

  5. 圆括号后面必须有一个冒号:.

  6. 新起一行,必须有缩进来定义函数体。函数体就是函数每次调用的时候都会执行的代码。

    示例代码:

# 定义无参函数
def show():
print("我是函数内的代码1")
print("我是函数内的代码2")


# 定义有参函数,形参在函数内部可以作为普通变量使用。
def show1(a, b):
print(a + b)

定义函数名称的规则:

  1. 可以由字母,下划线,和数字组成

  2. 数字不能开头

  3. 不能与关键字重名

  4. 多个单词小写使用下划线拼接:get_sum

2.3 函数的调用

定义函数的目的是为了让函数做一些事情。

但是函数如果仅仅定义不会自己去执行。

时刻记住一句话,函数只有被调用才能被执行!

所以想要函数执行,必须显示的去调用函数。

在使用函数的时候,一定要保证声明在前,调用在后!

2.3.1 简单函数调用

函数调用非常简单,只需要: 函数名(实参)即可。当然如果函数定义的时候没有形参,则就不用实参。

def show():
print("我是函数内的代码1")
print("我是函数内的代码2")


show() # 调用函数
show() # 一个函数可以多次调用。每次调用都会执行一次函数体的代码
show()

1e1d7cb7d6591bd16f63c1b84e1af6f6.png


2.3.2 带形参的函数调用

函数声明的时候,在括号内的是形参。

那么在调用函数的时候应该传递相同属性的参数过去,函数调用的时候的参数,叫做实参!

形参和实参的个数必须匹配,但是有一种情况除外,后面再说。

def add(a, b):
print(a + b)

add(2, 3)
add(20, 3)

49889dab0bc07c0fb7b213ea9f44c700.png

2.4函数的返回值

我们定义的函数可以完成一个的功能,很多情况下,功能完成之后需要给函数调用者返回一些数据,这些返回的数据就需要用到函数的返回值功能。

返回值就是函数执行完毕后返回给调用处的结果

2.4.1.return的使用

比如:定义一个函数可以实现两个数的相加,然后返回给调用者计算的结果!

def add(a, b):
pass
n = a + b
return n

print(add(3, 5))
print(add(30, 5))

8d890112a490e159dcaa94d452703654.png

说明:

  1. 在函数内任何地方都可以出现returnreturn的作用就是结束函数,并把return后面的值返回给调用者。

  2. 一旦碰到 return,不管后面有多少代码,不管是否处于循环中,函数都会立即结束。

  3. 如果整个函数内部没有出现return,则函数会自动执行到函数体最后一行代码。

  4. 如果函数体内没有return,则函数运行结束的时候自动返回None

  5. return后面也可以不跟返回值,这种情况下主要是为了结束函数,也会返回None (return None可以简写为return。)

案例1:一个给定的数,判断是否为质数

分析:定义一个函数,这个给定的数通过参数传递,最后结果:是否为质数,通过返回一个bool值给调用者。质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。

def is_prime(num):
for i in range(2, num):
if num % i == 0:
return False

return True


num = int(input("请输入一个整数:"))
if is_prime(num):
print("%d 是质数!" % num)
else:
print("%d 不是质数!" % num)

案例2:计算输入的任意两个数之间所有的质数的和

分析:刚才已经定义了判断一个是否为质数,现在需要再定义一个可以计算两个数之间所有的质数的和的函数,并把计算结果返回给调用者。

def is_prime(num):
for i in range(2, num):
if num % i == 0:
return False

return True


def add_prime(num1, num2):
sum = 0
for num in range(num1, num2+1):
if is_prime(num):
sum += num

return sum


num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第2个整数:"))
print("%d 到 %d 的之间所有的质数的和是:%d" % (num1, num2, add_prime(num1, num2)))

2.4.2.返回多个值

使用return一次只能返回一个值。

有些场景下,我们需要返回多个值。这种情况下我们我们可以把返回值的封装到listtuple中,接受者拿到这个listtuple直接解包就可以使用了。

最好封装在tuple中,因为tuple是不可变的, 所以效率比较高。

def foo(x):
return x ** 2, x ** 3, x ** 4

x = 4
a, b, c = foo(x)

print("%d 的平方是:%d, 3次方式:%d, 4次方是:%d" % (x, a, b, c))

396cb8803a7c520b017d7d4c63280dc6.png

2.5 文档注释

以前我们使用 # 来我们的代码添加注释,只使用单行注释。

我们定义了一个好函数,函数的描述等信息也应该让调用者很容易获取到,这个时候就用到文档注释。

文档注释将来可以直接生成 api 文档方便阅读。

如果要给函数添加文档注释,直接在函数内部的首行放置一个字符串即可。字符串可以是单行的(" "或者' '),也可以是是多行的(""" """ 或 ''' ''')。

但是一般使用多行字符串来定义

作为国际惯例:

  1. 注释的第一行,一般是对函数的简述。

  2. 然后一个空行。

  3. 然后开始进行详细描述函数功能等。

def foo(x):
"""该函数是对参数做一些计算
计算参数的多个次幂
:param x: 要计算次幂的数字
:return: 返回2次幂、3次幂、4次幂组成的元组
"""
return x ** 2, x ** 3, x ** 4

print(foo.__doc__) # 打印函数的文档注释

0d4ef28e64c6fd9e1996cd54aa0cfb82.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/459962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微型计算机中JNZ,微机原理jnz是什么指令_微机原理内存分配图

微机原理 数据传送指令微机原理 4指令系统 3通过数据传输地址 地址传送指令 标志传送指令微机原理 4指令系统 3通过数据传输地址 地址传送指令 标志传送指令微机原理指令 微机原理sub指令 csdn微机原理 4指令系统 3通过数据传输地址 地址传送指令 标志传送指令微机原理 4指令系…

分段处理_连续油管无限级可开关固井滑套分段压裂工艺

连续油管无限级可开关固井滑套分压工艺具有无需射孔、处理级数不受限制、施工效率高等特点,同时可为后期水平井控水及重复压裂提供井筒条件。作业前滑套与套管管柱一趟下入井内,正常进行固井后,依靠固井水泥实现压裂层间封隔。通过连续油管下…

access 根据id删除数据_小程序云开发之数据库自动备份丨云开发101

钻石有价,数据无价。我们通常会把重要的业务数据存放在数据库中,并需要对数据库做定时的自动备份工作,防止数据异常丢失,造成无法挽回的损失。小程序云开发提供了方便的云数据库供我们直接使用,云开发使用了腾讯云提供…

国家职业资格计算机调试维修技师试题,电工国家职业资格三级(高级)理论试题...

电工国家职业资格三级理论试题一、单选题(第1题~第60题。选择一个正确的答案,将相应的字母填入题内的括号中。每题1.0分,满分60分。)1.异步测速发电机的空心杯转子是用( )材料做成的。(A)低电阻 (B)高电阻 (C)低导磁 (D…

PHP解决方案@时间差异计算函数

为什么80%的码农都做不了架构师?>>> 方案解决目标:计算时间差异 function ago($time){ $periods array("second","minute","hour","day","week","month","year",…

baidumap vue 判断范围_vue 数据渲染

本文转载于 SegmentFault 社区社区专栏:山外de楼作者:山外de楼前言 vue 是如何将编译器中的代码转换为页面真实元素的?这个过程涉及到模板编译成 AST 语法树,AST 语法树构建渲染函数,渲染函数生成虚拟 dom,…

jtoken判断是否包含键_Redis 数据库、键过期的实现

今天看看作为内存数据库,Redis 是怎么存储数据的以及键是怎么过期的。阅读这篇文章你将会了解到:Redis 的数据库实现Redis 键过期的策略数据库的实现我们先看代码 server.h/redisServerstruct redisServer{ ... //保存 db 的数组 redisDb *db; //db 的数…

JBoss配置详解

为什么80%的码农都做不了架构师?>>> 2.0.1 JBOSS 的一点说明 $JBOSS-HOME/server/下有3个目录,all/default/minimal,它们是表示3种配置,全部的配置、默认配置、最小配置,我们在启动JBOSS服务时&#xff0c…

简单仿百度自动搜索框

body中 <body> 请输入搜索内容:<input type"text" name"name" value"" id"txt" style"border:1px solid gray;margin:0;padding:0; width:200px;" /></body> View Code<script>中 <script type&…

layui上传文件请求接口异常_SpringMVC实现文件上传与下载,拦截器,异常处理

第一章&#xff1a;响应数据和结果视图1. 返回字符串Controller方法返回字符串可以指定逻辑视图的名称&#xff0c;根据视图解析器为物理视图的地址。RequestMapping(value"/hello")public String sayHello() {System.out.println("Hello SpringMVC!!");//…

球星测试软件,2KOL球星测评丨篮球之神,迈克尔.乔丹(96版)

迈克尔.乔丹(96版)迈克尔乔丹在在1984年NBA选秀中于第1轮第3位被芝加哥公牛队选中。(他的前面两位分别是哈基姆奥拉朱旺和萨姆鲍伊)91-93赛季&#xff0c;乔丹连续2次荣膺常规赛MVP和3次总决赛FMVP &#xff0c;并率领芝加哥公牛队首夺3连冠。 93年10月6日因父亲被害而宣布退役…

iphone无线充电充电测试软件,瞎折腾星人的测评 篇一:想体验iPhone的无线充电?这可能是最具性价比的选择了!...

瞎折腾星人的测评 篇一&#xff1a;想体验iPhone的无线充电&#xff1f;这可能是最具性价比的选择了&#xff01;2018-11-28 00:26:032点赞2收藏0评论最近恰逢更换新手机&#x1f4f1;iPhone XS Max的重大活动&#xff0c;功臣iPhone 7退居二线&#xff0c;女票突然脑子一热要给…

MVC5+EF6 入门完整教程四

MVC5EF6 入门完整教程四 原文:MVC5EF6 入门完整教程四上篇文章主要讲了如何配置EF, 我们回顾下主要过程&#xff1a; 创建Data Model 创建Database Context 创建databaseInitializer配置entityFramework的context配置节。 对这个过程还有疑问的可以去上篇再看一下。 本次我…

android js调试

http://blog.allenm.me/ 其他平台去这篇文章看 1 //js调试调试功能支持4.4版本以上的2 if(Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) {3 WebView.setWebContentsDebuggingEnabled(true);4 }5 //j…

python 比赛成绩预测_利用 Python 预测英雄联盟胜负,分析了 5 万多场比赛才得出的数据!值得,涨知识了!...

Mika 来源 | 头图 |CSDN自东方IC今天教大家用Python预测英雄联盟比赛胜负。Show me data&#xff0c;用数据说话今天我们聊一聊 Python预测LOL胜负目前&#xff0c;英雄联盟S10全球总决赛正在火热进行中&#xff0c;最终决赛于10月31日在浦东足球场举行。作为当下最火热的电竞赛…

服务器2003蓝屏A5修复,0x000000a5蓝屏完美解决方法 Win7

0x000000a5蓝屏怎么办&#xff1f;在Win7系统下遭遇开机时出现蓝屏代码0x000000a5非常多&#xff0c;由于根据代码我们并不能分析出故障原因&#xff0c;那么只能求助于网络上大家分享的经验了&#xff0c;下面小编给大家分享下0x000000a5蓝屏完美解决方法&#xff0c;适用于Wi…

能设值多个rowkey吗_顶楼送了露台,悄悄搭建阳光房,偏偏我家露台多个帽子,能拆吗?...

你们有没有发现现在楼顶上都会有几个这样的“帽子"&#xff0c;呼呼直转&#xff0c;但大多数人并不是很明白这个东西是干嘛用的。昨天有网友私信&#xff1a;小区顶楼露台上这个不锈钢帽子可以加高吗&#xff1f;感觉每次去楼顶都会闻到一股油烟味。业主表示自己是住在顶…

金山云服务器内网带宽,金山云-文档中心-配置弹性网卡

本文为您介绍绑定弹性网卡后虚机中如何配置弹性网卡。挂载辅网卡后&#xff0c;Windows操作系统主机即可正常使用&#xff0c;不需要额外操作。如果实例使用以下几种镜像&#xff0c;则可以跳过网卡手动配置&#xff0c;直接进行路由配置。CentOS 7.6 64位CentOS 7.7 64位CentO…

Atom飞行手册翻译: 2.7 ~ 2.10

自动补全 如果你仍旧希望节约一些打字时间&#xff0c;Atom自带简单的自动补全功能。 通过使用ctrl-space&#xff0c;自动补全工具可以让你看到并插入可选的完整单词。 通常&#xff0c;自动补全工具会浏览当前打开的整个文档&#xff0c;寻找匹配你开始打出来的单词。 如果你…

Flash游戏开发实战(一)

我不得不承认&#xff0c;我不是植物大战僵尸的骨灰玩家&#xff0c;所以&#xff0c;如果你发现这个系列的教程有什么地方错误的&#xff0c;请告诉我。 定义游戏的主要结构 植物大战僵给了我们很好的视觉和感觉上的享受。你得保护你的房子以免被吃脑的僵尸入侵&#xff0c;这…