字符串(I)
课堂笔记
46种字符串操作方法。
一、大小写字母转换
二、左中右对齐
x = "12321"
"是回文数" if x == x[::-1] else "不是回文数"
'是回文数'
x = "12345"
"是回文数" if x == x[::-1] else "不是回文数"
'不是回文数'
x = "I love FishC"
x.capitlize()
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
x.capitlize()
AttributeError: 'str' object has no attribute 'capitlize'. Did you mean: 'capitalize'?
x.capitalize()
'I love fishc'
x.casefold()
'i love fishc'
x.title()
'I Love Fishc'
x.swapcase()
'i LOVE fISHc'
x.upper()
'I LOVE FISHC'
x.lower()
'i love fishc'
x = "有内鬼,停止交易"
x.center(5)
'有内鬼,停止交易'
x.center(15)
' 有内鬼,停止交易 '
x.ljust(15)
'有内鬼,停止交易 '
x.rjust(15)
' 有内鬼,停止交易'
x.zfill(15)
'0000000有内鬼,停止交易'
"520".zfill(5)
'00520'
"-520".zfill(5)
'-0520'
x.center(15,"烫")
'烫烫烫烫有内鬼,停止交易烫烫烫'
x.ljust(15,"烫")
'有内鬼,停止交易烫烫烫烫烫烫烫'
x.rjust(15,"烫")
'烫烫烫烫烫烫烫有内鬼,停止交易'
课后作业
0. casefold()
和 lower()
两个方法都是将所有的字母变成小写,那它们有什么区别呢?
根据官方文档的提示,lower()
只能处理英文字母,而 casefold()
除了英语外,还可以处理更多其他语言的字符,比如德语……
1. 请问下面代码执行的结果是?
>>> "-520".zfill(10)
'-000000520'
zfill 的意思就是 zero fill,用 “0” 填充哈。
2. 请问 "-520".zfill(10)
和 "-520".rjust(10, "0")
的执行结果一样吗?
不一样。zfill()
要 “高级” 一些,它会自动识别负号。
>>> "-520".zfill(10)
'-000000520'
>>> "-520".rjust(10, "0")
'000000-520'
3. 请问下面代码执行的结果是?
>>> "-520".center(6, "0").zfill(10)
'00000-5200'
虽说 zfill()
方法能够将 “0” 放到负号的右边,不过前提是需要一个正经的数。这里先经过 "-520".center(6, "0")
加工,所以是 '0-5200'.zfill(10)
,这里的 '0-5200'
显然并不是一个正经的数字……
4. 请问下面代码执行的结果是?
>>> "I love FishC".swapcase()[::-1]
从左到右先执行 swapcase()
方法,得到的结果是 'i LOVE fISHc'
,然后再执行一次反向切片操作,所以得到了这么一个结果。
5. 请使用一行代码来检测列表中的每个元素是否为回文数,并返回一个结果为回文数构成的列表。
>>>x = ["123", "33211", "12321", "13531", "112233"]
>>>[each for each in x if each == each[::-1]]
>>>['12321', '13531']
6. 请按照以下规则整理一个给定的字符串 s。
一个整理好的字符串中,两个相邻字符 s[j] 和 s[j+1],其中 0 <= j <= s.length - 2,要满足如下条件:
若 s[j] 是小写字符,则 s[j+1] 不可以是相同的大写字符
若 s[j] 是大写字符,则 s[j+1] 不可以是相同的小写字符
如果 s[j] 和 s[j+1] 满足以上两个条件,则将它们一并删除