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,不使用+,因为+会生成新字符串,效率低