Python基础之字符串常见操作经典实例详解


Posted in Python onFebruary 26, 2020

本文实例讲述了Python基础之字符串常见操作。分享给大家供大家参考,具体如下:

字符串基本操作

切片
# str[beg:end]
# (下标从 0 开始)从下标为beg开始算起,切取到下标为 end-1 的元素,切取的区间为 [beg, end)
str = ' python str '
print (str[3:6])  # tho
# str[beg:end:step]
# 取 [beg, end) 之间的元素,每隔 step 个取一个
print (str[2:7:2]) # yhn
原始字符串
# 在字符串前加 r/R
# 所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符
print (r'\n')  # \n
字符串重复
# str * n, n * str
# n 为一个 int 数字
str = "hi"
print (str*2)  # hihi
print (2*str)  # hihi
in
str = ' python'
print ('p' in str)  # True
print ('py' in str)  # True
print ('py' not in str) # False

字符串常用函数

去空格
str = ' python str '
print (str)
# 去首尾空格
print (str.strip())
# 去左侧空格
print (str.lstrip())
# 去右侧空格
print (str.rstrip())
分隔字符串
str = ' 1 , 2 , 3 , 4 , 5 , '
# 默认使用空格分隔
print (str.split())  # ['1', ',', '2', ',', '3', ',', '4', ',', '5', ',']
# 指定使用空格进行分隔,首尾如果有空格,则会出现在结果中
print (str.split(' ')) # ['', '1', ',', '2', ',', '3', ',', '4', ',', '5', ',', '']
# 指定其他字符串进行分隔
print (str.split(',')) # [' 1 ', ' 2 ', ' 3 ', ' 4 ', ' 5 ', ' ']
print (str.split('3 ,')) # [' 1 , 2 , ', ' 4 , 5 , ']
str = 'mississippi'
print (str.rstrip('ip'))
# 取行, python 中把 "\r","\n","\r\n",作为行分隔符
str = 'ab c\n\nde fg\rkl\r\n'
print (str.splitlines())   # ['ab c', '', 'de fg', 'kl']
print (str.splitlines(True)) # ['ab c\n', '\n', 'de fg\r', 'kl\r\n']
拼接字符串
# str.join()方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
str = '-'
seq = ("a", "b", "c"); # 字符串序列
print (str.join(seq)) # 'a-b-c'
统计字符串里某个字符出现的次数
str = "thing example....wow!!!"
print (str.count('i', 0, 5)) # 1
print (str.count('e') ) # 2
检测字符串中是否包含子字符串
# str.find(str, beg=0, end=len(string))
# 如果包含子字符串返回开始的索引值,否则返回-1。
str1 = "this is string example....wow!!!"
str2 = "exam"
print (str1.find(str2))   # 15
print (str1.find(str2, 10)) # 15
print (str1.find(str2, 40)) # -1

# str.index(str, beg=0, end=len(string))
# 如果包含子字符串返回开始的索引值,否则抛出异常。
print (str1.index(str2))   # 15
print (str1.index(str2, 10)) # 15
print (str1.index(str2, 40))
# Traceback (most recent call last):
#  File "test.py", line 8, in
#  print str1.index(str2, 40)
#  ValueError: substring not found
# shell returned 1

# str.rfind(str, beg=0, end=len(string))
# str.rindex(str, beg=0, end=len(string))
判断字符串是否以指定前缀、后缀结尾
# str.startswith(str, beg=0,end=len(string))
# 检查字符串以指定子字符串开头,如果是则返回 True,否则返回 False
str = "this is string example....wow!!!"
print (str.startswith( 'this' ))    # True
print (str.startswith( 'is', 2, 4 ))  # True
print (str.startswith( 'this', 2, 4 )) # False

# str.endswith(suffix[, start[, end]])
# 以指定后缀结尾返回True,否则返回False
suffix = "wow!!!"
print (str.endswith(suffix))    # True
print (str.endswith(suffix,20))   # True
suffix = "is"
print (str.endswith(suffix, 2, 4))  # True
print (str.endswith(suffix, 2, 6)) # False
根据指定的分隔符将字符串进行分割
# str.partition(del)
# 返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。
str = "http://www.baidu.com/"
print (str.partition("://"))  # ('http', '://', 'www.baidu.com/')
# string.rpartition(str)  从右边开始
替换字符串
# str.replace(old, new[, max])
# 字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
str = "thing example....wow!!! thisslly string";
print (str.replace("is", "was"))   # thwas was string example....wow!!! thwas was really string
print (str.replace("is", "was", 3)) # thwas was string example....wow!!! thwas is really string
# str.expandtabs(tabsize=8)
# 把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8
检测字符串组成
# 检测数字
str.isdigit()  # 检测字符串是否只由数字组成
str.isnumeric() # 检测字符串是否只由数字组成,这种方法是只针对unicode对象
str.isdecimal() # 检查字符串是否只包含十进制字符。这种方法只存在于unicode对象
# 检测字母
str.isalpha()  # 检测字符串是否只由字母组成
# 检测字母和数字
str.isalnum()  # 检测字符串是否由字母和数字组成
# 检测其他
str.isspace()  # 检测字符串是否只由空格组成
str.islower()  # 检测字符串是否由小写字母组成
str.isupper()  # 检测字符串中所有的字母是否都为大写
str.istitle()  # 检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写
字符串处理
str.capitalize()  # 将字符串的第一个字母变成大写,其他字母变小写
str.lower()    # 转换字符串中所有大写字符为小写
str.upper()    # 将字符串中的小写字母转为大写字母
str.swapcase()   # 对字符串的大小写字母进行转换
max(str)  # 返回字符串 str 中最大的字母
min(str)  # 返回字符串 str 中最小的字母
len(str)  # 返回字符串的长度
str(arg) # 将 arg 转换为 string

格式化输出

居中填充
# str.center(width[, fillchar])
# 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。默认填充字符为空格
str = "this is string example....wow!!!"
print (str.center(40, 'a'))  # aaaathis is string example....wow!!!aaaa
靠右填充
# str.zfill(width)
# 返回指定长度的字符串,原字符串右对齐,前面填充0
str = "this is string example....wow!!!"
print (str.zfill(40))  # 00000000this is string example....wow!!!
输出格式
print ("My name is %s and weight is %d kg!" % ('Cool', 21))
# My name is Zara and weight is 21 kg!
print ('%(language)s has %(number)03d quote types.' % {"language": "Python", "number": 2})
# Python has 002 quote types.
# str.format(*args, **kwargs)
print ('{0}, {1}, {2}'.format('a', 'b', 'c')) # a, b, c
print ('{1}, {0}, {2}'.format('a', 'b', 'c')) # b, a, c

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python利用lxml读写xml格式的文件
Aug 10 Python
Python实现的径向基(RBF)神经网络示例
Feb 06 Python
Python 数据处理库 pandas 入门教程基本操作
Apr 19 Python
python中利用h5py模块读取h5文件中的主键方法
Jun 05 Python
python实现通过队列完成进程间的多任务功能示例
Oct 28 Python
Python二次规划和线性规划使用实例
Dec 09 Python
Django中密码的加密、验密、解密操作
Dec 19 Python
python清空命令行方式
Jan 13 Python
Python关于反射的实例代码分享
Feb 20 Python
python实现坦克大战
Apr 24 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
May 25 Python
python数据可视化使用pyfinance分析证券收益示例详解
Nov 20 Python
浅析python表达式4+0.5值的数据类型
Feb 26 #Python
Pandas时间序列基础详解(转换,索引,切片)
Feb 26 #Python
Python图像处理库PIL的ImageFont模块使用介绍
Feb 26 #Python
Python利用FFT进行简单滤波的实现
Feb 26 #Python
Python图像处理库PIL的ImageGrab模块介绍详解
Feb 26 #Python
Python图像处理库PIL的ImageDraw模块介绍详解
Feb 26 #Python
PIL包中Image模块的convert()函数的具体使用
Feb 26 #Python
You might like
PHP HTML代码串 截取实现代码
2009/06/29 PHP
laravel实现按月或天或小时统计mysql数据的方法
2019/10/09 PHP
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
JQuery插件Style定制化方法的分析与比较
2012/05/03 Javascript
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
JavaScript中用let语句声明作用域的用法讲解
2016/05/20 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
JS实现留言板功能
2017/06/17 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
2019/08/27 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
pycharm 使用心得(五)断点调试
2014/06/06 Python
python中(str,list,tuple)基础知识汇总
2018/02/20 Python
对python3 sort sorted 函数的应用详解
2019/06/27 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
2019/11/30 Python
python 爬取马蜂窝景点翻页文字评论的实现
2020/01/20 Python
Django 构建模板form表单的两种方法
2020/06/14 Python
英国鞋类及配饰零售商:Kurt Geiger
2017/02/04 全球购物
俄罗斯韩国化妆品网上商店:Cosmasi.ru
2019/10/31 全球购物
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
农村婚庆司仪主持词
2014/03/15 职场文书
小学班主任评语大全
2014/04/23 职场文书
公安机关查摆剖析材料
2014/10/10 职场文书
2014年药店工作总结
2014/11/20 职场文书
晚会闭幕词
2015/01/28 职场文书
公务员处分决定书
2015/06/25 职场文书
爱岗敬业事迹材料
2019/06/20 职场文书
吃通javascript正则表达式
2021/04/21 Javascript
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电
源码安装apache脚本部署过程详解
2022/09/23 Servers