一、类型转换
说明:类型转化的时候,会返回转化后的结果,但不会改变原变量的类型
1、int
print("转为int类型1:", int('1'))
print("转为int类型2:", int(1.54)) # 转换时,float后面的小数会自动去掉
print("转为int类型3:", int('1s')) # 有非数字时,会报错
print("转为int类型4:", int('1.5')) # 在我们看来是数字的1.5,类型为字符串时,不能转化为int,会报错,因为.是一个非数字字符
执行结果:
2、str
a = 1
a1 = str(a)
b = 78.9
b1 = str(b)
l = [1, 2, 3]
l1 = str(l)
print('未转化类型前,a的类型:', type(a))
print("int转为str类型:", a1)
print('转化类型后,a的类型:', type(a1))
print("float转为str类型:", b1)
print('转化类型后,b1的类型:', type(b1))
print("list转为str类型:", str(l))
print('转化类型后,l1的类型:', type(l1))
执行结果:
3、list、set、dict、tuple
lis1 = [[1, 2], [3, 4]]
print('list转dict:', dict(lis1))
dic1 = {'a': 1, 'b': 2}
print('dict转list:', list(dic1))
lis2 = [1, 1, 2, 3, 4, 2, 3]
print('list转元组:', tuple(lis2))
print('list转集合:', set(lis2))
执行结果:
二、进制转换
print('bin:', bin(3)) # 十进制转二进制
print('hex', hex(10)) # 十进制转化为16进制
print('oct', oct(10)) # 十进制转为为8进制
print('chr:', chr(33)) # 打印数字对应的ascii的字符
print('ord:', ord('A')) # 打印字符对应的ascii码
执行结果:
三、数学运算
print('max:', max([543, 3245, 2, 45, 0])) # 取最大值
print('min:', min([543, 3245, 2, 45, 0])) # 取最小值
print('sum:', sum([543, 3245, 2, 45, 0])) # 求和
print('divmod:', divmod(10, 3)) # 返回商和余数
print('round:', round(345.346, 2)) # 四舍五入保留小数位数
执行结果:
五、变量与方法
# 打印可调用的方法,一般不知道这个对象有什么方法时,可使用
f = open('s.txt', 'w')
print('dir:', dir(f)) # 打印传入对应的可调用方法
# 查看局部变量和全局变量
def func():
name = 'abc'
age = 18
print('locals:', locals()) # 返回函数里面的局部变量
func()
print('globals:', globals()) # 返回程序里的所有全局变量,返回的是一个字典
六、比较重要的内置函数
# 匿名函数也是一个函数,是一个简单的函数,没有名字,只能实现一些简单的功能
# sorted函数
l3 = [34, 12, 5, 22, 5, 334, 23]
print('sorted:', sorted(l3))
l4 = [['xiaohei', 4], ['xiaobai', 6], ['xiaolan', 5]]
l5 = [[1, 2, ['xiaohei', 4]], [23, 4, ['xiaobai', 6]], [4, 4, ['xiaolan', 5]]]
print('sorted排二维list:', sorted(l4, reverse=True, key=lambda x: x[1])) # key只需要传一个函数名,根据第二个元素进行排序
print('sorted排三维list:', sorted(l5, reverse=True, key=lambda x: x[-1][-1])) # key只需要传一个函数名,根据三维list中的最后一个元素进行排序
# filter和map函数
def filter_test(x):
return x > 5
print('filter:', list(filter(lambda x:x>5,l3))) # 把后面的迭代对象循环执行函数
print('filter传函数名:', list(filter(filter_test, l3))) # 把后面的迭代对象循环执行函数
print('map:', list(map(lambda x: str(x).strip().zfill(3), l3))) # 把后面的迭代对象循环执行函数
print('列表生成式:', [str(i).strip().zfill(3) for i in l3])
# enumerate函数,返回迭代对向的下标和值
print('enumerate枚举函数:', [print(index, i) for index, i in enumerate(l3)])
print('enumerate枚举函数,指定下标:', [print(index, i) for index, i in enumerate(l3, 1)]) # 下标从1开始,不传的时候,下标从0开始
# 执行python代码
exec() #让程序自动运行代码
eval() # 执行python代码,只能执行简单代码