python基础
2025-01-14 18:40:34 1 举报
AI智能生成
python基础
作者其他创作
大纲/内容
开发的种类
编译型
优点:执行效率高(例如搜索引擎)
缺点:排错慢,开发效率低,不能跨平台
典型:C,GO
解释性
优点:排错快,开发效率高,可跨平台
缺点:执行效率低
典型:python,PHP
混合型
java,c#
包
什么是包
一个带__init__.py文件的文件夹
从包中导入模块
使用.来描述文件夹之间的层级关系,.的左侧必须是一个包
import
导入需要直接精确到模块
必须使用import之后的所有内容或者别名来引用模块中的名字
from import
导入需要至少精确到模块
import 之后不能带.
导入包
python的优缺点
优点
优美,清新,简单
高级语言
开发效率高
可移植,可扩展,可嵌入
缺点
速度慢
代码不能加密
线程不能利用多CPU
python的种类
Cpython:基于c语言开发的
lpython
jprthon
pypy:目前执行最快的
编码
ascii码
包含数字,字母和特殊字符
8位1个字节表示1个字符
Unicode
包含所有国家的文字
初期:16位2个字节表示1个字符
升级:32位4个字节表示1个字符(资源严重浪费)
utf-8
英文:8位1个字节表示一个字符
欧洲:16位2个字节表示1个字符
亚洲:24位3个字节表示1个字符
gbk
英文:8位1个字节表示1个字符(使用ASCII码)
中文:16位2个字节表示1个字符
衍生物:gbk2312......
编码之间二进制互不识别
存储和传输:使用二进制编码(非unicode)
代码涉及到发送和储存本地的时候,利用unicode进行转换
python3
str在内存中的编码方式是Unicode
bytes编码方式为非Unicode
syr与bytes方法相同
编码与解码
encode("utf-8")
decode("utf-8")
注意:用什么方式编码,就用什么方式解码
模块
什么是模块
python提供给我们在导入之后能直接使用的工具
模块搜索路径
sys.path
pyc编译文件
在导入模块的时候生成
模块的导入
导入相当于执行了文件中的代码
import
import 模块名
创建一个独立属于模块名的命名空间
使用空间中的名字需要借助模块名
from import
from 模块名 import 名字
from 模块名 import 名字 as 别名
from 模块名 import *
__all__
导入模块的注意事项
写在文件的最开始
顺序
内置模块 扩展模块 自定义模块
不会被多次导入
不可以循环引用
执行脚本与执行模块
__name__
当直接执行一个py文件的时候,__name__就是'__main__'
当一个文件被当做模块导入的时候__name__就是'模块名'
re模块
查找
findall
search
match
finditer
分割和替换
split
sub/subn
编译
compile
节省时间
正则表达式
元字符
量词
量词?到底用在了那些地方
collections模块
namedtuple
defaultdict
OrderedDict
deque
deque
random模块
随机小数
随机整数
随机抽取
打乱顺序
时间模块
计算时间差
获取当前时间本月1号的时间戳时间
os 模块
计算文件夹下所有文件的大小
os.path.getsize(path)
os.path.dirname(path)
os.path.join(path,dirname/filename)
remove/rename
os.popen/os.system
sys模块
sys.path
sys.argv
序列化模块
json
pickle
shelve
hashlib
sha系列
md5
logging
basicConfig
getLogger
configparser
变量与常量
变量
1.必须用数字,字母,下划线组成
2.不能以数字开头
3.不能是关键字
4.不能是中文,不能太长,要具有可描述性
下划线:Age_Of_Boy(推荐使用)驼峰体:AgeOfBoy
常量
一直不变的量
约定俗成,全部大写的为常量:AGE_OF_BOY
语句
if语句
elif多分支判断
while语句:无限循环
break:完全结束一个循环体,执行下面的语句
flag:True or False
continue:跳过本次循环,执行下一次循环
for语句:有限循环
for else 双分支判断
for 变量in 可迭代对象
逻辑运算符
优先级:()>not>and>or
or: x or y ,if x Ture, return x
and:和or 相反
0为False,其他都是True
格式化输出
info="""message"""
%%:格式化输出中单纯显示%
%s:字符串,%d:数字,%r:句子内符号
(%s,%d,%r) % ("abc",123,"><")
format
'我叫{},爱好{},年龄{}'format('alex','girl',30)
'我叫{0},爱好{1},年龄{2},我还叫{0},爱好依然是{1}'format('alex','girl',30)
'我叫{name},爱好{hobby},年龄{age}'format{name='alex',hobby='girl',age=30}
python2与python3的区别
代码
py2:代码混乱,重复代码多,冗余
py3:代码崇尚优美清新简单
input
py2:raw_input()接收的是字符串,input()接收的是数字
py3:input()接收的全部是字符串
print
py2:print是一个语句,接收的是一个元祖对象(若想作为函数使用可导入future中的print_function)
py3:print是一个函数,可接收多个位置参数
编码方式
py3:默认使用utf-8,支持中文
py2:默认使用ascii码,如想使用中文,#_*_coding:utf-8_*_非常不推荐使用
不等运算符
py2可以使用!=或者<>
py3只能使用!=
数据类型
py2存在long类型
py3全部为int类型
创建迭代对象
py2:xrange
py3:range
repr
py2:repr语句
py3:只允许使用repr函数
文件
py2:使用file()或者open()
py3:只能使用open()
新增一些语法
py2:print或esec语句nonlocal......(待补充)等方法
py3:print或esec改为函数,新增nonlocal......(待补充)等方法
修改一些语法
py2:字典的keys,values,iterms以及map,filter,reduce返回的都是一个列表
py3:字典的keys,values,iterms以及map,filter,reduce返回一个可迭代对象
文件操作
文件操作
读
r
rb
bytes类型读写
r+
读写
r+b
写
w
wb
w+
w+b
追加
a
ab
a+
a+b
常用的操作方法
seek
tell()
readable()
是否可读
writable()
是否可写
truncate
文件的修改
正则表达式
元字符
量词
转义符
贪婪匹配
0 条评论
下一页