# 数据结构
- bool() : 布尔型(True,False)
- int (): 整型(整数)
float() : 浮点型(小数
- list() 将一个可迭代对象转换成列表
- tuple() 将一个可迭代对象转换成元组
- str() 将数据转化成字符串
dict(): 创建一个字典
set(): 创建一个集合
- complex : 复数
# 进制转换
- bin() 将给的参数转换成二进制
- oct() 将给的参数转换成八进制
- hex() 将给的参数转换成十六进制
print(bin(10)) # 二进制:0b1010 print(hex(10)) # 十六进制:0xa print(oct(10)) # 八进制:0o12
# 数学运算
- abs() 返回绝对值
- divmode() 返回商和余数
- pow(a, b) 求a的b次幂
- sum() 求和
- min() 求最小值
- max() 求最大值
- round() 四舍五入
print(abs(-2)) # 绝对值:2 print(divmod(20,3)) # 求商和余数:(6,2) print(pow(10,2)) # 10**2 print(sum([1,2,3,4,5,6,7,8,9,10])) # 求和:55 print(min(5,3,9,12,7,2)) #求最小值:2 print(max(7,3,15,9,4,13)) #求最大值:15 print(round(4.50)) # 五舍六入:4 print(round(4.51)) #5 """a = 3.1415926 print('%.3f'%a) 保留三位小数 print('%.2f'%a) 保留两位小数"""
# 相关内置函数
- reversed() 将一个序列翻转, 返回翻转序列的迭代器
lst = "你好啊" it = reversed(lst) # 不会改变原列表. 返回一个迭代器, 设计上的一个规则 print(list(it)) #['啊', '好', '你']
- slice() 列表的切片
lst = [1, 2, 3, 4, 5, 6, 7] print(lst[1:3:1]) #[2,3] s = slice(1, 3, 1) # 切片用的 print(lst[s]) #[2,3]
- len() 返回一个对象中的元素的个数
- enumerate() 获取集合的枚举对象
lst = ['one','two','three','four'] d = {i:j for i,j in enumerate(lst) print(d) # {0:'one',1:'two',2:'three',3:'three',4:'four'}
- all() 可迭代对象中全部是True, 结果才是True
- any() 可迭代对象中有一个是True, 结果就是True
print(all([1,2,3,True,False)) #False print(any([1,2,3,True,False])) #True
- zip() 拉链, 将对象中对应的元素打包成一个元组, 然后返回由这些元组组成的列表. 如果各个迭代器的元素个数不一致, 则返回列表长度与最短的对象相同
l = [1,2,3,4,5] i = ['a','b','c','d','f'] res = zip(l,i) print(list(res)) # [(1,'a'),(2,'b'),(3,'c'),(4,'d')]
fiter() 过滤 ,用来筛选的函数,#列表以右保留
l = [11,22,33,44,55,66] res = filter(lambda x:x>30 ,l) print(list(res)) # [33,44,55,66]
map() 会根据提供的函数对指定序列做映射
l = [1,2,3,4,5,6,7] res = map(lambda x:x**2 ,l) print(res) # [1,4,9,16,25,36,49]
format() 格式化
- bytes() 把字符串转化成bytes类型
bs = bytes("今天吃饭了吗", encoding="utf-8") print(bs) #b'\xe4\xbb\x8a\xe5\xa4\xa9\xe5\x90\x83\xe9\xa5\xad\xe4\xba\x86\xe5\x90\x97'
- ord() 输入字符找带字符编码的位置
- chr() 输入位置数字找出对应的字符
- ascii() 是ascii码中的返回该值 不是就返回
# 和作用域相关
- locals() 查看当前作用域中的名字
- globals() 查看全局作用域中的名字,返回的形式是字典
# 和迭代器生成器相关
- range() 生成数据
- next() 迭代器向下执行一次, 内部实际使用了__ next__()方法返回迭代器的下一个项目
- iter() 获取迭代器, 内部实际使用的是__ iter__()方法来获取迭代器
# 字符串类型代码的执行
- eval() 执行字符串类型的代码. 并返回最终结果
- exec() 执行字符串类型的代码,能执行复杂的代码
# 输入输出
- print() : 打印输出
- input() : 获取用户输出的内容
# 文件操作相关
- open() : 用于打开一个文件, 创建一个文件句柄
# 帮助
- help() : 函数用于查看函数或模块用途的详细说明
# 调用相关
- callable() : 用于检查一个对象是否是可调用的. 如果返回True,
# 查看内置属性
- dir() : 查看对象的内置属性, 访问的是对象中的__dir__()方法
print(dir(tuple)) #查看元组的方法
模块是Python中非常核心的一块内容,用的非常多,它比较简单
python这门语言:调包侠
定义:模块就是一些列功能的集合,模块中就是提前写好了很多的功能,直接拿来使用
为什么用:站在巨人的肩膀上,别人写好的功能我们下载下来直接用,大大提高开发效率
支付宝支付、微信支付、发短信、验证码、等等很多的服务
# 别人已经开发好了,给它下载下来,直接挪到我们自己的python文件中使用就行了
模块的分类:1. 内置模块(python解释器原来就存在的) eg:time
2. 第三方的(别人写好的模块,人家放在了网上,去网上下载)
3. 自定义的(我们自己写的模块)模块存在的形式:一共有4钟形式,只需要掌握2钟
1. 我们自己写的python代码(.py文件)
# 一个py文件就是一个模块
2. 包的形式:就是一系列py文件的组合(文件夹)
# 文件夹内部有一个__init__.py文件"""
以后我们再开发一些复杂的功能的时候,就可以想想或者查查有没有别人已经写好了,直接下载下来使用
"""# 当你遇到一个你不会的技术栈的时候,一般情况都有人开发好了
github:https://github.com/
gitee:https://gitee.com/
import md # 导入模块的时候,只写模块名字,不要写后缀名字
"""
学习模块的时候一定要弄清楚:谁是执行文件,谁是导入文件
运行当前文件,会导入md文件到此文件中,并且会执行导入文件
导入文件多次,那么,也只会执行一次导入文件中得代码,只需要导入一次即可
"""
import md print(md.money) # 直接使用模块名字点变量名 直接使用
导入文件时:1. 首先会运行执行文件,产生执行文件的全局名称空间
2. 运行导入文件
3. 会产生导入文件的全局名称空间,把导入文件中的名字都丢到全局名称空间中
4. 会在执行文件中产生一个名字md指向导入文件的名称空间import md money = 999 print(md.money) # 1000 知名道姓的调用,不会乱
def read1(): print('read1') md.read1() # 还是指md中的read1函数
money=888 md.change() print(money)
from md import money # 只能执行money
1、 from...import...句式导入模块也会执行导入文件,多次导入也只会执行一次
from md import money print(money) # 1000
2、如果使用from...import...句式的情况,在执行文件中会出现名字冲突的情况(在执行文件中出现了和导入的名字一样的时候),出现冲突的时候离谁近用谁的
from md import money money = 999 print(money) # 999 """就近原则"""
1、 起别名
from md import money as m from md import read1 as r1 from md import read2 as r2 import md def read1(): print('from read1') read1() # 执行自己的read1 r1() # 执行导入文件中的read1,起别名
2、连续导入
import md import time import os import sys import md,time,os,sys
3、通用导入 *
from md import * read1() change() __all__ = ['money', 'read1', 'change'] # 限制导入
# 在你编码的过程中,循环导入是不能允许出现的
如果你的代码出现了循环导入问题,那就是你的代码设计不合理,及时更正
判断文件类型:执行文件/导入文件
if __name__ == '__main__': # md read2() if __name__ == '__main__':
'''在这个判断里面写的代码,只有是以执行文件运行的时候,才会被执行,当被当成导入文件的时候,不会被运行'''