今天接着来说那个新的大知识点,函数,函数中是可以传递一个数值的,这个数值简称为参数,对于参数,他可以是任意个数和任意类型(数据类型)。参数的其中一种有位置传参,函数中的参数有几个,那么就要传入几个,传入的参数简称形参,还有一个是关键字参数,比如在传入是指定是哪个参数传入,a1 = 9·······关键字参数和位置参数可以混合使用,但位置参数一定要在前面,关键字参数在后面,两个参数个数之和等于形参,还有默认参数,在函数的参数中,其中有参数已经指定了一个数值,那么当你没有传入形参时,自动用这个默认参数代入函数中,当有形参传入,则使用形参。还有一个叫做万能参数用*args表示,代表可以接受n个参数传入,传出则为元祖,如果输入为func(*(11,22,33)),则输出为(11,22,33),其余都添加到元组中,这个主要用于不知道需要传入的参数有多少的时候,但是这个不支持关键字传参,只支持位置传参,位置传参有万能的,关键字传参当然也有万能的,在函数中,func(**kwargs)就表示所有的关键字传参,这个传参会形成一个字典存在函数中,当一个字典带着**传入期中时,输出还是为自己本来的字典比如func(**{‘k1’:1}),当然这个万能参数也是只能传关键字参数,所以,后面就有一个可以结合起来用的def func(*args,**kwargs),这个组合堪称无敌,既可以接受任意参数的数量,又可以传入位置参数和关键字参数。普遍用的也就是这个了。之后还有一个函数的作用域和函数的嵌套,作用于就好比整个函数在一个楼道中,从头开始慢慢往下走其中函数就是一个个的门,全部都要遵循从上到下的原则,一个函数相当于一个作用域,作用域和作用域之间互不干扰,在作用域中寻找一个参数如果没有,就去上一级找,找到全局作用域的时候再没有就报错,当然在一个函数中,是可以嵌套一个函数的,自己优先在自己这里找,然后去上级找,但是上级不能进函数的作用域中找,当然函数作用域中也是有一些可以修改上级甚至全局作用域的权限,比如global xxx xxx = xx,就可以修改全局作用域中的参数了,但是对自己的上级是不做任何操作的,既然全局的都可以改,当然能改上级的,nonlocal就是只改上级的。感觉小作用域比大作用域的权限还高。学习作用域可以让你在看代码的时候分清楚究竟是哪一步先开始到哪一步结束。方便自己阅读代码。

python一直放弃到双数的day10的更多相关文章

  1. Python距离放弃拉近的day03

    新的一天,依旧是内容补充,补充了数学没有的运算符,in和not in,就是判断in前面的东西是不是在后面的数据中,然后新课讲了平常最常用的字符串的方法,引号的里面全部都是字符串,在其中就会又如何判断这 ...

  2. Python距离放弃又近了Day02

    今天,来时大概复习了上一天讲过的一些计算机基础和简单数据类型和if语句,第二天就来了循环,还是个while的死循环,突然想到还是电脑好,不管循环多少次,只要电脑不崩溃,就能一直精准的算下去,这就和人不 ...

  3. python(从放弃到从头开始)

    本节内容 Python介绍 发展史 Python 2 or 3? Hello World程序 变量 用户输入 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语句 表达式for ...

  4. python从放弃到放弃

    本文目录 第一篇:python基础 第二篇:数据类型 第三篇:文件处理 第四篇:函数 第五篇:模块与包 第六篇:常用模块

  5. 关于Python编程的一些问答

    关于Python编程的一些问答 导语 大约1个月前,oschina.net和华章图书一起合作做了一个活动:OSC第51期高手问答--聊聊python那些事,来推广我参与撰写的书<编写高质量代码: ...

  6. pythonのgevent同步异步区别

    #!/usr/bin/env python from urllib import request import gevent from gevent import monkey import time ...

  7. Python的浮点数损失精度问题

    本篇讨论的现象可以从下面这段脚本体现出来: >>> x = 0.0 >>> for i in range(10): x += 0.1 print(x) 0.1 0. ...

  8. 英语专业出身也要走向python

    这两年一直徘徊在学习python和放弃python的道路上不断的徘徊,今年终于没有在蹉跎下去,选择了开始新的自我挑战,零基础开始学习python. 作为一名英语专业毕业的文科生,学习编程还是相对有些困 ...

  9. Python的自增运算符

    今天在写一个合并两个有血list的时候,使用了while循环,不自觉的使用了i++,自测的时候发现有语法错误,还检查了好几遍,觉得应该没啥错误啊,后来google了一把,恍然大悟,原来Python早就 ...

随机推荐

  1. 必看!如何让你的LBS服务性能提升十倍!

    本文由云+社区发表 作者:腾讯云数据库团队 随着国内服务共享化的热潮普及,共享单车,共享雨伞,共享充电宝等各种服务如雨后春笋,随之而来的LBS服务定位问题成为了后端服务的一个挑战.MongoDB对LB ...

  2. 在word中如何美观地插入代码

    打开这个网站 http://www.planetb.ca/syntax-highlight-word 进去后我们看到下面的界面 中间的空白文本框,可以插入代码,下面可以选择代码种类,最后点击Show ...

  3. vue.js window.removeEventListener 移除

    vue项目中的小坑记录下,想要移除window的addEventListener,需要把后面的function挂在到this上,removeEventListener 和 addEventListen ...

  4. Vue(day6)

    一.webpack中常用的文件loader & 插件 由于版本存在变动,以下安装和配置都有可能发生变化,请以官方文档为准. 1.html-webpack-plugin插件 html-webpa ...

  5. Redhat 平台下 LVM 管理说明

    Redhat 平台下  LVM 管理说明 LVM 是 Logical Volume Manager(逻辑卷管理器)的简写,它为主机提供了更高层次的磁盘存储管理能力.LVM 可以帮助系统管理员为应用与用 ...

  6. java~lombok里的Builder注解

    lombok注解在java进行编译时进行代码的构建,对于java对象的创建工作它可以更优雅,不需要写多余的重复的代码,这对于JAVA开发人员是很重要的,在出现lombok之后,对象的创建工作更提供Bu ...

  7. Eureka服务下线后快速感知配置

    现在由于eureka服务越来越多,发现服务提供者在停掉很久之后,服务调用者很长时间并没有感知到变化,依旧还在持续调用下线的服务,导致长时间后才能返回错误,因此需要调整eureka服务和客户端的配置,以 ...

  8. Spring Boot 和 Docker 实现微服务部署

    Spring boot 开发轻巧的微服务提供了便利,Docker 的发展又极大的方便了微服务的部署.这篇文章介绍一下如果借助 maven 来快速的生成微服务的镜像以及快速启动服务. 其实将 Sprin ...

  9. JS里charCodeAt()和fromCharCode()方法拓展应用:加密与解密

    JS实现客户端的网页加密解密技术,可用作选择性隐蔽展示.当然客户端的加密安全度是不能与服务器相提并论,肯定不能用于密码这类内容的加密,但对于一般级别的内容用作展示已经够了. JS加密与解密的解决方案有 ...

  10. 基于IIS的WCF

    (1)创建WCF服务应用程序 (2)配置IIS 将WCF服务应用程序配置IIS网站,需要使用.net4.0集成版本的程序池 (3)使用SvcUtil.exe生成客户端代码和配置 SvcUtil.exe ...