1.链式赋值:同一个对象赋值给多个变量:x=y=123
系列解包赋值:系列数据赋值给对应相同个数的变量(个数必须一致):a,b,c=4,5,6
常量:Python不支持常量,只能约定命名规则,以及在程序逻辑上不对常量的值做修改:MAX_SPEED=3.
2.最基本的内置数据类型
1)整型(整数)
2)浮点型(小数)
3)布尔型:真假
4)字符串型:字符组成的序列
5)运算符:+、-、*、/(8/2=4.0,浮点数除法)、//(7//2=3,整数除法)、%(7%4=3,模,取余数)、**(2**3=8,幂)
注意:0不能作为除数;divmod()函数同时得到商和余数,divmod(13,3)=(4,1),返回元祖
2.1 整数
*不同进制:10进制,二进制(0b或0B),八进制(0o/0O),16进制(0x/0X)
*int()实现类型转化:直接舍去小数(int(3.99)=3);布尔值int(True)=1,int(False)=0;字符串int(“456”)=456,int("456acv")报错
*自动转型:整数和浮点数混合运算,结果自动转型成浮点数。2+8.0=10.0
*整数多大:python3取消long,int可以存储任意大小的整数。
2.2 浮点数(float,小数)
浮点数用axb^10形式的科学计数法表示,比如3.14 表示成314e-2或者314E-2。这些数字在内存中按照科学计数法存储。
*float():类型转换和四舍五入。float(3)=3.0,生产新的对象,类型是float。float("3.14")=3.14。
*整数和浮点数混合运算,结果是浮点数。
*round(value) 可以返回四舍五入的值,不改变原有值,生成新的值。round(3.14)=3
*增强型赋值运算符:+、-、*、/、//、**和=结合,构成增强型赋值运算符。a=a+1,等价a+=1
注:+=中间不能加空格。**=,a**=2等价a=a**2;//=,a//=2,等价a=a//2等。
2.3 时间的表示
计算机中时间的表示是从“1970年1月1日 00:00:00”开始,以毫秒(1/1000秒)进行计算,也把1970年的这个时刻叫“unix时间点"。时间可以全部用数字表示。
python中可以用time.time()获得当前的时刻,返回的值是以秒为单位,带微秒(1/1000毫秒)精度的浮点事,例如:1.1114
2.4 多点坐标,绘制折线图
import turtle
import math
#定义多个点的坐标
x1,y1=100,100
x2,y2=100,-100
x3,y3=-100,-100
x4,y4=-100,100
#绘制折线
turtle.penup()
turtle.goto(x1,y1)
turtle.pendown()
turtle.goto(x2,y2)
turtle.goto(x3,y3)
turtle.goto(x4,y4)
distance=math.sqrt((x1-x4)**2+(y1-y4)**2)
turtle.write(distance)
2.5 布尔值
python2中没有布尔值,1表示TRUE,0表示False。
Python3中,把True和False定义成关键字,本质还是0和1,可以和数字相加。
2.5.1 比较运算符
所有比较运算符返回1表示真,返回0表示假。分别和True和False等价。
==,!=,>,<,>=,<=。
2.5.2 逻辑运算符
or或,x or y:x为true返回true,x为false,返回y;
and与,xandy:x为true返回y,x为false,返回false;
not,not x:x 为true返回false,x为false,返回true。
2.5.3 同一运算符
is:判断地址/id,两个标识符是不是或引用同一个对象(id地址/type/value)。
is not:判断两个标识符是不是引用不同对象。
注意: is 与==区别:
is比较地址是不是同一个;==比较对象的value值是不是相等,默认调用对象的_equal_()方法。
2.5.4 整数缓存
python仅对较小的整数进行缓存【-5,256】,并且这仅仅是在命令中执行。而在Pycharm或者保存为文件后执行也会缓存,结果不一样,这是因为解释器做了优化,缓存范围是【-5,任意整数】。
is运算比==效率高,在变量和None进行比较时,应该使用is。
2.6 字符串
本质:字符序列。python中字符串是不可变的。不支持单字符类型,单字符也是字符串。
2.6.1 字符串编码
python3使用Unicode,可表示世界上所有书面语言的字符。Python3的字符默认就是16位Unicode编码(2^16个字符),ASCII码(英文够,汉字不够)是Unicode编码的子集。
内置函数ord()可以把字符转换成对应的Unicode码;内置函数chr()可以把十进制数字转换成对应的字符。
2.6.2 引号创建字符串
可以通过单引号或双引号创建字符串。
连续三个单引号或三个双引号,可以创建多行字符串。
2.6.3 空字符串和len()函数
python允许空字符串的存在,不包含任何字符串且长度为0’。
2.6.4 转义字符
用“\+特殊字符”,实现某些难以用字符表示的效果。
\(在行尾):续行符;\\: 反斜杠符号;\':单引号;\":双引号;\b 退格;\n 换行;\t 横向制表符;\r回车
2.6.5 字符串拼接
*+:两边字符串,拼接;两边数字,加法:两边不同类型,抛出异常。
*将多个字符串直接放到一起拼接,中间是空格。‘aa’ ‘bb’ ==》‘aabb’
2.6.6 字符串复制
a='five'*3 ==》'fivefivefive'
2.6.7 不换行打印
print会自动打印一个换行符。end= “任意字符串”,实现末尾添加任何内容。
2.6.8 从控制台读取字符串
可以使用input()从控制台读取字符串。
2.6.9 str()实现数字转型字符串:print自动调用str()
使用[]提取字符:字符串的本质就是字符序列,可以通过在字符串后面添加[],在[]里面指定偏移量,可以提取该位置的单个字符。正想搜索=》最左侧第一个字符偏移量(索引)是0,直到len(str)-1为止。反向搜索=》最右侧第一个字符偏移量是-1,倒数第二个偏移量是-2,直到-len(str)为止。
replace():实现字符串的替换。a.replace('c',‘人’),返回新字符串。
2.6.10 字符串切片slice
截取字符串【起始偏移量start:终止偏移量end:步长step】(包头不包尾)
2.6.11 split()分割 join()合并
split():分隔成多个字符串,存储到列表中。
join():将一系列的字符串连接起来。通常和列表结合使用。"*".join(a)。
2.6.12 字符串驻留机制和字符串比较
python支持字符串驻留机制,对复合标识符规则的字符串(仅包含下划线_ 字母和数字)会使用这个机制。
2.6.13 字符串常用方法
*常用的查找方法:len() a.startswith() a.endswith() a.find(); a.rfind()(找最后一个出现的字符串位置);a.count() a.isalnum()(是否全部字母或者数字)
*去除首位信息:strip(),什么都不加:去除首尾空格;lstrip() rstrip()
*大小写转化 a.capitalize() 首字符大写等
*格式排版:center() ljust() rjust()
*其他方法
2.6.14 字符串的格式化
*str.format():可以接受不限个参数,位置可以不按顺序。可以通过{索引}{参数名}映射参数值,实现对字符串的格式化。
基本语法:通过{}和:代替以前的%
*填充和对齐^ < > 居中 左对齐 右对齐
*数字格式化:浮点数(小数)f,整数d 等