catalogue
0. 零零碎碎
0.0 推荐个网站
0.1 条件表达式(三元操作符)
举个栗子:
x,y = 4,5
if x<y:
small = x
else:
small = y
#改进
small = x if x<y else y
0.2 断言(assert)
后面程序为假时,程序自动AssertionError
确保程序中的某个条件一定为真才能正常工作
1.列表
1.1 增删改查:
增:
函数 | 用法 | 备注 |
---|---|---|
append | 最后加 | 只加一个元素 |
insert | 位置+元素 | 只加一个元素 |
extend | 列表 |
删:
函数 | 用法 |
---|---|
remove | only元素名字 |
del | del 列表名字 [ 索引值 ] |
pop | pop(索引值) |
切片:list [ a:b ]
1.2 操作符(dir(list))
- list可直接数学运算
eg:list*3 - 元素 in/not in 列表名
- 嵌套列表用法很像二维数组
- index 索引
- reverse 反转
- sort 快排 (小 — 大)
list.sort(reverse =True)(大 — 小) - list1 = list2:指向同一个数组
list1 = list2[:]:拷贝得到新数组
1.3 列表小帮手range
for i in range(1,5):
print(i)
#1 2 3 4
for i in range(1,5,2):
print(i)
#1 3
2. 元组()
元组:被 ( ) 包围,用“,”隔开的一组数据
temp = (1,2,3,4,5)
增:temp = temp[:2] + (6,) + temp[2:]
删:del temp
PS:增就相当于切片,注意括号以及逗号
3. 字符串
查:str( 索引值 )
增:str[:6] + ‘待添加字符串’ + str[6:] :其实就是个拼接
3.1 常用函数 dir(str)
函数 | 用法 |
---|---|
capitalize() | 首字母大写 |
casefold() | 全部字母小写 |
center(width) | 字符串居中,用空格填充至长度为width |
count(sub[,start[,end]]) | 返回sub在字符中种出现次数,start、end表示参数范围,可选 |
encode(encoding = ‘utf-8’,errors = ‘strict’) | 以encoding指定的编码格式对字符串进行编码 |
endswith(sub[,start[,end]]) | 检查字符串是否以sub子字符串结束,是:True;否:False,start、end表示参数范围,可选 |
expandtabs([tabsize = 8]) | 把字符串中的tab(\t)转换为空格,如不指定,默认为8 |
find(sub[,start[,end]]) | 检测sub是否包含在字符串中,是:return 索引值;否:return -1,start、end表示参数范围,可选 |
index(sub[,strat[,end]]) | 跟find一样,但是如果sub不在str里会异常 |
isalnum() | 字符串至少有一个字符且所有字符都是数字或字母 |
isalpha() | 字符串至少有一个字符且所有字符都是字母 |
isdecimal() | 字符串只包含十进制数字 |
isdigit() | 字符串只包含数字 |
islower() | 字符都是小写 |
isnumeric() | 只包含数字 |
isspace() | 字符串只包含空格 |
istitle() | 字符串标题化(首字母大写) |
isupper() | 全部为大写字符 |
join(sub) | 以字符串为分隔符,插入到sub中所有字符之间 |
ljust(width) | 返回一个左对齐的字符串,空格填充 |
lower() | 大写转为小写 |
lstrip() | 去掉左边所有空格 |
partition(sub) | 找到sub,把字符串分为三元组(pre_sub, sub, fol_sub),若字符串不包含sub,则返回(‘原字符串’,’ ‘,’ ') |
replace(old,new[,count]) | 把字符串中old子串替换为new子串,若count指定,则替换不超过count次 |
rfind(sub([,start[,end]]) | 类似find,从右边开始查找 |
rindex(sub[,start[,end]]) | 类似index,右边开始 |
rjust(width) | 右对齐,空格补位 |
rpartition(sub) | 类似partition,右边开始查找 |
rstrip() | 删除字符串末尾空格 |
split(sep = None, maxsplit = -1) | 默认以空格为分隔符切片字符串,maxsplit值表示分割次数 |
splitlines([keepends]) | 按照\n分离,返回一个包含各行作为元素的列表,返回前keepends行 |
startswith(prefix[,start[,end]]) | 检查字符串是否以prefix开头 |
strip([chars]) | 删除字符串前后空格,chars可指定删除的字符 |
swapcase() | 大小写反转 |
title() | 开头大写,其他小写 |
translate(table) | 根据table的规则(由str.maketrans(‘a’,‘b’)定义)进行字符转换 |
upper() | 小写全部转为大写 |
zfill(width) | 字符串右对齐,前面补0 |
以上函数不用特意记,用的时候查即可,只需要知道有这些个功能
PS:几个栗子
- split:
str2='zx#cvbn#fbn#dfbnm'
print(str2.split('#',2))
#['zx', 'cvbn', 'fbn#dfbnm']
- splitlines:
'ab c\n\nde fg\rkl\r\n'.splitlines()
#['ab c', '', 'de fg', 'kl']
'ab c\n\nde fg\rkl\r\n'.splitlines(True)
#['ab c\n', '\n', 'de fg\r', 'kl\r\n']`
intab = "aeiou"
outtab = "12345"
trantab = str.maketrans(intab, outtab) # 制作翻译表
str = "this is string example....wow!!!"
print (str.translate(trantab))
#th3s 3s str3ng 2x1mpl2....w4w!!!
3.2 字符串格式化符号含义
符号 | 说明 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化定点数,可指定小数点后精度 |
%e | 科学记数法格式化定点数 |
%E | 同 %e |
%g | 根据值的大小决定用 %f / %e |
%G | 同 %g |
补一个强大的 format