python基础
python是一种动态的强类型语言,底层是用C语言开发的.
平台:*nix平台
系统:线程、进程、Shell编程
网络:网络原理、HTTP协议。Socket开发、io多路复用、异步io开发
算法要求:转置矩阵、求质数、常见排序算法等,甚至要求现场写
数据库:关系型数据库至少会MYSQL,NoSQL应该了解,最好会一个
中间件:消息队列原理和应用,例如8曲bitMQ
WEB开发:偏后端,MVC框架要求会Django、Flask、Tornado之一
可视化:WEB的前端开发多一些HTML、jS要会
数据分析和A上要求掌握数据分析的数据理论,机器学习常用库使用
python学习路线:
基础:操作系统、网络基础、数据库基础、python语言基础..
进阶:函数封装思想、面向对象设计、装饰器、描述器、元编程..
高级:网络编程、并发编程、消息中间件、ORM、传统网页开发(HTML、CSS、jQuery、ECharts).
新前端开发(ES6、React、Antd)…
实战:WEB框架(类FlaskWEB框架、Django、Flask等)、数据库建模、博客系统、任务流程系统、爬虫Scrap与数据分析..
高端:数据清洗、企业数据分析、预测准荐、机器视觉.
数据类型
python中的数据类型可以分为5大类:字符串, 数字,容器,布尔,none
字符串
因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295。
由于计算机是美国人发明的,因此,最早只有127个字符被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。
但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。
你可以想得到的是,全世界有上百种语言,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。
因此,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。
Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode。
现在,捋一捋ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码通常是2个字节。
字母A用ASCII编码是十进制的65,二进制的01000001;
字符0用ASCII编码是十进制的48,二进制的00110000,注意字符’0’和整数0是不同的;
汉字中已经超出了ASCII编码的范围,用Unicode编码是十进制的20013,二进制的01001110 00101101。
你可以猜测,如果把ASCII编码的A用Unicode编码,只需要在前面补0就可以,因此,A的Unicode编码是00000000 01000001。
新的问题又出现了:如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。
所以,本着节约的精神,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节.
字符串的格式化
format函数或 格式符
编码
字符串与bytes
字符串是字符组成的有序序列,字符可以使用编码来理解
bytes是字节组成的有序的不可变序列
bytearray是字节组成的有序的可变序列
编码与解码:
字符串按照不同的字符集编码encode返回字节序列bytes
encode(encoding=‘utf-8’,errors=‘strict’)
字节序列按照不同的字符集解码decode返回字符串
bytes.decode(encoding=“utf-8”,errors=“strict”)
ascii 表是单字节表,实际就是内存中数据的映射表,是一套基于拉丁字母的一套单字节编码系统
要熟记31 41 61 的ascii表
字节序:
大端模式,big-endian;小端模式,little-endian
intel x86cpu使用小端 模式
网络传输更多使用大端模式
windows,linux 使用小端模式
mac os使用大端模式
java 虚拟机是大端模式
数字
有整数 浮点数 复数等
true false
主要应用在条件判断上面,发生即为True,未发生即为False。Python严格区分大小写,所以一定要注意不要写错。
None:Python里面特殊的空值,不能理解为0。
容器
list(列表) tuple(元组) set(集合) dictionary(字典)
这些都是可以迭代的
list
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。列表可以修改,可以用于切片、增、删、改、查。
tuple
元组和列表类似,但是不同的是元组不能修改,元组使用小括号。
dict
判断结构
if
if语句用来检验一个条件, 如果条件为真,我们运行一块语句(称为 if-块 ), 否则我们处理另外一块语句(称为 else-块 )。 else 从句是可选的。
elif 语句
elif语句可以检查多个表达式的真值,并执行一个代码块的条件之一计算结果为true。
if…elif 语句是可选的。然而不像else,对此可以有最多一个语句,if语句下边可以有任意数量elif语句。
for
for循环可以遍历任何序列的项目:
while
while循环,只要条件满足,就不断循环,条件不满足时退出循环:
break和continue语句:
break可以用来终止当前的循环语句,即使循环没结束,执行了break语句这个循环就终止了,直接跳出整个循环。
continue语句是用来告诉程序跳出本次循环,然后执行下一轮循环,不同与break,break是跳出整个循环,continue是结束这一次循环,继续下一次循环。