python赋值?
链式赋值:
x=y=123
等价于
x=123
y=123
解包赋值:
A,B,C=4,5,6
相当于
A=4
B=5
C=6
python数据类型?
整形、浮点型、布尔型、字符串型
整数:python3整数可以任意大小,可表示为二进制(0b)、八进制(0o)、十六进制(0x)
浮点数:浮点数在内存中以科学计数法形式存储。
浮点函数:round(value):四舍五入;math.ceil(value):向上取整
类型转换:int() float()
数学运算符号?
+ 加法 - 减法 *乘法 /浮点除法 //整数除法(舍去小数) %取余 **幂
divmod(num1, num2) 同时得到商和余数,返回的是元组
例如
divmod(13, 3)返回4,1
位操作:^ & | >> <<
运算顺序:乘除优先加减 位运算和算术运算>比较运算符>复制运算符
比较运算符有哪些?
== != > < >= <=
注:==比较的是两个常量对象的值,不是地址
运算符可以连用,例如 1
逻辑运算符有哪些?
or and not
注:or和and存在短路机制
同一运算符有哪些?
is 和 is not
注:同一运算符比较两个对象的存储地址,是否是同一对象
注2: Python对[-5,256](保存为文件执行时,范围为[-5,正整数])之间的整数会进行缓存,即只存储一个副本,因此,此范围内的数值比较时,is和==会返回同样结果
例1:
a = 5
b = 5
a is b #True
a == b #True
例2
a = -100
b = -100
a is b #False
a == b #True
python字符串?
Python3直接支持Uniocde,可以表示任何书面语言
内置函数ord()可以把字符转成unicode编码
内置函数chr()把数字转换成相应字符
Python中字符串属于不可变字符串,如果需要可变字符串可以使用StringIO
import io
s = io.StringIO()
s.write('aaabbbb')
s.getvalue()
字符串创建方式?
创建单行字符串使用a = 'aaa'或a = "aaa"
创建多行字符串,使用
a = ''' aaa
aaaa
'''
对于难以直接写的字符(转义字符),如换行符等,可以用\+特殊字符实现
字符串常用操作?
拼接:字符串可以使用+和*运算符
不换行打印 Print('sss', end='')
从控制台读入字符串: Name = input(‘请输入:’)
数字转字符串:str1(num)
提取字符串i位置:str1[i]
字符串切片:
[:]提取整个字符串
[start:] 从start索引开始到最后
[:end] 从头开始到end-1结束
[start:end] 从start到end-1
[start:end:step] 从start到end-1按照step步长提取
字符串分割:
a.split()按照空格分割
a.split(‘be’)按照’be’分割
字符串合并:
a=[‘aaa’, ‘bbb’, ‘ccc’]
'*’.join(a) #和split()作用相反
字符串驻留机制?
字符串驻留:对于相同且不可变的字符串方法仅保存一份在驻留池中
Python对于符合标识符规则的字符串(仅包含字母、下划线和数字)会启用字符串驻留机制、
例子
A=‘12aa_’
B=‘12aa_’
A is B #True
C=‘12##’
D=‘12##’
C is D #False
判断某个子字符串是否存在字符串中?
In和not in
字符串常用方法有哪些?
len(str1) #返回字符串长度
以指定字符串开头str1.startwith('aa') 返回true or false
以指定字符串开头str1.endwith('aa') 返回true or false
str1.find('asa')返回第一次出现的位置
str1.rfind('asa')返回最后一次出现的位置
str1.count('a')统计字符串出现次数
#去除首位字符
str1.strip(‘*’)#去除首尾部
str1.lstrip(‘*’)#去除首
str1.rstrip(‘*’)#去除尾部信息
#格式排版
str1.center(10,’0’) 左右填充0到10个字符
str1.ljust(10,’0’) 左填充0到10个字符
str1.rjust(10,’0’) 右填充0到10个字符
#其他方法
str1.isalnum() 是否是字母或数字
str1.isalpha() 检测复查是否只有字母组成
str1.isdigital() 检测字符是否只有数字组成
str1.isspace() 是否全部空格
str1.isupper() 是否为大写
str1.islower() 是否全小写
字符串格式化问题?
采用format()格式化字符串
str1='my age is {0}'
str1.format(18)
str1='my age is {age}'
str1.format(age = 18) #Out[72]: 'my age is 18'
字符串填充与对齐
^居中 右对齐 后面带宽度 :后面带的是填充数字
'{:0>10}'.format('19') #19右对齐,左边补0
Out[52]: '0000000019'
字符串数字格式化:浮点数为f,整数为d
{:.2f}保留两位小数
{:+.2f}带符号保留两位小数
{:0>10d}宽度为10,右对齐,左边补0
{:,}逗号格式
{:.2e}指数格式
{:.2%}百分百格式
编程建议:
字符串比较时,is比==效率高,变量与None比较时,优先使用is
字符串拼接时,尽量使用join,不使用+,因为+会生成新字符串,效率低