当前位置: 首页 > news >正文

python中字符串的各类方法

大小写转换方法

upper()

用于将字符串中的小写字母转为大写字母。

'abcd'.upper()  # 'ABCD'
'aBcD'.upper()  # 'ABCD'

lower()

用于将字符串中的大写字母转为小写字母。

'ABCD'.lower()  # 'abcd'
'aBcD'.lower()  # 'abcd'

capitalize()

用于将字符串的第一个字母变成大写,其他字母变小写。首字符如果是非字母则不变,其他字母变小写。

'ABCD'.capitalize()  # 'Abcd'
'aBcD'.capitalize()  # 'Abcd'
'1abcd'.capitalize()  # '1abcd'
'1aBcD'.capitalize()  # '1abcd'

title()

用于返回“标题化”的字符串——即所有单词的首字母转为大写,其余字母均为小写。

注意:非字母后的第一个字母将转为大写字母。

'this is an example string'.title()   # This Is An Example String
'5g is coming'.title()  # 5G Is Coming

swapcase()

用于对字符串的大小写字母进行互相转换。

'abcd'.swapcase()  # 'ABCD'
'aBcD'.swapcase()  # 'AbCd'

我们来总结一下:

分割、组合与移除方法

split()_分割

用于通过指定分隔符对字符串进行分割。split() 方法有两个可选参数,第一个参数为分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。第二个参数为最大分割次数,默认为 -1,即不限次数。

'小 贝 编 程'.split()  # ['小', '贝', '编', '程']
'小 贝 编 程'.split(' ')  # ['小', '贝', '编', '程']
'小-贝-编-程'.split('-')  # ['小', '贝', '编', '程']
'小贝编程'.split('贝编')  # ['小', '程']
'小 贝 编 程'.split(' ', 1)  # ['小', '贝 编 程']

join()_组合

用于将序列中的元素以指定的字符连接生成一个新的字符串。join() 方法接收一个序列(列表、元组、字符串等)作为参数,. 前面的字符串用于连接符。

# 列表
''.join(['小', '贝', '编', '程'])  # 小贝编程
'-'.join(['小', '贝', '编', '程'])  # 小-贝-编-程# 元组
'-'.join(('小', '贝', '编', '程'))  # 小-贝-编-程# 字符串
'-'.join('小贝编程')  # 小-贝-编-程

strip()_移除

用于移除字符串开头和结尾指定的字符(默认为空字符)或字符序列。当传入一个字符串时,会将传入字符串中每个字符依次移除。

' 小贝编程  '.strip()  # '小贝编程'
'~~小贝编程~~'.strip('~')  # '小贝编程'
'~~小贝~~编程~~'.strip('~')  # '小贝~~编程'
'_~_小贝编程_~~'.strip('~_')  # '小贝编程'

我们来总结一下:

编程练习

请你使用 split()join() 和 strip() 方法将 $带-你-打-开-编-程-世-界-的-大-门$ 变成 带~你~打~开~编~程~世~界~的~大~门

str = '$带-你-打-开-编-程-世-界-的-大-门$'
str = str.strip('$')
str = str.split('-')
str = '~'.join(str)
print(str)# 简化为
# 先分割、再组合、再转换
# str = '~'.join(str.split('-')).strip('$')
# print(str)

定位与替换方法

count()

用于统计字符串中某个字符串出现的次数。第一个参数为要统计次数的字符串,后两个可选参数为在字符串搜索的开始与结束索引。

'aabbcccd'.count('a')  # 2
'aabbcccd'.count('ab')  # 1
'aabbcccd'.count('e')  # 0'aabbcccd'.count('a', 2, 6)  # 0
# 等同于 'bbcc'.count('a')'aabbcccd'.count('c', 2, 6)  # 2
# 等同于 'bbcc'.count('c')

find()

用于检测字符串中是否包含子字符串,如果包含子字符串返回第一次出现的索引值,否则返回 -1。第一个参数为要查找的子字符串,后两个可选参数为在字符串搜索的开始与结束索引。

'abc'.find('b')  # 1
'abcabc'.find('b')  # 1
'abcabc'.find('d')  # -1
'abcbcdabc'.find('bcd')  # 3
'abcabc'.find('b', 1, 2)  # 1
'abcabc'.find('b', 2, 3)  # -1

replace()

用于将字符串中的指定字符串替换成别的字符串。第一个参数为被替换字符串,第二个参数为替换字符串,第三个可选参数为替换的最多次数,默认为无限次。

'abcd'.replace('b', 'e')  # 'aecd'
'abbbcbd'.replace('b', 'e')  # 'aeeeced'
'abbbcbd'.replace('bb', 'e')  # 'aebcbd'
'abbbcbd'.replace('b', 'e', 2)  # 'aeebcbd'

编程练习

请按要求对字符串进行相应的操作。

str = 'feel the change'# 输出 str 中 e 的个数
print(str)# 输出 str 中 change 的索引值
print(str)# 将 str 中的 change 替换为 CHANGE
print(str)

转换后为:

str = 'feel the change'# 输出 str 中 e 的个数
print(str.count('e'))# 输出 str 中 change 的索引值
print(str.find('change'))# 将 str 中的 change 替换为 CHANGE
print(str.replace('change','CHANGE'))

格式化输出方法

除了之前说的使用 % 运算符进行字符串格式化输出,我们还可以使用字符串的 format() 方法达到同样的效果。

'我叫{},今年 {} 岁,来自{}'.format('小贝', 18, '南京')
# 我叫小贝,今年 18 岁,来自南京

从上面的例子可以看到,format() 方法使用 {} 作为占位符,然后按照参数顺序替换对应的占位符。

我们还可以给占位符编号:

'我叫{0},今年 {1} 岁,来自{2}'.format('小贝', 18, '南京')
# 我叫小贝,今年 18 岁,来自南京# 调整编号顺序
'我叫{2},今年 {1} 岁,来自{0}'.format('南京', 18, '小贝')
# 我叫小贝,今年 18 岁,来自南京# 重复编号
'我叫{0},{0}今年 {1} 岁,来自{2}'.format('小贝', 18, '南京')
# 我叫小贝,小贝今年 18 岁,来自南京

我们还可以给占位符命名:

'我叫{name},今年 {age} 岁,来自{city}'.format(name = '小贝', age = 18, city = '南京')
# 我叫小贝,今年 18 岁,来自南京# 命名后参数顺序不再重要
'我叫{name},今年 {age} 岁,来自{city}'.format(age = 18, city = '南京', name = '小贝')
# 我叫小贝,今年 18 岁,来自南京

请你用字符串的 format() 方法改写之前天气播报的代码。

weathers = [('南京', 36),('成都', 30),('昆明', 26)
]for w in weathers:print('今天%s的最高气温是%d度' % (w[0], w[1]))

改写后的结果为:

weathers = [('南京', 36),('成都', 30),('昆明', 26)
]for w in weathers:print('今天{}的最高气温是{}度'.format(w[0],w[1]))# 输出为:
# 今天南京的最高气温是36度
# 今天成都的最高气温是30度
# 今天昆明的最高气温是26度

http://www.lryc.cn/news/362271.html

相关文章:

  • DataGrip 数据库连接客户端
  • JS片段:生成 UUID
  • 小学数学出题器-Word插件-大珩助手
  • 短剧平台源码:打造个性化娱乐体验的核心功能
  • 【MySQL】MySQL 图形化界面 - 使用说明(MySQL Workbench)
  • Shell 编程之免交互
  • github有趣项目:Verilog在线仿真( DigitalJS+edaplayground)
  • 性能测试学习-基本使用-元件组件介绍(二)
  • 基于大模型的智慧零售教育科研平台——技术方案
  • C# using的几个用途
  • MyBatis3.4全集笔记
  • IDEA一键启动多个微服务
  • 【Python3】random.choices 权重随机选取 详解
  • 【面试题-015】Redis的线程模型是什么 为什么速度快
  • EasyV开发人员的使用说明书
  • 构造列表初始化和构造初始化区别
  • Message passing mechanism (消息传递机制)
  • 详解 Spark SQL 代码开发之数据读取和保存
  • Pulsar 社区周报 | No.2024-05-30 | BIGO 百页小册《Apache Pulsar 调优指南》
  • 第二证券股票杠杆:4分钟直线涨停!这一赛道,AH股集体爆发!
  • JavaScript 进阶征途:解锁Function奥秘,深掘Object方法精髓
  • 斜拉桥智慧施工数字孪生
  • 【chatGPT API】Function Calling:将自然语言转换为API调用或数据库查询
  • Oracle Hint /*+APPEND*/插入性能总结
  • 正邦科技(day3)
  • mac电脑多协议远程管理软件:Termius 8.4.0激活版下载
  • 网络攻击的常见形式
  • ReactDOM 18版本 使用createRoot 替换render详解
  • 【赠书活动】好书推荐—《详解51种企业应用架构模式》
  • SpringBoot启动时使用外置yml文件