Python 字符串小结

平时敲代码的时候字符串处理规范,方法和一些小技巧总会记不住,需要现查,这里mark小结一下

一、字符串定义

在Python中,单引号和双引号在表示字符串没有区别

str1="Python is 'beautiful'"
str2='Python is "beautiful"'
print str1
print str2

这样做的优点从上面代码可以看出,单引号定义字符串,里面双引号被认定是普通字符,双引号定义字符串也一样,都不需要进行转义,这就是Python开发者常说的易用性。

二、格式化输出(包含字符串)

1、%格式化:%[(name)][flags][width].[precision]typecode

  • (name):可选,表示key值
  • flags值:可选
    • +:右对齐,正数前正号,负数前负号
    • -:左对齐,正数前没有符号,负数前负号
    • 空格:右对齐,正数前空格,负数前负号
    • 0:右对齐,正数前没有符号,负数前负号,用0填充空白处
  • width:可选,字符串所占总宽度
  • .precision:可选,小数点精度
  • typecode:必选,s,d,f 等等

代码示例如下:

#version是指定key值,如果不指定,按照顺序对应
str1="Python%(version)d is '%(how)s'"%{'version':3,'how':'beautiful'}
#%s %.2f %d,float精确度,整数
str2='Python%.1f is "beautiful"'%(2.7)
#d前面的4表示宽度,0表示flags值
str3='heihei%04d'%-3.1212121
#7代表字符串总的所占宽度
str4='xixi%+7.2f'%-2.213
print str1
print str2
print str3
print str4
Python3 is 'beautiful'
Python2.7 is "beautiful"
heihei-003
xixi  +2.21

 2、format格式化:采用{}和:来取代%,[[fill]align][sign][#][0][width][,][.precision][type]

  • fill:可选,空白处填充的字符
  • align:可选,对齐方式(需配合width使用)
    • <:内容左对齐
    • >:内容右对齐(默认)
    • =:内容右对齐,将符号放在填充字符左侧,只对数字类型有效。
    • ^:内容居中
  • sign:可选,有无符号数字
    • +:正号加正,负号加负
    •  -:正号不变,负号加负
    • 空格:正号空格,负号加负
  • #:可选,对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示
  • ,:可选,数字分隔符,eg:1,000,000
  • width:可选,所占宽度
  • .precision:可选,小数位保留精度
  • type:可选,格式化类型 s,f,d

示例代码如下:

args=['Python','2.7']
kw={'name':'Python','version':'2.7'}
#format基本形式
s1="{}{} is beautiful".format('Python','2.7')
#位置参数
s2="{}{} is beautiful".format(*args)
#关键字参数
s3="{name}{version} is beautiful".format(**kw)
#+表示填充的内容 ^表示内容居中,11表示所占位数,.2f表示精度与进制
s4="heihei {:+^11.2f}".format(10.345)
print s1
print s2
print s3
print s4
Python2.7 is beautiful
Python2.7 is beautiful
Python2.7 is beautiful
heihei +++10.35+++

三、字符串操作

1、大小写转换

  • lower():返回字符串小写格式
  • upper():返回字符串大写格式
  • title():返回字符串所有单词首字母大写,其它字母小写的格式
  • capitalize():返回字符串首字母大写,其它所有字母小写的格式

示例代码如下:

str='abc,XYZ'
print str.lower()
print str.upper()
print str.title()
print str.capitalize()
print str.swapcase()
abc,xyz
ABC,XYZ
Abc,Xyz
Abc,xyz
ABC,xyz

2、更新和替换

str.replace(old,new,count):将old字符串替换为new的字符串,count表示前count个被替换

str="Python2.7 is beautiful 2.7"
#1代表,只有前1个被替换
s=str.replace('2.7', '3',1)
print s

注:简单的可以用replace,但是python大部分复杂的字符串替换,会采用正则表达式去匹配和替换。

3、分割和连接

  • split(‘s’,count):用来分割字符串,以‘s'分割,返回一个列表,count表示从左到右分割的次数,还有
  • ’c‘.join(s):表示用’c'连接s,s可以是字符,列表,字典等
  • strip():表示去掉字符串开头和结尾的空格,同理,rstrip(),lstrip()去掉结尾,开头空格
  • 切片:https://blog.csdn.net/weixin_43533825/article/details/83716797,这篇文章里有介绍

示例代码如下:

str="  Python2.7 is beautiful  "
#以t分割,分割一次
s1=str.split('t',1)
#以t分割,再以!连接
s2="!".join(str.split('t'))
#去掉开头结尾空格,再以空格连接
s3=" ".join(str.strip())
#以空格分割,再以空格连接,从下面的字符串长度可以看出作用相当于strip()函数,
s4=" ".join(str.split())
print s1
print s2
print s3
print s4
print len(str),len(s4)
['  Py', 'hon2.7 is beautiful  ']
  Py!hon2.7 is beau!iful  
P y t h o n 2 . 7   i s   b e a u t i f u l
Python2.7 is beautiful
26 22

4、删除字符

有效利用分割,拼接等方法;或者采用strip('a')删除两端的字符

5、遍历

enumerate():用于将可遍历的数据对象(列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用于for循环。

#可以同时输出下标和内容
s="Python"
for i,j in enumerate(s):
    print i,j
seq=["sadf","sdafsdfasdfa","gjgjghj"]
for m,n in enumerate(seq):
    print m,n
#遍历
s="Python"
for i in iter(s):
    print i

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在学习Python字符串的过程中,我发现了一些有用的方法和技巧。首先,我学会了使用capitalize()方法将字符串的首字母大写,以及使用swapcase()方法将字符串的大小写互换。此外,我还学会了使用endwith()和startwith()方法来检查字符串是否以特定的结尾或开头开始。另外,我还学会了使用find()和rfind()方法来查找并返回字符串中特定字符的索引位置。我还学会了使用isnumeric()方法来检查字符串是否只包含数字字符。此外,我还学会了使用ljust()和rjust()方法来对齐字符串的左侧或右侧。我还学会了使用lstrip()和rstrip()方法来删除字符串左侧或右侧的字符。另外,我还学会了使用partition()方法来找到字符串中的特定子字符串并将字符串分成三个元组。如果字符串中不包含该子字符串,则后两个元组为空。我还学会了使用replace()方法将字符串中的旧字符替换为新字符,并可以指定替换的次数。此外,我还学会了使用strip()和split()方法来切割字符串。最后,我还学会了使用format()方法来格式化字符串。通过这些学习,我对Python字符串的使用有了更深入的理解。\[1\] 此外,我还学到了一些关于字符串的其他知识。例如,我了解到可以使用'''或"""来创建包含换行的字符串。我还了解到在字符串中嵌套引号也会被计算为字符数。另外,我还了解到可以使用str()内置类将其他类型的数据转换为字符串。例如,可以使用int()将字符串转换为整数。\[2\]\[3\] 总的来说,通过学习Python字符串,我对字符串的操作和处理有了更深入的了解,并且掌握了一些实用的方法和技巧。这些知识将对我在编程中处理字符串时非常有帮助。 #### 引用[.reference_title] - *1* [2020-9-20 Python 学习心得(字符串)](https://blog.csdn.net/qq_43478017/article/details/108700839)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [python字符串方法小结](https://blog.csdn.net/JaneFree/article/details/123242522)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值