python 的基础 学习 12天,函数
1, *args 动态 参数,万能参数
*args就是接受实参对应的剩余的位置参数,并将其放在元组中。在定义函数时,*args代表的是聚合。
def func(*args):
print(args)
func(1,34,'jdai',5,56,66)#(1, 34, 'jdai', 5, 56, 66)
def func(a,b,c,d,*args,e='男'):
print(a)
print(b)
print(c)
print(d)
print(args)
print(e)
func(1,2,3,4,5,10,5,6,7,8,e='女')# (5, 10, 5, 6, 7, 8)
女
2,**kwargs,动态传参,只接受关键字参数,将所有的关键字参数(无意义的)放到一个字典中。
最终顺序(形参角度)
def func(a,b,c,**kwargs):
print(kwargs)
func(1,3,4,r=6,t=7,y=0)
位置传参,*args, 默认参数 **kwargs
def func(a,b,c,d,*args,e='男',**kwargs):
print(a)
print(b)
print(c)
print(d)
print(args)#(5, 10, 5, 6, 7, 8)
print(e)
print(kwargs)#{'f': '女', 'h': 48, 'g': 5}
func(1,2,3,4,5,10,5,6,7,8,f='女',g=5,h=48)
3, *号的魔法运用,在函数调用执行时,*代表打散。*加可迭代对象(list,tuple,set,str,dict的键),代表打散,将元素一一添加到args。
def func(*args):
print(args)
li = [1,2,3,4,6]
l2 = [3,6,6,7,77,66]
tu = ('eqwj','ee','ui')
func(*li,*l2,*tu)
(1, 2, 3, 4, 6, 3, 6, 6, 7, 77, 66, 'eqwj', 'ee', 'ui')将元素一一添加到args中。
def func(**kwargs):
print(kwargs)
dic = {'name':'alex','age':44}
dic1 = {'home':'taiwan','hobby':'football'}
func(**dic,**dic1)
**字典,代表打散,将所有键值对放到一个kwargs字典里。
def func(*args,**kwargs):
print(args)
print(kwargs)
dic1 = {'honnn':'shui','nugu':'dao'}
dic2 = {'name1':'两年半','age':33}
func(*[1,3,4,5],*'ahdhsdkj',**dic1,**dic2)
(1, 3, 4, 5, 'a', 'h', 'd', 'h', 's', 'd', 'k', 'j')
{'nugu': 'dao', 'name1': '两年半', 'honnn': 'shui', 'age': 33}
4,名称空间,也叫命名空间。放置变量与对应的值得关系(内存地址的关系)。当执行函数的时候,它会在内存中开辟一个临时名称空间,存放函数体内的所有变量与值得关系,随着函数的执行完毕,
临时空间自动关闭。
全局名称空间,名称空间,命名空间,全面命名空间。
局部命名空间,临时名称空间,临时命名空间,局部名称空间。
内置名称空间,所有的内置函数等存储的空间。
加载顺序:
内置名称空间>>>全局名称空间>>>(函数执行时)局部名称空间
取值顺序:
(函数执行时)局部名称空间>>>全局名称空间>>>内置名称空间
name = '老男孩'
def func1():
name ='taibai'
print(name)
func1()#taibai
name = '老男孩'
def func1():
# name ='taibai'
print(name)
func1()#老男孩
全局作用域:全局名称空间,内置名称空间。
局部作用域:局部名称空间。
5,函数的嵌套
print(111)#
def func1():
print(333)#
func2()
print(777)#
def func2():
print(444)#
def func3():
print(555)
func2()
func1()
print(222)#
print(111)#
def func1():
print(333)#
func2()
print(444)#
def func2():
print(222)#
func3()
print(555)#
def func3():
print(666)#
func1()
print(777)#
6,globals和locals
a = 2
b = 3
def func1():
c = 4
d = 5
print(globals())#将全局变量放在字典中
return locals()#将局部变量放在字典中{'c': 4, 'd': 5}
print(func1())
{'a': 2, '__cached__': None, '__file__': 'D:/python3/day11/xuxi329.py', '__name__': '__main__', '__doc__': None, '__builtins__': <module 'builtins' (built-in)>, 'b': 3, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000001EE02A95780>, 'func1': <function func1 at 0x000001EE026CA048>, '__spec__': None, '__package__': None}
a = 4
def func1():
b = 6
def func2():
nonlocal b#nonlocal不能修改全局变量
b = 666
print(b)
func2()
print(b)
func1()
global:
1,在局部空间内,声明一个全局变量。
2,在局部空间内,改变一个全局变量。
globals,全局名称空间:所有变量。
locals,局部名称空间:所有变量。
nonlocal:
1,不能修改全局变量。
2,在局部作用域中,对父级作用域(或者更外层作用域非全局作用域)的变量进行引用和修改,并且引用的哪层,从那层及以下此变量全部发生改变。
python 的基础 学习 12天,函数的更多相关文章
- Python入门基础学习 三
Python入门基础学习 三 数据类型 Python区分整型和浮点型依靠的是小数点,有小数点就是浮点型. e记法:e就是10的意思,是一种科学的计数法,15000=1.5e4 布尔类型是一种特殊的整形 ...
- Python入门基础学习 二
Python入门基础学习 二 猜数字小游戏进阶版 修改建议: 猜错的时候程序可以给出提示,告诉用户猜测的数字偏大还是偏小: 没运行一次程序只能猜测一次,应该提供多次机会给用户猜测: 每次运行程序,答案 ...
- Python入门基础学习 一
Python入门基础学习 一 Python下载及安装 下载地址:https://www.python.org/,选择最新的版本下载 稍等一会,安装完成. 简单语句 从idle启动Python:IDLE ...
- Python入门基础学习(函数)
Python基础学习笔记(三) 函数的概念: 所谓函数,就是把具有独立功能的代码块组织为一个小模块,在需要的时候调用 函数的使用包含两个步骤: 1.定义函数 --封装独立的功能 2.调用函数 --享受 ...
- Python入门基础学习(列表/元组/字典/集合)
Python基础学习笔记(二) 列表list---[ ](打了激素的数组,可以放入混合类型) list1 = [1,2,'请多指教',0.5] 公共的功能: len(list1) #/获取元素 lis ...
- Python入门基础学习(文件与异常处理)
Python基础学习笔记(七) 捕获异常的语法格式: 文件的基本操作: 打开文件 读.写文件 关闭文件 read方法 --读取文件: open函数的第一个参数是要打开的文件名(文件名区分大小写) 如果 ...
- Python入门基础学习(时间模块,随机模块)
Python基础学习笔记(六) time模块: 时间的三种表示方法: 1.格式化字符串 2.时间戳 用来表示和1970年的时间间隔,单位为s 3.元组 struct_time 9个元素 time的st ...
- Python入门基础学习(模块,包)
Python基础学习笔记(五) 模块的概念:模块是python程序架构的一个核心概念 每个以拓展名py结尾的python源代码文件都是一个模块 模块名同样也是一个标识符,需要符合标识符的命名规则 在模 ...
- Python入门基础学习(面向对象)
Python基础学习笔记(四) 面向对象的三个基本特征: 封装:把客观事物抽象并封装成对象,即将属性,方法和事件等集合在一个整体内 继承:允许使用现有类的功能并在无须重新改写原来的类情况下,对这些功能 ...
随机推荐
- 【洛谷P2127】序列排序
题目大意:给定一个长度为 N 的序列,序列中的数两两不相同,每次可以交换序列中任意两个数,代价为这两个数的和,问将序列调整为升序,最少的代价是多少. 题解:考虑这个问题的一个子问题,这个序列为 N 的 ...
- bouncing-balls-evil-circle
效果如下 代码目录 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=&q ...
- 简单ATM系统
模拟实现一个ATM + 购物商城程序1.额度 15000或自定义2.实现购物商城,买东西加入 购物车,调用信用卡接口结账3.可以提现,手续费5%4.每月22号出账单,每月10号为还款日,过期未还,按欠 ...
- 第二十六节,滑动窗口和 Bounding Box 预测
上节,我们学习了如何通过卷积网络实现滑动窗口对象检测算法,但效率很低.这节我们讲讲如何在卷积层上应用这个算法. 为了构建滑动窗口的卷积应用,首先要知道如何把神经网络的全连接层转化成卷积层.我们先讲解这 ...
- pandas知识点
1.选择对象 1.选择特定列和行的数据 a['x'] 那么将会返回columns为x的列,注意这种方式一次只能返回一个列.a.x与a['x']意思一样. 取行数据,通过切片[]来选择 如:a[0:3] ...
- 友链——一群dalao
****敲黑板,重点. <机房最强大佬(楼下的CP)>https://deathmonkey.blog.luogu.org/ <机房最强基佬> https://www.luog ...
- Python list 初始化技巧
1.一维列表 1.1 递增列表 # 初始化递增的list,与L = [i for i in range(10)] 效果相同 L = range(10) # 版本变化L = i for i in ran ...
- 【JS】js将 /Date(1518943415760+0800)/ 转换为2018-2-18 16:43:35格式
function formatDate(dt) { var year = dt.getFullYear(); var month = dt.getMonth() + 1; var date = dt. ...
- Git(创建与合并分支)
在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支.HEAD严格来说不是指向提交,而 ...
- shop++改造之Filter类
基于shop++源码进行商城改造.本来想大展手脚,结果一入手.发觉瞬间淹没了我的才华,sql语句也得贼溜没啥用. 不得不说这个商城源码价值很高,封装的很精屁. 下面是我第一天入手的坑. 数据库建好了表 ...