Python基础刻意训练——DAY4
学习内容
主要内容:字符串与序列
1)字符串:
- 基本操作:
常用的函数&&方法:
函数形式 | 作用 |
---|---|
capitalize() | 将第一个字符改为大写 |
casefold() | 字符串中的所有字符改为小写 |
center(width) | 字符串居中,用空格填至width的长度 |
count(sub[, start[, end]]) | 返回sub在字符串中出现的次数 (可以修改起始位置与中止位置) |
encode(encoding=‘utf-8’, errors=‘strict’) | 用encoding指定的编码格式对字符串编码 |
endswith(sub[, start[, end]]) | 检查字符串是否以 sub 子字符串结束,如果是返回 True,否则返回 False。start 和 end 参数表示范围,可选。 |
expandtabs([tabsize=8]) | 把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8。 |
find(sub[, start[, end]]) | 检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选。 |
index(sub[, start[, end]]) | 跟 find 方法一样,不过如果 sub 不在 string 中会产生一个异常。 |
isalnum() | 如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。 |
isalpha() | 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。 |
isdecimal() | 如果字符串只包含十进制数字则返回 True,否则返回 False。 |
isdigit() | 如果字符串只包含数字则返回 True,否则返回 False。 |
islower() | 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回 True,否则返回 False。 |
isnumeric() | 如果字符串中只包含数字字符,则返回 True,否则返回 False。 |
isspace() | 如果字符串中只包含空格,则返回 True,否则返回 False。 |
istitle() | 如果字符串是标题化(所有的单词都是以大写开始,其余字母均小写),则返回 True,否则返回 False。 |
isupper() | 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回 True,否则返回 False。以字符串作为分隔符,插入到 sub 中所有的字符之间。 |
join(sub) | 以字符串作为分隔符,插入到 sub 中所有的字符之间。 |
ljust(width) | 返回一个左对齐的字符串,并使用空格填充至长度为 width 的新字符串。 |
lower() | 转换字符串中所有大写字符为小写。 |
lstrip() | 去掉字符串左边的所有空格 |
translate(table) | 根据 table 的规则(可以由 str.maketrans(‘a’, ‘b’) 定制)转换字符串中的字符。 |
zfill(width) | 返回长度为 width 的字符串,原字符串右对齐,前边用 0 填充。 |
非常推崇的小甲鱼的链接:https://fishc.com.cn/thread-38992-1-1.html
相关代码操作理解:
'shjshj'.translate(str.maketrans('s','b')) ##使用'b'对's'进行替换——注意:此处采用了str.maketrans()的方法
'shsjjjhs'.find('s') ##寻找第一个's'字符出现的位置
'5s4d5'.isalnum() ##判断字符中是否只有数字与字母
'0x126'.isdecimal () ##判断字符串中是否为十进制的字符串
'shsjahj'.islower() ##判断字符串中是否都为小写
'JKJKJ'.isupper() ##判断字符串中是否都为大写
' sgj'.lstrip() ##去除左边所有的空格
'HJ'.lower() ##将字符串中的字母全部小写化
'shsjha16'.isnumeric() ##判断字符串是否只是数字字符
' hj'.isspace() ##判断字符串中是否为空格
'Yhshj Tsj '.istitle() ##判断字符串是否为标题格式
'shsk sk'.partition(' ') ##将字符串分割为三个部分,指定字符,指定之前,指定之后
'shidhkdkkhsk'.count('k') ##计数‘k’在字符串中出现的次数
注意:
这些字符串的方法只需要大致的熟悉,具体进行操作时,我们往往采用 TAb键补全代码,这样更加方便我们使用。
- 拼接与切片操作
字符串的拼接与切片操作与元组,列表雷同——左闭右开
- 字符串的格式化操作
Python的字符串格式化(format)操作,采用的替代字段(replacement) 的方式。 主要有 两种字符传递的方式——
- 位置参数传递字符——顺序传递(类似于C语言的占位符)
- 关键字参数——具体给关键字赋值(类似于C#中的赋值操作)
当然,也可以将二者结合起来使用,即综合位置参数与关键字参数——但是,注意:位置参数必须位于关键字参数之前。
基本格式:
‘{0} {1}’.format(15,12) ##顺序传递
‘{a} {b} {c}’.format(b=1,a=9,c=8) ##关键字传递
注意:要打印花括号需要给花括号两边再加上花括号——起到保护内部花括号被解释的作用。
相关示例:
'{0:.1f}{1}'.format(25.546,'GB') ## m.n——m为显示的最小长度,n为小数点后的位数
'{{0}}'.format('不打印') ##内部的{}未被解释,被外面一层花括号保护起来了
'{0} love {a}{b} '.format('I',b='GO',a='LS') ##位置参数必须位于关键字参数之前
另外,字符串享有的自身独特操作——%
基本格式:
'%特定符号 %特定符号 ’ % 元组或者字典 ##类似于C语言print的使用,只是多了更多的转换方式
注意:Python目前支持两种数据的输入——元组和字典
相关示例:
'%c %c %c' % (97,98,99) ##对应转换成了ASCII码为97 98 99的字符
'%d + %d = %d' % (4,5,4+5) ##对应寻找自己的位置
相关的特殊符号(%c %x)参考链接:https://fishc.com.cn/forum.php?mod=viewthread&tid=92997&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403
2)序列:
元素,列表,元组都可统称为序列,在此,可以做一个小小的总结:
相同点:
- 都可索引得到每一个元素
- 默认索引值从0开始
- 可以通过分片的方法得到一个范围内的元素的集合
- 很多共同的操作符
序列中常见的BIF:
BIF形式 | 含义 |
---|---|
list() | 把可迭代对象转为列表——每一次迭代放入列表中 |
tuple([iterable]) | 把可迭代对象转为元组 |
str() | 把obj对象转化为字符串 |
len(sub) | 返回序列长度 |
max() | 返回序列中最大值 |
min() | 返回序列中最小值 |
sum(iterable[,start=0]) | 返回序列iterable与可选参数start的总和 |
sorted() | 排序(类似于list.sort()) |
reversed() | 返回逆序生成的迭代器 |
enumerate() | 枚举,形成带有序号的序列,各元素为带有序号的元组 |
zip() | 成双成对的打包存在 |
注意:iterable为迭代器的意思——重复反馈过程的活动,从而达到目标——不仅仅为for循环
相关示例:
list(enumerate('aasdahf')) ##返回列表实例化后的枚举形成的带有序号的元组的列表
list(reversed('sdfssf')) ##返回列表实例化后的逆序生成的列表
sorted([45,49,7,59,33,1]) ##将数组进行排序处理——从小到大