python使用函数目的_Python函数的概念和使用

Python

Python开发

Python语言

Python函数的概念和使用

CgpOIF5EAWWAQ0y_AAcB-fDz9P0878.png

函数

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

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

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

本章内容非常重要!

1885184-20200402135316915-202267371.png

一、 函数的概念和作用

1.1什么是函数

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

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

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

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

1.2 函数的作用

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

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

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

二、函数的使用

2.1 函数的使用步骤

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

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

2.2 函数的定义

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

python 的函数定义非常简单。

函数定义语法:

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

函数体

说明:

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

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

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

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

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

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

示例代码:# 定义无参函数

def show():

print("我是函数内的代码1")

print("我是函数内的代码2")

# 定义有参函数,形参在函数内部可以作为普通变量使用。

def show1(a, b):

print(a + b)

定义函数名称的规则:

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

数字不能开头

不能与关键字重名

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

2.3 函数的调用

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

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

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

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

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

2.3.1 简单函数调用

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

def show():

print("我是函数内的代码1")

print("我是函数内的代码2")

show() # 调用函数

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

show()

1988132-20200401153635260-332386529.png

2.3.2 带形参的函数调用

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

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

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

def add(a, b):

print(a + b)

add(2, 3)

add(20, 3)

1988132-20200401153647158-122723232.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))

1988132-20200401153657877-166228347.png

说明:

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

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

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

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

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一次只能返回一个值。

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

最好封装在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))

1988132-20200401153715659-1382350529.png

2.5 文档注释

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

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

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

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

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

作为国际惯例:

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

然后一个空行。

然后开始进行详细描述函数功能等。def foo(x):

"""该函数是对参数做一些计算

计算参数的多个次幂

:param x: 要计算次幂的数字

:return: 返回2次幂、3次幂、4次幂组成的元组

"""

return x ** 2, x ** 3, x ** 4

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

1988132-20200401153727034-685708717.png

内容来源于网络,如有侵权请联系客服删除

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

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

相关文章

VirtualBox全屏切换

用VirtualBox的时候,如果设置为全屏,想再切换回来,没有什么菜单,只有通过键盘的快捷键来操作,才可以恢复。 我常常忘掉,所以老是得去找,以后需要记住这几个按键的快捷键。 1.全屏与非全屏切换&a…

python董付国教程_董付国老师python教学——学习笔记(一)

python的对象模型:数字(int float complex):数字大小没有限制字符串(str):使用单引号、双引号、三引号作为定界符以字母r或R引导的表示原始字符串 eg:rabc(原始字符串表示里面的转义字符不转义了)字节串(bytes):以字母…

feign直接走熔断_SpringCloud微服务面试必问:Hystrix 服务降级、熔断

本文作者:JLSong 本文链接:https://www.cnblogs.com/songjilong/p/12770999.html1、Hystrix是什么?Hystrix 是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比…

httpServlet,java web后台服务

1,定时执行的类 package com.utils;import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; public class MyTimer extends Thread {// 间隔时间:小时private int intervalHours;// 误差(操作所需时间可能导致误差)&am…

mysql 会话级别的参数_PostgreSQL的参数设置级别及查询各级别的参数值

PostgreSQL的参数设置级别及查询各级别的参数值系统级别用户/角色级别用户/角色 数据库级别会话级别1.查询某参数在系统级别的设置直接到postgresql.conf中去过滤2.查询某参数在某用户级别的设置testdb# create user testa password testa;CREATE ROLETime: 85.415 mstestdb# …

【开源项目10】安卓图表引擎AChartEngine

安卓图表引擎AChartEngine(一) - 简介 http://blog.csdn.net/lk_blog/article/details/7645509 安卓图表引擎AChartEngine(二) - 示例源码概述和分析 http://blog.csdn.net/lk_blog/article/details/7642751 安卓图表引擎AChartEngine(三) - 示例源码折线图、饼图和柱状图 http…

python里面print是什么意思_python里print是什么意思

python里print是什么意思,多个,是一个,对象,默认值,一个函数 python里print是什么意思 易采站长站,站长之家为您整理了python里print是什么意思的相关内容。 Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python由Guido van Rossum于1989年底发明…

mysql 用户管理系统_mysql 用户管理

MySQL账户管理在我们之前登录MySQL的时候我们都是直接使用的root用户,root用户属于数据库系统中的超级管理员,有权限对mysql进行任何想要做的操作。如果在生产环境下操作数据库时也是全部直接使用root账户连接,这就和悬崖边跳舞差不多。所以 …

执行一次怎么会写入两次数据_浅谈 Redis 数据持久化之 AOF 模式

我们知道 Redis 之所以读写快、性能高,得益于它是一种基于内存的数据库,毫无疑问它的操作都几乎都是基于内存。但是内存型数据库也有一个很大的弊端:如果进程崩溃或者服务重启的时候内存数据得不到保存,就会造成数据丢失。为了解决…

poj 2965 The Pilots Brothers' refrigerator

http://poj.org/problem?id2965 poj 1753扩展,dfs枚举,不过加了一个路径。 The Pilots Brothers refrigeratorTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 19278 Accepted: 7384 Special JudgeDescription The game “The Pilots Broth…

mysql5.7简要介绍_MySQL 5.7新特性介绍

1. 介绍身处MySQL这个圈子,能够切身地感受到大家对MySQL 5.7的期待和热情,似乎每个人都迫不及待的想要了解、学习和使用MySQL 5.7。那么,我们不禁要问,MySQL 5.7到底做了哪些改进,引入了哪些新功能,性能又提…

数字化转型方法论_双中台:企业数字化转型的核心战略与方法论

当下,绝大部分企业的组织形态、经营模式基本都是垂直闭环型,即围绕一种业务或者管理,其计划、执行、检查、优化的闭环都是独立于企业生态之中。在过去的“局部竞争”、“渠道为王”、“终端为王”的时代,这种组织与经营形式很好地…

java ee自学路线

本站文章为 Kenan 原创,转载请注明转自 Kenan的博客 http://kenan1992.qzone.qq.com 首先声明对于什么java ee的 自学不需要编程的基础,但是需要你的刻苦和努力,付出100%的努力,相信你终会有收获的那一天!!…

java获取cpu使用率_再一次生产 CPU 高负载排查实践

前言前几日早上打开邮箱收到一封监控报警邮件:某某 ip 服务器 CPU 负载较高,请研发尽快排查解决,发送时间正好是凌晨。其实早在去年我也处理过类似的问题,并记录下来:《一次生产 CPU 100% 排查优化实践》不过本次问题产…

《BI那点儿事》三国数据分析系列——蜀汉五虎上将与魏五子良将武力分析,绝对的经典分析...

《BI那点儿事》三国数据分析系列——蜀汉五虎上将与魏五子良将武力分析,绝对的经典分析 原文:《BI那点儿事》三国数据分析系列——蜀汉五虎上将与魏五子良将武力分析,绝对的经典分析献给广大的三国爱好者们,希望喜欢三国的朋友一起讨论&#…

java map取值_Java Set接口 Map 与枚举

Set接口概述一个不包含重复元素的 collection。更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素特点Set接口是无序的 Set 是继承于Collection的接口。它是一个不允许有重复元素的集合。Set可以存储null值,但是nu…

网路工程师要不要学mysql_网络工程师要学什么_网络工程师需要的技能

如果以后想从事网络工程师这个岗位,同学们知道 网络工程师要学什么 吗?本期乔布 网络工程师需要的技能 。关键词: 网络工程师要学什么 , 网络工程师需要的技能网络基础知识:深度网络基本概念,例如>ISO/O…

python执行效果_使用tqdm显示Python代码执行进度功能

在使用Python执行一些比较耗时的操作时,为了方便观察进度,通常使用进度条的方式来可视化呈现。Python中的tqdm就是用来实现此功能的。先来看看tqdm的进度条效果:tqdm的基本用法tqdm最主要的用法有3种,自动控制、手动控制或者用于脚…

cookiesession

cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。 由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上它还有其他…

python的应用图标_python实现根据图标提取分类应用程序实例

本文实例讲述了python实现根据图标提取分类应用程序,分享给大家供大家参考。具体方法如下:#!/usr/bin/python# -*- coding: utf-8 -*-import Imageimport win32uiimport win32guidef make_regalur_image(img, size (256, 256)):return img.resize(size)…