千家信息网

怎么使用Python中的字符串

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容介绍了"怎么使用Python中的字符串"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!字符串的
千家信息网最后更新 2026年11月04日怎么使用Python中的字符串

本篇内容介绍了"怎么使用Python中的字符串"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

字符串的定义

python定义字符、字符串没有java那样的严格,不管是单引号、双引号、甚至是三个单引号和双引号都可以用来定义字符(串),只要成对出现即可。比如:

# 单个字符 a='a' # 使用单引号定义字符串 name='Uranus' # 使用双引号定义字符串 code = "Hello World ..." # 既然说到了string,怎么能不点开源码看看呢? class str(object):     """     str(object='') -> str     str(bytes_or_buffer[, encoding[, errors]]) -> str     Create a new string object from the given object. If encoding or     errors is specified, then the object must expose a data buffer     that will be decoded using the given encoding and error handler.     Otherwise, returns the result of object.__str__() (if defined)     or repr(object).     encoding defaults to sys.getdefaultencoding().     errors defaults to 'strict'.     """

虽然这些不是主要说的,但还是简单提下,三个单引号或者双引号,主要是用来作为文档注释的,请不要拿来定义字符串(虽然这样并不会出现语法错误)。

今天主要说下关于打段的字符串应该如何定义,PEP8有规定,一行代码的长度请勿超过120个字符。那么如果遇到这种情况,该怎么办?

# 不推荐的使用方式: line = """ Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. """ # 或者这样 line = "Create a new string object from the given object. " \        "If encoding or errors is specified," \        "then the object must expose a data buffer that will be" \        " decoded using the given encoding and error handler." # 更好的实现方式: line = ("Create a new string object from the given object."         "If encoding or errors is specified,"         "then the object must expose a data buffer that will be "         "decoded using the given encoding and error handler."         )

字符串中.is()的用法

.is*(), 既然是is,那么它返回的结果只有两种,True or False

先来对比一下数字:

isdigit() True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字 False: 汉字数字 Error: 无  isdecimal() True: Unicode数字,全角数字(双字节) False: 罗马数字,汉字数字 Error: byte数字(单字节)  isnumeric() True: Unicode数字,全角数字(双字节),罗马数字,汉字数字 False: 无 Error: byte数字(单字节)

总结几个偏门知识点:

a='①②③④⑤' isdigit()、isnumeric() 为True isdecimal()为False b='一壹' isnumeric()会认为是True的哦!

再来看一个等式:

isalnum() = isdigit() + isalpha() + isspace() isdigit()表示字符串内全部为数字 isalpha()表示字符串内全部为字符 isspace()表示字符串有一个或多个空格组成 isalnum()表示字符串内全部为数字和字符
a='12345' b='①②③④⑤' c='abc123'  print(a.isdigit()) # True print(b.isalpha()) # True print(c.isalnum()) # True

针对字符串大小写的方法:

.isupper() 字符串全部由大写组成 .islower() 字符串全部由小写组成 .istitle() 字符串形式为驼峰命名,eg:"Hello World"

以上这些用法去掉is,则变为了对应的字符串转发方法。学一套会两套,买一送一….

最后说一个不带.的is* --- isinstance(obj,type)。

判断一个object是什么类型… type可选类型为:int,float,bool,complex,str,bytes,unicode,list,dict,set,tuple 并且type可以为一个原组:isinstance(obj, (str, int))

判断字符串中的内容

.*with() starts ends 不仅支持开头结尾的匹配,还支持start和end两个参数来动态定义字符串的index位置。

long_string = "To live is to learn,to learn is to better live" long_string.startswith('To') long_string.startswith('li', 3, 5) long_string.endswith('live') long_string.endswith('live', 0, 7)

同样支持start、end来判断字符串的还有 .find()、.rfind()和 .index()、.rindex()

这两类字符串寻址方法均支持从左到右、从右至左两种寻址方式,不同的是:

find在未找到时,返回-1,而index在未找到时,会抛出ValueError的异常…

long_string.index('live') # 3 long_string.rindex('live') # 42

字符串的内容变更

狭义来说使用,字符串的替换使用.replace()即可,那为什么还要单独说呢?因为它有一个可选参数count。

long_string = "To live is to learn,to learn is to better live" long_string.count('live') # 2 long_string.replace('live','Live',1) output: 'To Live is to learn,to learn is to better live' # 可以看到,第二个live并未进行替换

刚才说了狭义,那么广义呢?

1.(l/r)strip()

将字符串左、右、两端的特定字符过滤掉,默认为空格…

strip()要注意的地方是,strip('TolLive') 中的字符并非完整匹配,而是针对每一个字符进行匹配,说起来混,直接上例子:

long_string = "To live is to learn,to learn is to better live" long_string.strip('TolLive') 's to learn,to learn is to better'

2.字符串切片

字符串的切片分为long_string[start:end;step] start、end区间为左闭右开…这个网上说的太多了,再拉出来详细讲就要挨打了…

(l/r)just(width,[fillchar])、center(width, [fillchar])、zfill(width)

这些均为填充固定长度的字符,默认使用空格(zfill为左补0,z是zero的意思…),看意思就明白了,不用多讲了….

字符串格式化输出

本来fill和center等可以放在这里,但是他们使用频率和重量级不够格,就丢在上面了。

Python格式化输出分为两类,那是在pyton2的时代,即 % 和 format。这两种网上的资料太多了,说的太多显得没逼格…

但,还是要简单说说其中特殊的地方。

1.% 格式化输出:

  • 如何在%的格式输出中,输出用来看做标记为的%符号呢?使用两个百分号(%%)

  • %(-)(width) width为设置长度,默认左填充空格,添加-号为右填充

  • .width代表字符串截断,保留多少长度的字符串

  • type %s字符串 %d十进制整数 %f小数 …

  • 多个参数是,后面的参数需要使用括号包裹起来

'姓名:%-5s 年龄:%4d 爱好: %.8s' % ('王大锤',30,'python、Java') output: '姓名:王大锤   年龄:  30 爱好:python、J'

2.format格式输出:

format在python3开始官方就表示为替换%的输出方式,之所以还保留着%,主要是为了兼容性考虑…

  • 对比%,format使用花括号{}表示变量

  • < > ^ 代表了format的对齐方式

'{:-^40s}'.format('华丽的分割线') output: '-----------------华丽的分割线-----------------'

3.f-string

Python3.6的版本更新时,新增了f-string,英文好的可以去看官方解释PEP 498 -- Literal String Interpolation 。

f-string是字符串引号前以f/F开头,并使用{}标注替换位置的使用形式。

之所以官方推出f-string,主要是因为它的更高的性能、更强的功能。例子走起:

name = 'Uranus' f'Hello,{name}' f'Hello,{name.lower()}' f'Hello,{name:^10s}' f'Hello,{(lambda x: x*2) (name)}'  output: 'Hello,Uranus' 'Hello,uranus' 'Hello,  Uranus  ' 'Hello,UranusUranus'

"怎么使用Python中的字符串"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

字符 字符串 数字 引号 输出 字节 方式 格式 内容 参数 空格 长度 支持 罗马数字 官方 方法 知识 罗马 全角 汉字 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 北京互联网科技公司 互联网科技公司发展 远信互联网科技 杭州互联网科技公司 腾讯科技 互联网女皇 易通互联网络科技有限公司 互联网 视角下的科技创新 成都狮子座互联网科技 互联网大会黑科技排名 互联网科技扶贫时间 国大互联网教育科技有限公司工作 互联网公司黑科技创始人 特约风豹互联网科技为什么扣费 互联网科技实习生岗位 广州千川互联网科技有限公司 易企秀互联网科技是做什么的 版纳互联网科技选哪家 云南互联网科技学费 西安左小互联网科技有限公司 银川新华互联网科技学校招聘 保险科技 互联网保险 互联网与科技发展 迪茉互联网科技 北京禾田雨橡互联网科技 多迪互联网科技有限公司 中国最先进互联网科技公司 汽车互联网创新科技园 互联网科技大奖都有哪些公司 上海科技产业互联网平台 亚光科技低轨卫星互联网
0