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中函数的可变参数
Sep 02 Python
python常用知识梳理(必看篇)
Mar 23 Python
Python中property属性实例解析
Feb 10 Python
Python即时网络爬虫项目启动说明详解
Feb 23 Python
tensorflow实现softma识别MNIST
Mar 12 Python
python批量创建指定名称的文件夹
Mar 21 Python
Django中自定义模型管理器(Manager)及方法
Sep 23 Python
python飞机大战pygame游戏背景设计详解
Dec 17 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
Mar 19 Python
Python爬取数据并实现可视化代码解析
Aug 12 Python
python+flask编写一个简单的登录接口
Nov 13 Python
Python机器学习之基础概述
May 19 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 number_format() 函数定义和用法
2012/06/01 PHP
PHP基础知识回顾
2012/08/16 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
Javascript中的String对象详谈
2014/03/03 Javascript
JavaScript设计模式之适配器模式介绍
2014/12/28 Javascript
jQuery+html5实现div弹出层并遮罩背景
2015/04/15 Javascript
使用Script元素发送JSONP请求的方法
2016/06/12 Javascript
Vue.js路由组件vue-router使用方法详解
2016/12/02 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
2017/12/11 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
2017/12/26 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
JavaScript实现简单的计算器
2020/01/16 Javascript
es6数组之扩展运算符操作实例分析
2020/04/25 Javascript
vue移动端写的拖拽功能示例代码
2020/09/09 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
[03:12]完美世界DOTA2联赛PWL DAY6集锦
2020/11/05 DOTA
Python中__call__用法实例
2014/08/29 Python
Python3指定路径寻找符合匹配模式文件
2015/05/22 Python
python实现SMTP邮件发送功能
2020/06/16 Python
python logging重复记录日志问题的解决方法
2018/07/12 Python
Python requests模块实例用法
2019/02/11 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
python 下载文件的多种方法汇总
2020/11/17 Python
英国著名的化妆品折扣网站:Allbeauty.com
2016/07/21 全球购物
英国电子产品购物网站:Tech in the basket
2019/11/08 全球购物
小区门卫工作职责
2013/12/14 职场文书
优秀的茶餐厅创业计划书
2014/01/03 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
向国旗敬礼活动小结
2014/09/27 职场文书
生死抉择观后感
2015/06/09 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫
Nginx反向代理、重定向
2022/04/13 Servers
Python可视化神器pyecharts绘制水球图
2022/07/07 Python