本文档主要内容: 一 装饰器函数的信息打印 二 迭代器 三 生成器 四 生成器表达式和列表推导式 五 内置函数 一 装饰器函数的信息打印 一个函数一旦被装饰器给装饰后,这个函数的信息使用原来的命令打印的就是装饰器函数的信息了,如何改为被装饰函数的信息呢? from functools import wraps def logger(f): @wraps(f) def inner(*args, **kwargs): """ :param args: 函数名,密码 :param…
三目运算符 ```python# 三目(元)运算符:就是 if...else...语法糖# 前提:简化if...else...结构,且两个分支有且只有一条语句# 注:三元运算符的结果不一定要与条件直接性关系 cmd = input('cmd: ')print('可以转化为数字') if cmd.isdigit() else print('不可以转化为数字') a = 20b = 30res = a if a > b else b # 求大值print(res) res = 'b为小值' if a…
1.推导式:做一些有规律的数据结构 列表推导式: 普通循环模式: [加工后的变量 for 循环] 示例一:print([i for i in range(1,51)]) 结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43…
17.推导式: 推导式:将for循环多行变成一行 list推导式:[] #普通模式 print([i for i in range(20)]) #循环模式 #[变量 for i in range(20)] print([i+1 for i in range(10)]) #筛选模式 #[变量(加工后) for i in range(20)] print([i for i in range(20) if i % 2 == 1]) 生成器表达器:() #普通模式 print((i for i in r…
一.三元(目)运算符 1.就是if...else...语法糖 前提:if和else只有一条语句 # 原来的做法 cmd = input('cmd:>>>') if cmd.isdigit(): print('可以转化为数字') else: print('不可以转化为数字') # 现在的做法 cmd = input('cnd:>>>') print('可以转化为数字') if cmd.isdigit() else print('不可以转化为数字') # 案例:得到两个数大…
三元运算符 # 生成器:包含yield关键字的函数就是生成器 def my_generator(): yield 1 yield 2 yield 3 g_obj = my_generator() # my_generator()并不会执行函数体,得到的返回值就是生成器对象 # 生成器对象就是迭代器对象 r1 = g_obj. for v in g_obj: print(v) # 2 | 3 推导式 # 列表推导式:[v for v in iterable] dic = {'a': 1, 'b':…
上节课复习:1.函数的对象    函数可以被当作数据取处理2.函数嵌套    嵌套调用:在调用一个函数时,函数体代码又调用了其他函数    嵌套定义:在一个函数内部又定义了另一个函数 def foo() def inner(): pass return inner #拿到inner的内存地址 f=foo() #foo全局变量可以通过返回的inner地址调用inner 3.名称空间与作用域    名称空间:存放名字与值的内存地址绑定关系的地方    x=1    x    内置名称空间    全局…
一.结构体系 1.编译 编译器的结构相对保守. 提供源文件,其文本被标记化并解析为抽象语法树. 这里执行语法级检查. 一旦解析了所有引用的源文件,就构造一个程序并从AST初始化. 在这里进行合理性检查. 然后,程序及其元素充当代码生成中的中间表示,包含解析类型,标识符,属性访问等所需的所有信息. 然后,执行将程序元素编译到Binaryen模块. 在此处执行对单个语句和表达式的最终检查. 默认情况下,编译从入口文件导出开始,然后遍历可访问的程序元素(也称为“树抖动”). 在编译器级别上这样做可以提…
各位看官们,大家好,上一回中咱们说的是显示变量和函数地址的样例,这一回咱们说的样例是:内置宏.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在编译程序的时候,假设有语法错误,编译器就会提示,在某个文件的某一行有错误,这是怎么做到的呢?事实上是使用了C语言的内置宏. 说到宏,我想大家都知道,而所谓的内置宏相似于C语言的关键字,它是C语言自定义的,因此我们不须要定义宏,就能够直接使用.经常使用的内置宏有"_LINE_"和"_FILE_".假设把它们放到…
1.abs函数,求绝对值. a = abs(-3) print(a) 返回:3 2.all函数:判断是否是可迭代对象. 官方解释:Return True if bool(x) is True for all values x in the iterable.  If the iterable is empty, return True. '])) #print(all('2','4','9')) #会报错,因为里面不是可迭代对象 print(all('')) #空字符串也是可迭代对象 print…