day 14 生成器推导式 +内置函数
一.生成器推导式
循环模式
list = [变量(加工后) for 变量 in 可迭代对象 ]
list = [变量(加工后) for 可迭代变量 in 可迭代对象 for 变量 in 可迭代变量 ]
例子: lis = [i for i in range(100)] # 将1到100之间的数存到 lis 列表里
升级: 筛选模式
list = [变量(加工后) for 变量 in 可迭代对象 条件 ]
list = [变量(加工后) for 可迭代变量 in 可迭代对象 for 变量 in 可迭代变量 条件]
优点:节省代码(内存)
缺点:不可排错
注意:凡是用列表推导式构造的列表对象,用其他方式都可构建.,非常复杂的列表,列表推导式是构建不出的.
二.内置函数
'''
print()
input()
range()
len()
max()
min()
open()
type()
int()
str()
list()
dict()
set()
dir()
tuple()
bool()
id()
iter()
next()
isinstance()
'''
'''
内置函数: 一些常用的功能,python都给你封装好了,供你直接使用.
a = 333
b = 222
#1.1作用域相关
#*** globals() locals()
# locals() 当前位置的所有变量以及函数名等数据.
# globals() 永远是全局的.
# def func1():
# a1 = 2
# b1 = 3
# # print(globals())
# def func2():
# c = 666
# print('*****',locals())
# func2()
# print(locals())
# func1()
# print(locals())
# print(globals())
# 1.2其他相关
# 1.2.1 字符串类型代码的执行 eval,exec,complie
#
# *** eval:执行字符串类型的代码,并返回最终结果。
# print('1 + 3')
# print(eval('1+3'))
# print(eval('3 * 3'))
# dic = eval("{'name': 'alex'}")
# print(dic,type(dic))
# *** exec:执行字符串类型的代码。
code = '''
for i in range(1, 11):
print(i)
'''
# exec(code)
# compile:将字符串类型的代码编译。代码对象能够通过exec语句来执行或者eval()进行求值。
# 1.2.2 输入输出相关 input,print
#
# *** input:函数接受一个标准输入数据,返回为 string 类型。
#
# *** print:打印输出。
# print(1,2,3,sep='|') # 设置每个元素的连接符 sep='|'
# print(666,end='') # end='\n' 默认换行
# print(555)
# f1 = open('log', encoding='utf-8', mode='w')
# print('随便写的内容',file=f1)
# f1.close()
1.2.3内存相关 hash id
# ** hash:获取一个对象(可哈希对象:int,str,Bool,tuple)的哈希值。
# print(hash('name'))
# print(hash(7117817419752622577))
# print(hash('name1'))
# print(hash('name2'))
# print(hash('name3'))
# print(hash(100))
# print(hash(1))
# print(hash(True))
# ** id:用于获取对象的内存地址。
# l1 = [i for i in range(100) if i % 2 == 1]
# print(l1)
# count = 0
# for i in l1:
# if i == 51:
# print(count)
# count += 1
# 1.2.3文件操作相关
# open:函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写。
#
# 1.2.4模块相关__import__
#
# __import__:函数用于动态加载类和函数 。
# 1.2.5帮助
#
# help:函数用于查看函数或模块用途的详细说明。
# print(help(str))
# View Code
# 1.2.6调用相关
# ** callable:函数用于检查一个对象是否是可调用的。如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。

浙公网安备 33010602011771号