python 临时
目录
三元表达式
'''
三元表达式是一种简化代码的方案
使用场景:二选一的时候 推荐使用三元表达式
'''
def test(x, y):
if x > y:
return x
else:
return y
# 使用三元表达式
test = x if x > y else y
"""
三元表达式
值1 if 条件 else 值2
条件如果成立则使用值1(if前面的数据)
条件如果不成立则使用值2(else后面的数据)
"""
# 针对if分支结构 如果if和else的代码块只有一行代码,那么可以简写为
x = 1
if x == 1:print(x)
else:print('GG')
列表生成式
'''
列表生成式是一种简化代码的方案,用于快速生成列表
'''
name_list = ['jason', 'kevin', 'tony', 'oscar', 'jerry']
# 如果需要在每一个元素的尾部添加上一个_GG
new_list = []
for name in name_list:
res = name + '_GG'
new_list.append(res)
print(new_list)
# 使用三元表达式
res = [name + '_GG' for name in name_list]
print(res)
# 可以使用if语句使列表生成式具备筛选功能
res = [name + '_GG' for name in name_list if name == 'tony']
print(res)
字典生成式
'字典生成式是一种简化代码的方案,用于快速生成字典'
l1 = ['name', 'age', 'pwd']
l2 = ['jason', 18, 123]
# 将l1元素作为key l2元素作为value 生成一个字典
new_dict = {}
for i in range(len(l1)):
new_dict[l1[i]] = l2[i]
print(new_dict)
# 使用字典生成式
new_dict = {l1[i]: l2[i] for i in range(len(l1))}
print(new_dict)
# 使用if语句使生成式具备筛选功能
res = {l1[i]: l2[i] for i in range(len(l1)) if i == 1}
print(res)
集合生成式
res = {i for i in range(10)}
print(res, type(res))
#使用if语句使生成式具备筛选功能
res = {i for i in range(10) if i != 2}
print(res, type(res))
匿名函数
# 定义匿名函数
lambda x:x+2
'''
lambda 形参:返回值
'''
# 普通函数
def index():
return x + 2
'''匿名函数是没有函数名的,所以我们需要结合其他函数来调用'''
# max:统计最大值
info = {
'Aason':9999999,
'Jacob':123,
'zark':1000,
'berk':33
}
def index(k):
return info[k]
print(max(info,key=index))
# lambda与max结合使用
print(max(info, key=lambda key:info[key]))
常见重要内置函数
map()
map(function, iterable, ...)
'''
map() 函数会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
'''
l1 = [11, 22, 33, 44, 55]
需求:元素全部自增10
res = map(lambda x: x + 10, l1)
print(list(res)) # [21, 32, 43, 54, 65]
zip()
zip([iterable, ...])
'''
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。
我们可以使用 list() 转换来输出列表。
'''
a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]
print(list(zip(a,b)))
# [(1, 4), (2, 5), (3, 6)]
print(list(zip(a,c))) # 元素个数与最短的列表一致
# [(1, 4), (2, 5), (3, 6)]
filter()
filter(function, iterable)
'''
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
'''
l1 = [11, 22, 33, 44, 55, 66]
需求:筛选出大于30的元素
res = filter(lambda x:x>30, l1)
print(list(res))
reduce()
'''Python3.x reduce() 已经被移到 functools 模块里,如果我们要使用,需要引入 functools 模块来调用 reduce() 函数:'''
from functools import reduce
reduce(function, iterable, initializer)
'''
reduce() 函数会对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。initializer为初始值
'''
l1 = [11, 22, 33]
需求:讲列表中所有的元素相加
res = reduce(lambda x, y: x + y, l1)
print(res)
res = reduce(lambda x, y: x + y, l1, 100)
print(res)
常见内置函数
1.abs()
'''获取绝对值(不考虑正负号)'''
print(abs(-123))
print(abs(123))
2.all()与any()
l1 = [0, 0, 1, 0, True]
print(all(l1)) # False 数据集中必须所有的元素对应的布尔值为True返回的结果才是True
print(any(l1)) # True 数据集中只要所有的元素对应的布尔值有一个为True 返回的结果就是True
3.bin() oct() hex()
'''产生对应的进制数'''
print(bin(100)) # 0b1100100
print(oct(100)) # 0o144
print(hex(100)) # 0x64
4.bytes()
'''类型转换'''
# 编码
res = bytes(s1, 'utf8')
print(res)
# 解码
res1 = str(res, 'utf8')
print(res1)
5.callable()
'''判断当前对象是否可以加括号调用'''
name = 'jason'
def index():pass
print(callable(name)) # False
print(callable(index)) # True
6.chr()、ord()
'''字符与数字的对应转换'''
print(chr(65)) # A 根据数字转字符 依据ASCII码
print(ord('A')) # 65 根据字符转数字 依据ASCII码
7.dir()
'''返回数据类型可以调用的内置方法(查看对象内部可调用的属性)'''
print(dir(123))
print(dir('jason'))
8.divmod()
divmod(a, b)
'''函数接收两个数字类型(非复数)参数,返回一个包含商和余数的元组(a // b, a % b)。'''
print(divmod(250,25)) # (10, 0) 第一个参数是整数部分 第二个是余数部分
print(divmod(251,25)) # (10, 1)
print(divmod(249,25)) # (9, 24)
9.enumerate()
enumerate(sequence, [start=0])
# start -- 下标起始位置。
'''枚举,enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。'''
name_list = ['jason', 'kevin', 'oscar', 'tony']
for i,j in enumerate(name_list):
print(i,j)
'''
0 jason
1 kevin
2 oscar
3 tony
'''
10.eval() exec()
'''
识别字符串中的python代码 使用频率很低
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
exec() 执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码。
'''
eval('print("有点饿了111")')
exec('print("有点饿了222")')
res = """
for i in range(10):
print(i)
"""
eval(res) #报错
exec(res)
11.help()
'''查看注释信息'''
help(len)
12.id()
'''返回一串相当于内存地址的数字'''
print(id('jason'))
13.int()
'''类型转换、机制转换'''
14.isinstance()
'''判断数据类型'''
print(isinstance('jason', str)) # True
print(isinstance('jason', int)) # False
15.pow()
'''幂指数'''
print(pow(10,2))
16.round()
'''四舍五入'''
print(round(11, 1)) # 第二个参数控制需要保留几位小数部分
17.sum()
'''求和'''
print(sum([11,2,2,3,4,3,2]))