python 字符串学习

python 字符串的处理,可谓十分强大。是值得花费实际去学习的,作为运维之前使用的shell处理字符串,基本上自己写出来的命令自己都有时候不认识,并没有py简洁方便。不过依然在看到些老鸟们写着冗长的shell字符串处理命令的时候心生敬佩,就和我看着他们熟练使用五笔打字一样。以下是python学习笔记,使用python3.7版本

#!/usr/bin/env python
# -*- coding: utf-8 -*-

1. 首字母大写 capitalize()

Python capitalize()将字符串的第一个字母变成大写,其他字母变小写。对于 8 位字节编码需要根据本地环境。
语法
capitalize()方法语法:
str.capitalize()
参数
无。
返回值
该方法返回一个首字母大写的字符串。
实例
str = 'xiaopeng'
re = str1.capitalize()
print(re)
#########执行结果 #############
Xiaopeng

2. 居中 center()

Python center() 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。默认填充字符为空格。
语法
center()方法语法:
str.center(width[, fillchar])
参数
width -- 字符串的总宽度。
fillchar -- 填充字符。
返回值
该方法返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。
实例
str = 'xiaopeng'
re = str1.center(20,"*")
print(re)
#########执行结果 #############
******xiaopeng******

3. 统计字符串 count()

Python count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。
语法
count()方法语法:
str.count(sub, start= 0,end=len(string))
参数
sub -- 搜索的子字符串
start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
end -- 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。
返回值
该方法返回子字符串在字符串中出现的次数。
实例
str = 'xiaopeng'
re = str1.count("op")
print(re)
#########执行结果 #############
1

4. 检查结尾 endswith()

Python endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置。
语法
endswith()方法语法:
str.endswith(suffix[, start[, end]])
参数
suffix -- 该参数可以是一个字符串或者是一个元素。
start -- 字符串中的开始位置。
end -- 字符中结束位置。
返回值
如果字符串含有指定的后缀返回True,否则返回False。
实例
str = 'xiaopeng'
re = str1.endswith('g')
print(re)
#########执行结果 #############
True

5. 检查开头 startswith()

Python startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。
语法
startswith()方法语法:
str.startswith(str, beg=0,end=len(string));
参数
str -- 检测的字符串。
strbeg -- 可选参数用于设置字符串检测的起始位置。
strend -- 可选参数用于设置字符串检测的结束位置。
返回值
如果检测到字符串则返回True,否则返回False。
实例
str = 'xiaopeng'
re = str1.startswith('x')
print(re)
#########执行结果 #############
True

6. 查找指定字符串 返回位置 find()

Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。
语法
find()方法语法:
str.find(str, beg=0, end=len(string))
参数
str -- 指定检索的字符串
beg -- 开始索引,默认为0。
end -- 结束索引,默认为字符串的长度。
返回值
如果包含子字符串返回开始的索引值,否则返回-1。
实例
str = 'xiaopeng'
re = str1.find("o")
print(re)
#########执行结果 #############
3

7. 格式化 format()

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
基本语法是通过 {} 和 : 来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序。
实例
str = 'I am {name}, age {num}'
re = str2.format(name="xiaopeng",num=27)
print(re)
str = = 'I am {0}, age {1}'
re = str2.format("xiaopeng",27)
print(re)
#########执行结果 #############
I am xiaopeng, age 27
I am xiaopeng, age 27

8. 检测字符串有字母或数字组成 isalnum()

Python isalnum() 方法检测字符串是否由字母和数字组成。
语法
isalnum()方法语法:
str.isalnum()
参数
无。
返回值
如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
实例
str= "xiaopeng27"
re = str3.isalnum()
print(re)
#########执行结果 #############
True

9. 转tab expandtabs()

Python expandtabs() 方法把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8。

语法
expandtabs()方法语法:
str.expandtabs(tabsize=8)
参数
tabsize -- 指定转换字符串中的 tab 符号('\t')转为空格的字符数。
返回值
该方法返回字符串中的 tab 符号('\t')转为空格后生成的新字符串。
实例
str="name\temail\tpassword\nxiaopeng\txiaopeng@qq.com\t******\nxiaopeng\txiaopeng@qq.com\t******\nxiaopeng\txiaopeng@qq.com\t******\n"
re = str4.expandtabs(20)
print(re)
#########执行结果 #############
name                email               password
xiaopeng            xiaopeng@qq.com     ******
xiaopeng            xiaopeng@qq.com     ******
xiaopeng            xiaopeng@qq.com     ****** 

10. 判断是否只有字母 isalpha()

Python isalpha() 方法检测字符串是否只由字母组成。
语法
isalpha()方法语法:
str.isalpha()
参数
无。
返回值
如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
实例
str = 'xiaopeng27'
re = str5.isalpha()
print re
#########执行结果 #############
False

11. 判断是否只有数字 isdigit()

Python isdigit() 方法检测字符串是否只由数字组成。
语法
isdigit()方法语法:
str.isdigit()
参数
无。
返回值
如果字符串只包含数字则返回 True 否则返回 False。
实例
str = '2'
re = str6.isdigit()
print(re)
#########执行结果 #############
True

12. 判断变量名合法性 isidentifier()

Python3 isidentifier() 方法用于判断字符串是否是有效的 Python 标识符,可用来判断变量名是否合法。
语法
S.isidentifier()
返回值
如果字符串是有效的 Python 标识符返回 True,否则返回 False。
实例
str = 'xiaopeng_27'
re = str7.isidentifier()
print(re)
#########执行结果 #############
True

13. 判断可打印字符 isprintable()

判断是否为可打印字符串
语法
str.isprintable()
返回值
如果字符串是不含有不可见字符(\t、\n)返回 True,否则返回 False。
实例
str = 'xiaopeng\t'
re=str8.isprintable()
print(re)
#########执行结果 #############
False

14. 检测只有空格 isspace()

Python isspace() 方法检测字符串是否只由空格组成。
语法
isspace()方法语法:
str.isspace()
参数
无。
返回值
如果字符串中只包含空格,则返回 True,否则返回 False.
实例
str = '\t'
re = str9.isspace()
print(re)
#########执行结果 #############
True

15. 标题化 title() istitle()

Python title() 方法返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写。
返回值
返回"标题化"的字符串,就是说所有单词都是以大写开始。

Python istitle() 方法检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。
返回值
如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False.

实例
str = 'Xiao peng shi ge da shuai ge'
re1 = str.title()
print(re1)
re2 = re1.istitle()
print(re2)
#########执行结果 #############
Xiao Peng Shi Ge Da Shuai Ge
True

16.指定字符拼接 join()

Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

语法
join()方法语法:

str.join(sequence)
参数
sequence -- 要连接的元素序列。
返回值
返回通过指定字符连接序列中元素后生成的新字符串。

实例
str = '小鹏是个大帅哥'
re = '$'.join(str)
print(re)
#########执行结果 #############
小$鹏$是$个$大$帅$哥

17. 指定字符填充 ljust()、rjust()

Python ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
返回值
返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

Python rjust() 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。
返回值
返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串
实例
str = 'xiaopeng'
re1 = str.ljust(20,"$")
re2 = str.rjust(20,"$")
print(re1)
print(re2)
#########执行结果 #############
xiaopeng$$$$$$$$$$$$
$$$$$$$$$$$$xiaopeng

18. 大小写转换 判断 islower()、lower()、isupper()、upper()、swapcase()

Python islower() 方法检测字符串是否由小写字母组成。

Python lower() 方法转换字符串中所有大写字符为小写。

Python isupper() 方法检测字符串中所有的字母是否都为大写。

Python upper() 方法将字符串中的小写字母转为大写字母。

Python swapcase() 方法用于对字符串的大小写字母进行转换。

实例
str = 'XiaoPeng'
str1 = 'xiao peng shi TU HAO'
re1 = str.islower()
re2 = str.lower()
re3 = str.isupper()
re4 = str.upper()
re5 = str1.swapcase()
print(re1,re2,re3,re4)
print(re5)
#########执行结果 #############
False xiaopeng False XIAOPENG
XIAO PENG SHI tu hao

19. 删除指定字符串 lstrip()、rstrip()、strip()

Python lstrip() 方法用于截掉字符串左边的空格或指定字符。

Python rstrip() 删除 string 字符串末尾的指定字符(默认为空格)

Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符

实例
str = '$$$Xiao Peng$$$'
re1 = str.lstrip('$')
re2 = str.rstrip('$')
re3 = str.strip('$')
print(re1)
print(re2)
print (re3)
#########执行结果 #############
Xiao Peng$$$
$$$Xiao Peng
Xiao Peng

20. 对应关系maketrans() 、translate()

Python maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
注:两个字符串的长度必须相同,为一一对应的关系。

Python translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 del 参数中。

实例
str1 = 'abcdefg'
str2 = '1234567'
str3 = 'asdfghjklzxcvbnm'
re1 = str.maketrans(str1,str2)
print(re1)
re2 = str3.translate(re1)
print(re2)
#########执行结果 #############
{97: 49, 98: 50, 99: 51, 100: 52, 101: 53, 102: 54, 103: 55}
1s467hjklzx3v2nm

21.字符串分割 partition() 、rpartition()、split() 、splitlines()

partition() 方法用来根据指定的分隔符将字符串进行分割。如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。

rpartition() 方法,只是该方法是从目标字符串的末尾也就是右边开始搜索分割符。。如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。

Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串

Python splitlines() 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

实例
str1 = 'xiao$peng$shi$tu$hao'
str2 = 'xiao\npeng\nshi\ntu\nhao'
re1 = str1.partition('$')
re2 = str1.rpartition('$')
re3 = str1.split('$')
re4 = str1.split('$',2)
re5 = str2.splitlines()
re6 = str2.splitlines(True)
#########执行结果 #############
('xiao', '$', 'peng$shi$tu$hao')
('xiao$peng$shi$tu', '$', 'hao')
['xiao', 'peng', 'shi', 'tu', 'hao']
['xiao', 'peng', 'shi$tu$hao']
['xiao', 'peng', 'shi', 'tu', 'hao']
['xiao\n', 'peng\n', 'shi\n', 'tu\n', 'hao']

22. 字符串替换 replace()

Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
语法
replace()方法语法:

str.replace(old, new[, max])
参数
old -- 将被替换的子字符串。
new -- 新字符串,用于替换old子字符串。
max -- 可选字符串, 替换不超过 max 次
返回值
返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。

实例
str1 = 'xiao peng shi qiong xiao zi'
re1 = str1.replace('qiong xiao zi','tu hao')
print(re1)
#########执行结果 #############
xiao peng shi tu hao
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容