函数嵌套: 第一种嵌套方法 def func(): count = 123 def inner(): print(count) inner() func() 第二种嵌套方法 count = 123 def func_1(): print(count) def func_2(): func_1() func_2() 1. global count = 0 def func1(): global count #把count变量变成全局变量,这样才可以修改,因为count在局部函数中没有定义 coun…
1.  函数名就是内存地址 def func(): ') print(func) >>>> <function func at 0x00000000003DC1E0> 2, 函数名可以被作为变量被传递 def func1(): #2 函数名可以作为变量被传递 ') f1 = func1 f2 = f1 f2() # 执行 func1() 3. 函数名可以被作为参数传递 def func1(): # 3.函数名可以作为参数被传递 print(123) def func2(…
名称空间分为3种: 1. 全局名称空间 2. 内置名称空间 3. 局部名称空间(临时) 作用域 全局作用域              1全局名称空间 2 内置名称空间 局部作用域             1.局部名称空间 取值顺序     ----就近原则 局部名称空间 --------  全局名称空间   ---------- 内置名称空间     从小到大的原则进行进行查找, 如果在全局名称空间调用的值,那么他将会在全局名称和内置名称空间取值. 变量的加载顺序 内置空间变量 --------…
1. *args 接收实参的位置参数, **kwargs接收实参的关键字参数 def func(*args, **kwargs): print(args, kwargs) func(1, 2, 3, 4, name=') #将位置参数放到args,将关键字参数放到kwargs中 >>>>(1, 2, 3, 4) {'name': 'alex', 'age': '123'} 2. 实参: *位置参数,用来打散位置参数,使其一个个单独传入*args或者**kwargs中 l1 = [1…
函数的最主要的目的:封装一个功能 函数的优点: 减少代码的复用率, 增加代码的阅读性 def my_len(arvg): # arvg 形参 my_len函数名,应该具有代表性,让你一看就明白 # 函数体 count = 0 for i in arvg: count += 1 return count print(my_len(s)) # s实参 return 特点:遇到return结束程序, 返回一些信息 如果当只有一个返回值时,返回是什么就是什么类型的 如果当有多个返回值时,将返回一个元组,…
如果对象的属性中有__iter__属性就说明是可迭代的,容器类的数据类型都是可迭代对象 如果对象的属性中既有__iter__属性也有__next__属性,就说明这个对象是迭代器 如何判断一个函数是不是可迭代的,是不是迭代器 方法一 s = ' print('__iter__' in dir(s)) #如果是可迭代内部将存在__iter__属性 f = open('01 今日内容大纲', encoding='utf-8', mode='r') print('__next__' in dir(f))…
闭包的基本概念: 闭包 内层函数对外层函数的变量(不包括全局变量)的引用,并返回,这样就形成了闭包 闭包的作用:当程序执行时,遇到了函数执行,它会在内存中开辟一个空间,如果这个函数内部形成了闭包, 那么他就不会随着函数的执行结束而消失 闭包的基本例子 def wrapper(): name = 'alex' def inner(): print(name) #inner函数引用了name函数,形成了闭包 print(inner.__closure__) return inner() wrappe…
文件操作初识: 1. 文件路径 :d:/护士主妇空姐联系方式  (文件路径不要太过复杂,容易碰到转义字符的问题, 当碰到转义字符时,需要在前面+r,或者采用双斜杠(//)) 2. 编码方式 :utf-8, gbk, gb2312 3.操作方式: 只读(r),只写(w), 写读(r+), 读写(w+), 追加(a), 追加读(a+) 1. 读 r     只读模式,适合文字类文件, open的默认方式 rb   非文字类文件的只读方式 r+  读写功能,先读后写时,写入的字符在文件最后,直接写入,…
⼀. 函数参数--动态传参 之前我们说过了传参, 如果我们需要给⼀个函数传参, ⽽参数⼜是不确定的. 或者我给⼀个 函数传很多参数, 我的形参就要写很多, 很⿇烦, 怎么办呢. 我们可以考虑使⽤动态参数. 形参的第三种: 动态参数 动态参数分成两种:1. 动态接收位置参数⾸先我们先回顾⼀下位置参数, 位置参数, 按照位置进⾏传参 ef chi(quality_food, junk_food): print("我要吃", quality_food, junk_food) chi(&quo…
一.动态参数#形参 有3种动态参数#*args 动态参数,不定长参数def func (*args): print(args,type(args))func(1,2,"alex",3,4,55,5,)#输出结果 (1, 2, 'alex', 3, 4, 55, 5) <class 'tuple'> def func(a,b,c,*args): print(a) print(b) print(c) print(args,type(args))func(1,2,"al…