文章目录

  • PYTHON之DEF函数
  • 基本使用
  • 实例
  • DEF函数参数
    • 基本使用
    • 实例
  • DEF函数默认参数
    • 基本使用
    • 实例

PYTHON之DEF函数

如果我们用代码实现了一个小功能,但想要在程序代码中重复使用,不能在代码中到处粘贴这些代码,

因为这样做违反 了软件工程中 DRY原则。 Python 提供了 函数功能,

可以将我们这部分功能抽象成一个函数以方便程序调用,或者提供给其他模块使用。

基本使用

1 def function_name(parameters):
2     expressions

Python 使用 def 开始函数定义,紧接着是函数名,括号内部为函数的参数,内部为函数的 具体功能实现代码,如果想要函数有返回值, 在 expressions 中的逻辑代码中用 return 返回。

实例

1 def function():
2     print('This is a function')
3     a = 1+2
4     print(a)

上面我们定义了一个名字为 function 的函数,函数没有不接受参数,所以括号内部为空,紧接着就是 函数的功能代码。如果执行该脚本,发现并没有输出任何输出,因为我们只定义了函数,而并没有执行函数。 这时我们在 Python 命令提示符中输入函数调用 function(), 注意这里调用函数的括号不能省略。那么 函数内部的功能代码将会执行,输出结果:

1 This is a function
2 3

如果我们想要在脚本中调用的脚本,只需要在脚本中最后添加函数调用语句

1 function()

那么在执行脚本的时候,将会执行函数。

DEF函数参数

我们在使用的调用函数的时候,想要指定一些变量的值在函数中使用,那么这些变量就是函数的参数,函数调用的时候, 传入即可。

基本使用

1 def function_name(parameters):
2     expressions

parameters 的位置就是函数的参数,在调用的时候传入即可。

实例

1 def func(a, b):
2     c = a+b
3     print('the c is ', c)

在这里定义的一个函数,其参数就是两个数值,函数的功能就是把两个参数加起来。运行脚本后,在 Python 提示符内调用函数 func, 如果不指定参数 func(), 那么将会出错; 输出 func(1, 2),将 a=1, b=2 传入函数,输出 the c is 3 。所以在调用函数时候,参数个数和位置一定要按照函数定义。如果我们忘记了函数的参数的位置,只知道各个参数的名字,可以在 函数调用的过程中给指明特定的参数 func(a=1, b=2), 这样的话,参数的位置将不受影响,所以 func(b=2,a=1)是同样的 的效果。

DEF函数默认参数

我们在定义函数时有时候有些参数在大部分情况下是相同的,只不过为了提高函数的适用性,提供了一些备选的参数, 为了方便函数调用,我们可以将这些参数设置为默认参数,那么该参数在函数调用过程中可以不需要明确给出。

基本使用

1 def function_name(para_1,...,para_n=defau_n,..., para_m=defau_m):
2     expressions

函数声明只需要在需要默认参数的地方用 = 号给定即可, 但是要注意所有的默认参数都不能出现在非默认参数的前面。

实例

    1 def sale_car(price, color='red', brand='carmy', is_second_hand=True):2     print('price', price,3           'color', color,4           'brand', brand,5           'is_second_hand', is_second_hand,)

在这里定义了一个 sale_car 函数,参数为车的属性,但除了 price 之外,像 color, brand 和 is_second_hand 都是有默认值的,如果我们调用函数 sale_car(1000), 那么与 sale_car(1000, ‘red’, ‘carmy’, True) 是一样的效果。当然也可以在函数调用过程中传入特定的参数用来修改默认参数。通过默认参数可以减轻我们函数调用的复杂度。

形参、实参与局部变量、全局变量的关系。
​答:首先明确,变量是一个更大的范围。

所有的形参都是局部变量,所有的实参都是全局变量。用集合的角度来说,就是形参是局部变量的子集,实参是全局变量的子集。

这里解释一下为什么形参都是局部变量。

​形参是局部变量,全局变量在程序开始时创建并分配空间,在程序结束时候释放内存并销毁,局部变量是在函数调用的时候创建,在函数调用结束后销毁并释放,形参在函数调用时才分配空间,在函数调用后释放,所以是局部变量。

转载自derezzed

PyCharm | def相关推荐

  1. python 两个内置函数——locals 和globals(名字空间)批量以自定义变量名创建对象

    文章目录 locals 和globals(名字空间)简介 1.局部变量函数locals例子(locals 返回一个名字/值对的字典) 批量创建对象 示例1 示例2 函数内 类内 2.全局变量函数glo ...

  2. 【Python成长之路】python 基础篇 -- 装饰器【华为云分享】

    [写在前面] 有时候看到大神们的代码,偶尔会用到@来装饰函数.当时查了资料,大致了解装饰器一般用于在不改变原函数的基础上 ,对原函数功能进行修改/增强.使用场景是:日志级别设置.权限校验.性能测试等. ...

  3. 6-4cifar10数据介绍读取处理(下)

    cv2.imwrite("{} {} {}".format(save_path,im_label_name,im_name.decode("utf-8")), ...

  4. python经典程序实例-Python3经典100例(③)

    实例11 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析:可通过定义一个函数,然后利用递归的 ...

  5. 实验三,基于Unittest框架的单元测试

    实验三,基于Unittest框架的单元测试 一,实验目的 (1) 掌握单元测试技术,并按单元测试的要求设计测试用例. (2) 能熟练应用功能性测试技术进行测试用例设计: (3) 能熟练应用结构性测试技 ...

  6. 【Python】用A股当天收盘价去计算下一个交易日涨停价格

    文章目录 方法1 方法2 测试方法. A股涨停的价格,不一定正好是10%,而是最靠近10%的数值,因为股价只精确到0.01,没有0.001这个数值,所以,经常会出现不是10%的情况,如下图所示: Py ...

  7. Python程序练习题

    目录 1.1 重量计算 1.2 天天向上续 1.3 回文数判断 1.4 田字格的输出 1.5 工资表输出 1.6 格式化输出字符串 4.1 random库的使用 Python 编程 猜数字 统计不同字 ...

  8. python ccf 题解历年100分(9年前两题,共45题)

    文章目录 一.第一题 1.1 2021年 202109-1数组推导 202104-1灰色直方图 1.2 2020年 202012-1期末预测之安全指数 202009-1称检测点查询 202006-1线 ...

  9. day13:Python单元测试(TestCase,TestSuit,TestLoader,TestReport)

    进阶一:单元测试框架 一.单元测试的定义 1.什么是单元测试 还记不记得我们软件测试学习的时候,按照定义:单元测试就是对单个类或者单个函数进行测试,一般是开发做的,按照阶段来分,一般就是单元测试,集成 ...

  10. 深入浅出讲解Python并发编程

    微信公众号:运维开发故事,作者:素心 Python并发编程 本文比较长,绕的也比较快,需要慢慢跟着敲代码并亲自运行一遍,并发编程本身来说就是编程里面最为抽象的概念,单纯的理论确实很枯燥,但这是基础,基 ...

最新文章

  1. 年终总结:2021年五大人工智能(AI)和机器学习(ML)发展趋势
  2. android 系统gpu 调试_【资讯】高通公布首批可OTA更新GPU驱动手机:谷歌Pixel 4/三星S10在列...
  3. 高可用性、负载均衡的mysql集群解决方案
  4. 前端学习(1307):模块查找规则二
  5. java lang jar_在运行时,Java jar返回java.lang.NoClassDefFoundError
  6. python关键词提取_如何从Python格式字符串中提取关键字? - python
  7. ubuntu 自动挂载工具_Ubuntu自动挂载分区
  8. LeetCode(1021)——删除最外层的括号(JavaScript)
  9. flutter实现Icon可以用Image替换
  10. 必看!linux系统如何查看内存使用情况
  11. 你在公司项目里面看过哪些操蛋的代码?
  12. 个人微信公众号做外卖优惠券怎么弄?
  13. word文档中如何将软回车替换为硬回车
  14. 胡理辉:风电王国里的流程管控人
  15. 前段时间 qq大战 360..
  16. 关于sungard和博彦的笔试
  17. Unity--内置转换矩阵
  18. 地理生物结业考_不到30天,初二学年地理、生物结业考试开考,老师们说……...
  19. Springboot游戏道具在线交易平台毕业设计源码171956
  20. Hawk-and-Chicken

热门文章

  1. Linux虚拟主机管理系统---wdcp
  2. 如何快速将jpg格式文件转换成bmp格式
  3. 卡牌大师怎么玩_LOL高端局中的常客,卡牌大师上分攻略,最完美的节奏大师!...
  4. msxml3.dll 执行页内操作时的错误
  5. Xmind 2020 进阶教程|巧用图标,让你的思维导图活起来
  6. 勒索病毒来袭!及时备份数据吧!
  7. 读《不能承受的生命之轻》 的思考
  8. 二元logistic回归、ROC曲线及cutoff值
  9. w10桌面计算机图标箭头去除,如何让win10桌面图标箭头取消除 笔记本电脑去掉快捷小箭头软件-♚付涛纪实阁♚...
  10. c语言学习--计算机软件和硬件