day10_7.10 函数的嵌套等】的更多相关文章

一.命名关键字参数.(了解) 1.在函数阶段,写在*与** 可变长参数之间的形参称为命名关键字参数. 在给命名关键字参数传值时,只能用关键字为其传值.诸如以下函数的形参 def func(x,y=,*args,z=,m,**kwargs): print(x,y) print(args) print(z,m) print(kwargs) z=3,m,这些函数型参看似会报错,因为关键字参数写在了位置参数的前面,但其实是在*args和**kwargs之间的位置参数.所以,给其传参时统一使用关键字传参…
6.函数的动态参数 *args,**kwargs:能接受动态的位置参数和动态的关键字参数 *args -- tuple *kwargs -- dict 动态参数优先级:位置参数 > 动态位置参数 > 默认参数(关键字参数) > 动态关键字参数 1.*.args: ​ 接收动态的位置参数,接受任意多个,定义阶段*为聚合,调用阶段*为打散 def func(a,b,*args):#*.args可以替换,*s print(a,b,args) print(a,b,*args) #*为打散 fun…
目录 1 函数嵌套 2 作用域 2.1 global关键字 3 闭包 3.1 nonlocal关键字 4 默认值的作用域 5 变量名解析原则LEGB 6 函数的销毁 1 函数嵌套         一个函数中存在另外一个函数(定义/调用),这种方式我们称之为函数嵌套.所以:函数的嵌套主要分为嵌套调用,以及嵌套定义. 函数的嵌套调用 def max2(a,b): # 判断两个变量的最大值 return a if a > b else b def max4(a,b,c,d): # 判断四个变量的最大值…
1. day 09 内容复习 # 函数 # 可读性强 复用性强 # def 函数名(): # 函数体 #return 返回值 # 所有的函数 只定义不调用就一定不执行 #先定义后调用 #函数名() #不接收返回值 #返回值 = 函数名() #接收返回值 #返回值 # 没有返回值 :默认返回None # 不写return:函数内的代码执行完毕自动结束 # 只写return:结束一个函数 # return None # 返回一个值 :结束了函数且返回一个值,可以是任意的值 # 返回多个值 : 多个值…
函数进阶 1.   "*"  和  "**" ① 在形参位置时   都是聚合的作用 *args    位置参数→元组 **kwargs   关键字参数→字典 混合时顺序为: 位置  , *args ,  默认值 , **kwargs ② 在实参位置时    都是打散的作用 *args      字符串,元组,字典 → 位置参数 **kwargs     字典 → 关键字参数 2.名称空间 用来存放名字(变量, 函数名, 类名, 引入的模块名)的 1. 全局名称空间:…
二十八.函数进阶 1.   "*"  和  "**" ① 在形参位置时   都是聚合的作用 *args    位置参数→元组 **kwargs   关键字参数→字典 混合时顺序为: 位置  , *args ,  默认值 , **kwargs ② 在实参位置时    都是打散的作用 *args      字符串,元组,字典 → 位置参数 **kwargs     字典 → 关键字参数 2.名称空间    用来存放名字(变量, 函数名, 类名, 引入的模块名)的 1.…
函数的基本概述 在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上到下实现功能,可以思考一下如果有某个功能的代码是在多个地方使用的是否可以只写一次?此时的代码该如何定义.先观察以下的案例: while True:    if cpu利用率 > 90%:        #发送邮件提醒        连接邮箱服务器        发送邮件        关闭连接        if 硬盘使用空间 > 90%:        #发送邮件提醒        连接邮箱服务器        发送…
一,复习 # 字符串的比较 # -- 按照从左往右比较每一个字符,通过字符对应的ascll进行比较 # print('a' > 'A') #True # print('ac' > 'ab') #True # 函数的参数 # 1)实参与形参: # -- 形参:在函数定义时()中出现的参数 # -- 实参:在函数调用时()中出现的参数 # 2)实参的分类 # -- 位置实参:给位置形参,必须按位置 # -- 关键字实参:给位置与关键字形参,不需要按顺序 # 3)形参的分类 # -- 无值位置 #…
复习 1. 字符串的比较: 2. 函数的参数:形参与实参 3. 实参的分类:位置实参与关键字实参 4. 形参分类: 1.无值位置形参 2.有值位置形参 3.可变长位置形参 4.有无值关键字形参 5.可变长关键字形参 5. 打散机制 今日内容 1. 函数默认值的细节.* 2. 数据类型的补充:语法简单,经常去使用就OK *** ----- 三元表达式  |  列表推导式  |  字典推导式 3. 函数对象:函数名的各种应用场景  ***** 4. 名称空间与作用域:解释变量名重复与从图冲突问题 …
 复习   1.字符串的比较; 2.函数的参数; ******实参与形参的分类: 3.函数的嵌套调用:     # 字符串的比较#  -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 # 函数的参数# 1)实参与形参:# -- 形参:在函数定义时()中出现的参数 # -- 实参:在函数调用时()中出现的参数 # 2)实参的分类# -- 位置实参:给位置形参,必须按位置# -- 关键字实参:给位置与关键字形参,不需要按顺序 # 3)形参的分类# -- 无值位置# -- 有值位置#…
一.函数的定义 函数的四个组成部分: 函数名. 函数体. 函数返回值. 函数参数 1.概念:重复利用的工具,可以完成特定功能的代码块,函数是存放代码块的容器 2.定义: def:声明函数的关键词 函数名fn:使用该函数的依据 函数体:完成功能的代码块 返回值return:功能完成的反馈结果 参数():完成功能需要的条件信息(参数个数可以为0~n个,但()一定不能丢) 3.定义函数的方法: def 函数名(参数们): 函数体 return‘返回值’ fn直接打印,只能看到函数存放代码的地址 age…
复习 # 字符串的比较 # -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 # 函数的参数 # 1)实参与形参: # -- 形参:在函数定义时()中出现的参数 # -- 实参:在函数调用时()中出现的参数 # 2)实参的分类 # -- 位置实参:给位置形参,必须按位置 # -- 关键字实参:给位置与关键字形参,不需要按顺序 # 3)形参的分类 # -- 无值位置 # -- 有值位置 # -- 可变长位置 # -- 有无值关键字 # -- 可变长关键字 def fn(a, b=…
复习 # 什么是函数:具体特定功能的代码块 - 特定功能代码块作为一个整体,并给该整体命名,就是函数 # 函数的优点: # 1.减少代码的冗余 # 2.结构清晰,可读性强 # 3.具有复用性,开发效率高,维护成本低 # 如何定义一个函数:用def关键词来声明函数 ''' def fn(参数列表): 函数体 return 函数的返回值 ''' # -- 定义函数时,函数体不会被执行 | 函数必须先定义后使用 # 函数的四部分: # 函数名:存放着函数的地址,是调用函数的依据 # 函数体:解决问题的…
复习, 昨天讲了字符串的比较,按照从左往右比较每一个字符,通过字符对应的ASCII码进行比较 函数的参数,‘ 实参与形参 形参:在函数定义时()中出现的参数 实参,在函数调用时()中出现的参数 实参的分类 位置实参:给位置形参传值,必须 按位置 关键字实参:给位置与关键字形参,不需要按照顺序 形参的分类, ··无值位置形参 ··有值位置形参 ··可变长位置形参 ··有无值关键字形参 ··可变长关键字形参 def fn(a,b=10,*args,x,y=10,z,**kwargs):pass 4:…
命名空间 -------‘’存放名字与值的关系”的空间 代码在运行伊始,创建的存储“变量名与值的关系”的空间叫做全局命名空间: 在函数的运行中开辟的临时的空间叫做局部命名空间. 命名空间一共分为三种: 全局命名空间 局部命名空间 内置命名空间 *内置命名空间中存放了python解释器为我们提供的名字:input,print,str,list,tuple...它们都是我们熟悉的,拿过来就可以用的方法. 三种命名空间之间的加载与取值顺序: 加载顺序:内置命名空间(程序运行前加载)->全局命名空间(程…
函数嵌套: 函数嵌套: 嵌套指的是,一个物体包含另一个物体,函数嵌套就是一个函数包含另一个函数 按照函数的两个阶段 嵌套调用 指的是在函数的执行过程中调用了另一个函数,其好处可以简化外层大函数的代码,使得结构更清晰 可以将一个大的复杂的功能拆成多个简单的小功能 嵌套调用的好处: def max(a,b): if a>b: return a return b print(max(100,200)) 嵌套调用: def max_3(a,b,c): temp=max(a,b) m=max(temp,c…
#函数的嵌套分为两类:# 1.函数的嵌套定义: 在函数内部又定义了一个函数# def foo():# x=1# # print(x)# def bar():# print('from bar')## bar()# foo() # from math import pi# # def circle(radius,types=0):# def perimiter(radius):# return 2 * pi * radius# # def area(radius):# return pi * (r…
1. 函数参数--动态传参 昨天已经解过了传参, 如果需要给一个函数传参,而参数又是不确定的. 或者我们给一个函数传很多参数, 我的形参就要写很多, 写起来就很麻烦, 这时我们可以考虑使用动态参数.形参的第三种:动态参数. (1) 动态参数分为两种: 1) 动态接收位置参数 语法: def 函数名(*args):         在形参前加个'*'符号 def chi(*food): # *表示任意,即可以接收任意位置参数 print('我要吃',food) # 动态参数接收到的是tuple类型…
1. 动态参数 位置参数的动态参数: *args 关键字参数的动态参数 : **kwargs 顺序: 位置,*args,默认值,**kwargs 在形参上*聚合, **聚合 在实参上*打散, **打散例 # def chi(good_food, bad_food,drink, ice, jiu):# print("我要吃", good_food, bad_food)## chi("盖浇饭", "辣条") # 位置参数 > *动态参数 >…
一.局部变量与全局变量 1.在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量.全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序. 全局变量没有任何缩进,在任何位置都可以调用. 子程序:如用def定义的函数. 作用域 一个标识符的可见范围,这就是标识符的作用域.一般常说的是变量的作用域 全局作用域(global):在整个程序运行环境中都可见 局部作用域:在函数.类等内部可见:局部变量使用范围不能超过其所在的局部作用域. 例子 NAME = "nicholas&qu…
今日内容 1.函数对象 2.名称空间与作用域 3.函数的嵌套调用与闭包 4.装饰器 一.函数对象 1.1 定义 函数名存放的就是函数地址,所以函数名也就是对象,称之为函数对象 1.2 函数对象的应用 1.可以直接被引用 2.可以当作函数参数传数 3.可以作为函数的返回值 4.可以作为容器类型的元素 def fn(): num = 10 print('fn function run') # 直接被引用 func = fn fn() func() 案例:四则运算 def add(n1, n2): r…
动态传参 (重点)  *    ** 形参  * args在形参位置, *表示不定参数--接受的是位置参数   接受到的位置参数的动态传参:  都是元组 形参的顺序: 位置  *args 默认值  **kwargs   以后写参数,可以随意的进行搭配 def chi(zhushi, cai, fushi, tang, tiandian):     print(zhushi,cai,fushi,tang,tiandian)     chi("大碗大米饭", "火爆大头菜&quo…
Python之路Python全局变量与局部变量.函数多层嵌套.函数递归 一.局部变量与全局变量 1.在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量.全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序. 全局变量没有任何缩进,在任何位置都可以调用. 子程序:如用def定义的函数. 作用域 一个标识符的可见范围,这就是标识符的作用域.一般常说的是变量的作用域 全局作用域(global):在整个程序运行环境中都可见 局部作用域:在函数.类等内部可见:局部变量使用范围不…
一.函数对象 1.函数是第一类对象,即函数可以当做数据传递 1.1 可以被引用 1.2 可以当做参数传递 1.3 返回值可以是函数 1.4 可以当做容器类型的元素 二.函数的嵌套 1.函数嵌套的调用: def f1(): print('f1') def f2(): a = 10 f1() 函数的嵌套,为了保护内部函数,确定内部函数只能在外部函数中被调用 def animal(): def tiger(): print('bark') print('eat') tiger() # animal()…
作业提升: s为字符串 s.isalnum() 所有字符都是字母或者数字 s.isalpha() 所有字符都是字母 s.isdigit() 所有字符否是数字 2. for i in range(1,10,3)的用法 从1到10,以步长为3 查找数据 即 1 4 7 10 3.   用Ture    和 False  来判断 4. 三元表达式  a if  a  > b  else  b    如果a>b成立  返回前面的a ,不成立返回最后b 今日主要内容 1. 动态参数  位置参数的动态参数…
一 函数的名称空间 内置空间:存放python解释器内置函数的空间 全局空间:py文件运行时开辟的,存放的是执行的py文件(出去函数内部)的所有的变量与值的对用关系,整个py文件结束后才会消失. 局部空间:函数定义时,会记录下函数名与函数体的对应关系(什么都没有,只要内存地址,只有执行时才会在内存中临时开辟一个临时空间,存放的函数中的变量与值的对应关系,随着函数的结束而消失) 加载顺序:内置空间 > 全局空间 > 局部空间 取值顺序:局部空间 > 全局空间 > 内置空间 作用域 全…
day10 三元运算符: 变量 = 条件成立的结果 条件判断 条件不成立的结果 补充: # lst = [12,23,3,4,5,6] # def func(*args): # print(*args) # func(lst[0],lst[1]) # 笨的办法 # func(*lst) # dic = {"key":1,"key1":34} # def func(**kwargs): # print(kwargs) # func(**dic) 动态参数 args :…
1.三元运算if条件成立的结果 if 条件 else 条件不成立的结果例如: a=20 b=10 c=a if a>b else b print(c) 2.命名空间 全局命名空间:创建的存储“变量名与值的关系”的空间叫做全局命名空间  局部命名空间:在函数的运行中开辟的临时的空间叫做局部命名空间 内置命名空间:内置命名空间中存放了python解释器为我们提供的名字:input,print,str,list,tuple...它们都是我们熟悉的,拿过来就可以用的方法. 三种命名空间之间的加载顺序和取…
一.名称空间与作用域 名称空间:存放名字的地方,准确的说名称空间是存放名字与变量值绑定关系的地方 内置名称空间:在python解释器启动时产生,存放一些python内置的名字 全局名称空间:在执行文件时产生,存放文件级别定义的名字 x=1 def func(): y=2 def f1():pass print import os class Foo: pass if x==1:z=3 del x 局部名称空间:在执行文件的过程中,如果调用了函数,则会产生该函数的局部名称空间 用来存放该函数内定义…
一.函数的嵌套 嵌套在外层,称之为外函数 嵌套在里层,称之为内函数#例:def outer(): def inner():        print("I'm inner")    def inn2():        print("12345")    inn2()    inner()outer() #inner() (1)内部函数可以直接在函数外部调用吗 不可以(2)调用外部函数后,内部函数可以在函数外部调用吗 不可以(3)内部函数可以在函数内部调用吗  可以…