链式赋值:同一个对象赋值给多个变量
如x=y=123,即x=123,y=123
系列解包赋值:系列数据赋值对用相同的个数变量(个数必须一致)
>>>a,b,c=4,5,6
相当于:
>>>a=4,b=5,c=6
可以用于实现变量值的互换:
>>>a,b=1,2
>>>a,b=b,a
>>>print(a,b) #2,1
常量: python不支持常量(只能约定约定常量的命名规则,不对它做修改)
最基本内置数据类型:
整形
浮点型
布尔
字符串
运算符:整数除法(//),浮点数除法(/),幂(**);divmod( , )同时得到商和余数
进制转换,转型
0b或0B(二进制)
0o或0O(八进制)
0x或0X(十六进制)
如
>>>ob101
>5
使用int()实现类型转换:
>>>int(6.6)
>6
>>>int(43abc)
>错误
自动转型(6+2.0=8.0)
py3中int类型可以存储任意大小的整数,long被取消。py3中可以做超大数的计算而不会溢出,特别适合科学运算。
浮点数
科学计数表示3.14→314E-2
类型转换float()
整形和浮点型混合计算→浮点型(生成的新的对象,原对象不变)
四舍五入:round(value),不改变原有值,生成的是新对象
时间表示
unix时间 00:00:00(1970.1.1.00:00:00)
(以下均按整数计算)
sec = int(time.time())
min = sec//60
hour = min//60
day = hour//24
year = day//365
定义多点坐标-绘制折线-计算起始点与终点距离
import turtle
#定义多个点的坐标
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)
#计算起始点与终点的距离
import math
dis = math.sqrt(x1-x4)**2 + (y1-y4)**2
turtle.write(dis)
比较运算符、逻辑运算符
略
and , or ,not
同一运算符
is 判断两个标识符是不是引用同一个对象
is not 判断两个标识符是不是引用不同的对象
is 与 == 的区别
is 判断两个变量引用对象是否为同一个,即比较引用对象的地址
==用于判断引用变量引用对象的值是否相等
is 比 == 效率高,在变量和None比较时用is
缓存问题
python仅仅对比较小的整数进行缓存[-5,256],pycharm中[-5,任意数]
字符串
ord()转化为数字
chr()转化为字符
引号创建字符。单引号,双引号,三引号
len() 计算字符长度
转义字符:\(在行位,续行)
’ \ \n \t \r…
字符串拼接:+
复制:*
不换行打印:end="(可以是任意字符)"
从控制台读取字符串:input()
str()实现数字转型字符串
使用[]提取字符
正向搜索:0开始
反向搜索:-1开始
replace()实现字符串替换
a=“abcd”
a.replace(‘c’,‘杨’)
字符串切片slice操作
[起始位置:终止偏移量:步长]
[start,end)
[:]取所有
[start:]start->结束
[:end]
负数表示倒数第几
[::-1]把字符串逆序排
split() 分割和join() 合并
split()把字符串分割成多个字符串,默认按空格、换行、制表符分割→列表
join()将一系列字符串连接起来,通常与列表联合使用,‘’.join()
涉及性能时用join(“+”生成新的对象)
字符串驻留机制与字符串比较
字符串驻留
仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中(仅包含字母、数字、下划线)
>>>a="12fs_"
>>>b="12fs_"
>>>a is b
>True
>>>c = "@123"
>>>d = "@123"
>>>c is d
>False
tips:is比较地址,==比较value
字符串常用方法
常用查找方法
len()
startswitch()以指定字符串开头
endswtich()以指定位置结束
find()第一次出现指定字符串的位置
rfind()最后一次出现指定字符串的位置
count()指定字符串出现的次数
isalnum()全是字母或数字?
去除首尾信息
strip()去除首位指定信息,lstrip()去除字符串左边首尾信息,rstrip()去除字符串右边指定信息
>>>"*s*t*r*".strip('*')
>s*t*r
>>>" str ".strip()
>str
大小写转换
a.capitalize() #产生新的字符串,首字母大写
a.title() #产生新的字符串,每个单词首字母大写
a.upper() #产生新的字符串,所有字符都大写
a.lower() #产生新的字符串,所有字符全小写
a.swapcase() #产生新的字符串,所有大小写转换
格式排版:center()、ljust()、rjust()
>>>a = "SXT"
>>>a.center(10,"*") #居中,共10个字符,用*填充
>***SXT****
其他方法
isalnum() #是否为数字或字母
isalpha() #是否只由字母组成(包括汉字)
isdigit() #是否只由数字组成
isspace() #是否为空白符
isupper() #是否为大写
islower() #是否为小写
字符串格式化
format()
填充与对齐
填充、对齐通常一起使用
^、<、>分别表示居中、左对齐、右对齐,后面带宽度
数字格式化
……