(小甲鱼python)字符串系列笔记合集一 第一课、字符串I总结(字符串判断回文数、字符串各种方法的使用) 遍历字符串 删除字符串最后一个元素 删除字符串中某个位置的字符

一、字符串判断回文数

上一讲: 回文数的判断

x=“12321”
x[::-1] #字符串倒过来输出

>>> x="12321"
>>> "是回文数" if x==x[::-1] else "不是回文数"
'是回文数'
>>> x="12345"
>>> "是回文数" if x==x[::-1] else "不是回文数"
'不是回文数'

二、字符串的各种方法

1.字符串大小字母进行变换

capitalize()
返回一个新的字符串,新字符串的首字母变为大写,其它字母变为小写。

>>> x="I love Fishc"
>>> x.capitalize()
'I love fishc'

casefold()
返回一个新字符串,新字符串的所有字母变为小写。

>>> x="I love Fishc"
>>> x.casefold()
'i love fishc'

title()
返回标题化(所有的单词都是以大写开始,其余字母均小写)的字符串。

>>> x="I love Fishc"
>>> x.title()
'I Love Fishc'

swapcase()
返回一个大小写字母翻转的新字符串。

>>> x="I love Fishc"
>>> x.swapcase()
'i LOVE fISHC'

upper()
返回一个所有英文字母都转换成大写后的新字符串

>>> x="I love Fishc"
>>> x.upper()
'I LOVE FISHC'

lower()
返回一个所有英文字母都转换成小写后的新字符串

>>> x="I love Fishc"
>>> x.lower()
'i love fishc'

2.字符串的左、中、右对齐

center(width,fillchar=’ ')
返回一个字符居中的新字符串

>>> x="有内鬼,停止交易"
>>> x.center(5)
'有内鬼,停止交易'
>>> x.center(15)        #15大于字符串长度,其他位用空格填充
'    有内鬼,停止交易   '
>>> x.center(15,"淦")
'淦淦淦淦有内鬼,停止交易淦淦淦'

ljust(width, fillchar=’ ')
返回一个字符左对齐的新字符串

>>> x.ljust(15)
'有内鬼,停止交易       '
>>> x.ljust(15,"淦")
'有内鬼,停止交易淦淦淦淦淦淦淦'

rjust(width, fillchar=’ ')
返回一个字符右对齐的新字符串

>>> x.rjust(15)
'       有内鬼,停止交易'
>>> x.rjust(15,"淦")
'淦淦淦淦淦淦淦有内鬼,停止交易'

zfil(width)
返回一个左侧用 0 填充的新字符串

>>> x.zfill(15)
'0000000有内鬼,停止交易'
>>> "520".zfill(5)
'00520'
>>> "-520".zfill(5)
'-0520'

3.遍历字符串

s = 'abc:cba'
s1 = s[:3] + s[-3:]          # s[-3:]字符串的最后三个元素
print(s1)
#输出:abccba

4.删除字符串最后一个元素

>>> s="abcdrefss"
>>> s[:-1]
'abcdrefs'
>>> 

5.删除字符串中某个位置的字符
方法一:使用pop()方法删除特定位置的字符

string1='快乐每一天'
list_str=list(string1)
list_str.pop(1)
string2=''.join(list_str)
print(string2)

输出: 快每一天

方法二:使用replace()方法删除指定字符

string="accdefg"
for i in string:
    if i=='e':
        string=string.replace(i,'o')        # 用o替换掉e
print(string)

输出:accdofg

方法三:使用re.sub()方法可以替换特定模式的字符

>>> import re
>>> s='/n1/t2/r3/n4/t5/r6/n7/t8/r9'
>>> re.sub('[/n/t/r]','',s)
'123456789'
>>> 

来自小甲鱼: 字符串的各种方法

课后题:
0. casefold() 和 lower() 两个方法都是将所有的字母变成小写,那它们有什么区别呢?

答:根据官方文档的提示,lower() 只能处理英文字母,而 casefold() 除了英语外,还可以处理更多其他语言的字符。

>>> 'ß'.lower()
'ß'
>>> 'ß'.casefold()
'ss'

1.请问 “-520”.zfill(10) 和 “-520”.rjust(10, “0”) 的执行结果一样吗?

>>> "-520".zfill(10)
'-000000520'
>>> "-520".rjust(10, "0")
'000000-520'

解析:zfill 的意思就是 zero fill,用 “0” 填充哈。
解析:zfill() 要 “高级” 一些,它会自动识别负号。

2.请问下面代码执行的结果是?

>>> "-520".center(6, "0").zfill(10)
'00000-5200'

解析:虽说 zfill() 方法能够将 “0” 放到负号的右边,不过前提是需要一个正经的数。这里先经过 “-520”.center(6, “0”) 加工,所以是 ‘0-5200’.zfill(10),这里的 ‘0-5200’ 显然并不是一个正经的数字……

3.请问下面代码执行的结果是?

>>> "I love FishC".swapcase()[::-1]
'cHSIf EVOL i'

解析:从左到右先执行 swapcase() 方法,得到的结果是 ‘i LOVE fISHc’,然后再执行一次反向切片操作,所以得到了这么一个结果。

  1. 请使用一行代码来检测列表中的每个元素是否为回文数,并返回一个结果为回文数构成的列表。
    提供的列表:[“123”, “33211”, “12321”, “13531”, “112233”]
    返回的结果:[‘12321’, ‘13531’]
[each for each in x if each == each[::-1]]

解析:一般要求用一行代码来实现迭代,都少不了列表推导式的介入

b=[]
a=["123","33211","12321","13531","112233"]
for i in range(len(a)):
    if a[i]==a[i][::-1]:
        b.append(a[i]) 
    else:
        continue
print(b)

本文题目来自链接: 小甲鱼字符串I

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值