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,一经查实,立即删除!

相关文章

MySQL数据库引擎介绍、区别、创建和性能测试的深入分析

深入理解MySQL的数据库引擎的类型 作者: 字体:[增加 减小] 类型:转载本篇文章是对MySQL的数据库引擎的类型进行了详细的分析介绍,需要的朋友参考下你能用的数据库引擎取决于mysql在安装的时候是如何被编译的。要添加一个新的引擎&…

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

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

vim的安装和配置

vim的安装和配置 使用Linux时,有很多编辑器可供选择,况且vim也不是那么地友好,为什么仍要使用vim呢?鸟哥的解释是: 一、安装vim:sudo apt-get install vim 二、配置vim 在用戶主目录下【~/】建一…

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

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

计算机在超声的应用,计算机在医学超声成像中应用.pdf

综 述~计算机在医学超声成像中的应用李义兵1余大昆1刘晓东2(1.咸宁学院生物医学工程系湖北省咸宁市437100;2.襄樊市中心医院湖北省襄樊市441021)摘要介绍了计算机在医学超声成像领域的应用,着重讨论了医学超声图像处理…

常用正则:身份证号码验证正则表达式

需要一个简单的验证身份证号的正则表达式,从网上查了很多,都有问题,主要是只要超过15位,都能够通过,于是自己查了半天手册,写了下面这个式子,能够满足简单的要求:1、15位或18位&…

C语言指针学习(续)

五、数组和指针的关系 int array[10] {0,1,2,3,4,5,6,7,8,9},value; ... ... value array[0];//也可以写成 value *array;value array[3];//也可以写成 value *(array3);value array[4];//也可以写成 value *(array4);上例中,一般而言,数组名arra…

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,…

spring+websocket综合(springMVC+spring+MyBatis这是SSM框架和websocket集成技术)

java-websocket该建筑是easy。儿童无用的框架可以在这里下载主线和个人教学好java-websocket计划: Apach Tomcat 8.0.3MyEclipsemavenJDK1.7: http://download.csdn.net/detail/up19910522/7719087 spring4.0以后增加了对websocket技术的支持&#xff0c…

电子计算机可直接执行的指令机器内部是以,电子计算机可直接执行的指令在机器内部是以( )表示....

问题:电子计算机可直接执行的指令在机器内部是以( )表示.更多相关问题实际GDP衡量的是在特定年度内生产的最终产品与服务的价值,使用________。A.基年价格B.当年价格C.岗位评价结果的形式多种多样,但最值得…

Audit(查看审核/审计信息)

2013需要到 网站集管理-网站集审核设置 中设置要开启的审核项,开启之后sharepoint才会记录信息,信息存储在contentDB的AuditData中; 去读审计信息的sharepoint代码如下: 1 using (SPSite site new SPSite(SiteUrl))2 {3 usin…

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…

计算机等级考试2010,2010年全国计算机等级考试相关政策

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼二级QBASIC 21 120 60二级FORTRAN 22 120 60 不接受新考生报名二级C 24 120 60二级FOXBASE 25 120 60二级VB 26 90 90二级VFP 27 90 90三级PC技术 33 120 60三级信息管理技术 34 120 60三级网络技术 35 120 60三级数据库技术 36 12…

ACE(Adaptive Communication Environment)介绍

转自 http://blog.csdn.net/huangyong19870618/article/details/4954512 Adaptive Communication Environment(自适配通信环境),简称ACE。为一个以C的Template技术所做成的开放源代码的可跨平台的网络应用程序的程序库套件。 相关书籍   T…

rpn产生proposals_一文读懂RPN和ROI Align

rpn和roi align是two-stage detector中比较关键的两个操作,这两个操作将two-stage detector中的两个stage连接起来,变成end-to-end(端到端)的网络,同时也给整个检测方法的性能带来提升。rpn为roi align提供高质量的候选框,即propo…

多个相同参数表单提交

前情提要: 现在需要使用异步提交表单数据(QueryString方式),但数据个数比较多,一个个拼接比较麻烦,这时可以使用jQuery的方法$("form").serialize()对表单进行序列化。但是如果这时&#xff0c…