学习六 - Python 函数

Python 学习 - 函数

1.创建和调用函数

创建函数

                def function_name():  #无参数函数xxxdef function_name(par1, par2, ...):  #带参数函数xxx

记住三个关键的东西:def, (), :

调用

                function_name()    #无参数函数调用function_name(arg1, arg2, ...)   #带参数函数调用          

直接写出函数名加 () 即可。

返回值

(1)使用关键字 return
(2)当函数中没有使用return关键字写返回值时,默认是

            return None

(3)Python的函数返回值没有类型指定问题,同时还能使用列表和元组返回多个返回值。

深入了解函数的参数

(1) 参数分为形式参数和实际参数
在函数定义的时候给函数的参数为形式参数,如上面的par1, par2
在函数调用的时候给函数的参数为实际参数,如上面的arg1, arg2
(2) 一类特殊的参数——关键字参数
关键字参数就是在传入参数的时候指定形式参数的变量名。

function_name(par1=arg1, par2 = arg2)
(3) 默认参数
在函数 定义的时候 给形式参数的默认值,调用的时候不传递参数表示使用默认值。默认参数必须放在参数列表的最后,否则会报错。

          定义:  def function_name(par1 =  default1, par2=default2):  xxx
        调用:function_name() #实际上有实参,实参为定义时候的默认值      
>>> def paraerr(heigth = 180, weigth):print(heigth)SyntaxError: non-default argument follows default argument

(4)收集参数
在定义带参数但是不知道需要多少个参数的时候可以使用收集参数。收集参数将所有的参数打包成一个元组。
定义时在参数前加 * ,如:

def test(*par)

要在收集参数后面可以添加其他参数,如

def test2(*par,par1)

但是在调用的时候应该使用关键参数的传递方式,如

test2(arg1,par1 = arg2)

为了避免错误,可以使用默认参是在函数定义的时候就给非收集参数赋予一个默认参数。

收集参数的另一个使用方式:
当传入的参数是一个列表或者元组时,实际传入函数的只有一个参数。一个列表或者元组就是一个参数,但是当我们想再函数体里面使用列表或者元组的每一个元素时,可以使用以下的传入方式:

    >>>a = (1,2,3,4,5,6,7)>>>test(*a)

函数的文档

2. 函数变量的作用域

(1)在函数中使用的变量都是局部变量,外部无法访问。在执行完函数后,与该函数有关的所有数据都会自动删除。
(2)在函数外面使用的变量都是全局变量
注意:在函数里面是可以访问全局变量的。但是并不能改变全局变量,当要改变全局变量的值时,Python自动创建于这个全局变量相同的局部变量去接受这个改变。
当非要在函数内修改全局变量时,可以在函数内使用关键字 global 做出声明即可。
如:

>>> A = 1
>>>def fun():global AA = 10print(A)
>>> fun()
10

3. 内嵌函数和闭包

(1) 内嵌函数指的是一个函数内部定义里其他的函数。
特别需要注意作用域。
(2) 闭包
一个函数内对外部作用域的变量进行了引用,这个内部函数就是闭包的。
内部函数对外部函数的局部变量经行修改可以通过关键字 nonlocal

4. lambda表达式

书写格式:lambda 后先写参数,通过一个冒号与后面的表达式隔开。

aname = lambda par1, par2,... : 表达式

lambda表达式的调用:

aname(par1,par2,...)
en

转载于:https://www.cnblogs.com/siucaan/p/9623229.html

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

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

相关文章

一种编写测试的好方法

测试。 最近我一直在考虑进行测试。 作为我对各种项目所做的代码审查的一部分,我已经看到了数千行未经测试的代码。 这不仅是测试覆盖率统计数据指出这一点的情况,还更多是该项目中根本没有任何测试的情况 。 我一直听到这种悲惨状况的两个原因&#xff…

rem、px、em之间的区别以及网页响应式设计写法

个人收藏用,转载自:http://www.w3cplus.com/css3/define-font-size-with-css3-rem 在Web中使用什么单位来定义页面的字体大小,至今天为止都还在激烈的争论着,有人说PX做为单位好,有人说EM优点多,还有人在说…

游戏服务器架构图

1:ARPG类型游戏 2:MMORPG 3:MOBA 4:卡牌类 5:棋盘类 转载于:https://www.cnblogs.com/like-minded/p/8297718.html

php 解析http,用PHP手动解析原始HTTP数据

好的,所以Dave和Everts的建议我决定手动解析原始请求数据。搜索约一天后,我没有找到任何其他方式来做到这一点。我从这个thread获得了一些帮助。我没有任何运气篡改原始数据,就像在引用的线程中一样,因为这将破坏正在上传的文件。…

长为N的数组,元素范围是0-N-1,其中只有一个数是重复的,找出这个重复元素...

思路:如果限制空间复杂度为O(1),我们就无法采用哈希表的方法去求解。题目中数组中所以数字都在范围[0, N-1],因此哈希表的大小为N即可。因此我们实际要做的就是对N个范围为0到N-1的数进行哈希,而…

测试Spring的“会话”范围

在基于Spring的Web应用程序中,bean的作用域可以是用户“会话”。 从本质上讲,这意味着对会话范围的Bean的状态更改仅在用户会话范围内可见。 此项的目的是简单地突出显示Spring Test MVC提供的一种方法,以测试将会话范围的bean作为依赖项的组…

Sass学习之路(3)——Sass编译

Sass的编译也是在我们使用Sass的时候必须要经过的一个步骤&#xff0c;因为".sass"和".scss"文件并不能直接使用<link>标签引用&#xff0c;最终其实还是要将他们转换成CSS文件来在项目中使用。 所以要让web页面真正使用到Sass缩写的东西&#xff0…

爬虫练习一(爬取笑话集)

爬取笑话集网页 目标网址为&#xff1a;http://www.jokeji.cn/list.html 感觉这个网站挺简单&#xff0c;不用登陆&#xff0c;没有复杂的功能&#xff0c;好爬~ 可以现在浏览器中访问这个链接看一下效果&#xff0c;你会发现这个页面是个目录&#xff0c;有很多笑话页面的链接…

Huffman树学习

一篇很好的博客 转载于:https://www.cnblogs.com/cjoierljl/p/9319902.html

JAVA第六章第6题,java第六章例题源代码

《JavaWeb 程序设计》 练习题参考答案 第一章:Servlet 基础 1、下列选项中属于...由于 PHP 开放源 代码,并且是免费的,所以非常流行,是当今 Internet 上最为火热......JAVA 编程实例大全及详解答案(50 例) 【程序 1】题目:古典问题:有一对...9、Java 中一个字符占用两个 字节,所…

GlassFish 4带来了Java EE 7

真是惊喜 除了推出新的iOS 7外&#xff0c;苹果在wwdc上什么也没提供。 碰巧的是&#xff0c;在他们的主题演讲后不久&#xff0c;又有7个人正式露面。 GlassFish 4.0已于昨天晚上发布&#xff08;显然是不需要的&#xff09;。 新的Java EE 7参考实现自动成为当今第一个可用的…

bootstrap的栅格布局与两列布局结合使用

在工作中我们常常需要实现响应式布局&#xff0c;这个可以使用bootstrap的栅格系统来实现&#xff0c;我们在列里也需要实现一部分的响应式。比如下面的效果图&#xff0c;需要实现左边图标固定&#xff0c;右边的自适应 &#xff1a; 左边固定宽度&#xff0c;右边自适应&…

软件测试初学记录——第一章

阅读软件测试记要 什么是软件测试&#xff1a; 以找出软件中不符合需求而去操作软件的过程称为软件测试。 软件测试员的工作&#xff1a; 软件测试员的目标是尽早的发现软件缺陷&#xff0c;并确保其被修复。 软件缺陷是什么&#xff1a; 不符合需求文档或导致软件不能正常运行…

matlab命令 脑电波,基于Matlab的脑电波信号处理

做脑电波信号处理滴嘿嘿。。Matlab addictedCodes%FEATURE EXTRACTERfunction [features] EEGfeaturetrainmod(filename,m)a 4;b 7;d 12;e 30;signals 0;for index 1:9; % read in the first ten EEG data because the files are numbered as ha11test01 rather than ha…

JavaScript内置对象Date常用函数

// //获取当前时间// var dt new Date();// alert(dt);// //传入时间// var dt1 new Date("2017-08-12");// alert(dt1);//// //获取时间的对象(毫秒)// var dt2 Date.now();// alert(dt2);//// …

JVM性能魔术技巧

HotSpot是我们众所周知和喜爱的JVM&#xff0c;是Java和Scala汁流淌的大脑。 多年来&#xff0c;许多工程师对其进行了改进和调整&#xff0c;并且在每次迭代中&#xff0c;其代码执行的速度和效率都接近本机编译代码。 JIT&#xff08;“即时”&#xff09;编译器是其核心。…

移动端1px

移动端不同尺寸设备dpi不同&#xff0c;会造成1px线条不同程度的缩放&#xff0c;可利用媒体查询device-pixel-ratio&#xff0c;进行不同情况匹配&#xff1a; media&#xff08;-webkit-min-device-pixel-ratio:1.5&#xff09;,(min-device-pixel-ratio:1.5){//dpi:1.5 .bo…

mysql 10个日期,MySQL自学篇(10)——日期函数

MySQL自学篇(十)——日期函数日期和时间函数(1)获取当前日期的函数和时间的函数CURDATE()和CURRENT_DATE()函数&#xff0c;获取当前日期select current_date(),curdate(),curdate()0;curdate()0 表示将当前时间转化为数值型CURTIME()和CURRENT_TIME()获取当前时间select cur…

python-flask-请求源码流程

启动先执行manage.py 中的 app.run() class Flask(_PackageBoundObject):   def run(self, hostNone, portNone, debugNone, **options):from werkzeug.serving import run_simpletry:#run_simple 是werkzeug 提供的方法&#xff0c;会执行第三个参数 self()run_simple(ho…

正则表达式强化,爬虫练习

re模块下的常用方法 import re ret re.findall(\d(\.\d)?, 1.232.34)   print(ret) 结果&#xff1a; [.23,.34] # findall的正则表达式里面有分组(),()里面的内容优先显示 ret re.findall(\d(?:\.\d)?, 1.232.34)print(ret)    结果&#xff1a;…