今天学习的课程是字符串,这并不是一个新概念,只是以前并没有学会字符串的其他用法,只用会了一个正常显示,即在引号内的内容为字符串。今天学习的主要是字符串的其他用法。

#字符串翻转
x = input(int("输入一个整数:"))
"是回文数" if x == x [::-1] else "不是回文数" #[::-1]列表内容倒序

记得在前几章的时候我做过回文数这个作业,我还吐槽自己是怎么做的。首先是先将字符全部倒序,再拆分出一个个元素,再拼装成一个完整的整形数字,再进行对比。

现在用这个方法就简单多了,一行代码解决。

#大小写字母转换,
#使用方法参考:x.capotalize
#capitalize() #字符串首字母大写,其他字母小写
#casefold() #所有字母都是小写,可以处理其他语言字母
#title() #字符串中每个单词的首字母变成大写,该单词其他字母变为小写
#swapcase() #字符串内所有字母大小写字母翻转
#upper() #所有字母变成大写
#lower() #所有字母变成小写,仅能处理英语字母

这些就是常用的字符串字段了,而像title,在读书笔记里就有写到。算是书和视频的互相补充吧。

#左中右对齐,
#使用方法参考x.center(5):假如括号里的字符数小于或等于实际字符数,则直接输出字符数。若大于,才会用空格填充多余字符,形成左中右对齐的效果。
center(width,fillchar='') #居中对齐
ljust(width,fillchar='') #左对齐
rjust(width,fillchar='') #右对齐
zfill(width) #用左侧填充0
#fillchar为填充字符,默认为空格。x.center(5,"王大锤"),则用“王大锤”替换空格变成填充内容。

对齐主要是在字符串内部对齐,而不是跟外部代码对齐。比如”王大锤“,三个字符。如果在代码里标注(5)的话,居中显示效果就是” 王大锤“,左右会各空一格空格。

#查找
x = "123123321"
#count(sub[,start[.end]]) #用于查找sub参数指定的子字符串在字符串中出现的次数
x.count("1")
x.count("1",0,5) #从0位置开始查找,到5结束

#find(sub[,start[.end]]) #用于定位sub参数指定的子字符串在字符串中的索引下标值,从左往右找。注意!是下标值!
x.find("1") #从左到右查找“1”字符的下标志

#rfind(sub[,start[.end]])#用于定位sub参数指定的子字符串在字符串中的索引下标值,从右往左找。注意!是下标值!
x.rfind("1")

#index(sub[,start[.end]])#与find逻辑类似,但如果无法找到目标字符,则显示异常。
#rindex(sub[,start[.end]])#与rfind逻辑类似,但如果无法找到目标字符,则显示异常。

感觉跟列表和元组也挺像的,啥操作都有。不过字符串是不能修改的,虽然也有替换操作,但不会直接修改原字符串内容(也就是创建了一个新字符串,而不是直接修改旧字符串)。

#替换
#expandtabs([tabsiza=8]) #使用空格来替换制表符,并且返回新字符串
new_code = code.expandtabs(4) #将tab替换成4个空格
#replace(old,new,count=-1) #返回一个将所有old的参数指定的子字符串替换为new参数指定的新字符串
"123321123456".replace("1","新垣结衣") #输出为:'新垣结衣2332新垣结衣新垣结衣23456'
#translate(table) ##返回一个根据table参数转换后的新字符串
table = str.maketrans("ABCDEFG","1234567")
"wangdaED".translate(table)#输出为'wangda54'
"wangdaED".translate(str.maketrans("ABCDEFG","1234567"))#这样写效果与上一条一致
"wang7da7ED".translate(str.maketrans("ABCDEFG","1234567","7"))#第三个字符串是指将指定的字符忽略的意思。输出为”'wangda54'

再有一节课,小甲鱼的Python新编课程就结束了(这家伙只更新了30节课)。同时,自己也多多少少迈入了小学二年级水平的门槛。后面要学哪个课程,还是得继续寻觅。

胭惜雨

2020年12月29日

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据