String字符串使用方法


  • 关键词:String字符串

  • 摘要:String字符串的使用方法


目录

一、字符串基础

1、python字符串的特点

2、引号创建字符串

3、字符串的拼接、复制和比较

4、常用转义字符

5、len()函数

6、str()函数

二、字符串操作

1、使用[]提取字符

2、用replace替换字符串

3、字符串切片 str[::] 操作

4、split()与 join()函数分割、合并字符串

三、字符串常用操作汇总

1、常用查找方法

2、大小写转换

3、格式排版

四、format()函数实现字符串格式化

1、format()函数基本使用方法

2、填充与对齐

3、数字格式化


一、字符串基础

1、python字符串的特点

  • Python 的字符串是不可变的,我们无法对原字符串做任何修改。
  • 但可以将字符串的一部分复制到新创建的字符串,达到“看起来修改”的效果。
  • Python 不支持单字符类型,单字符也是作为一个字符串使用的。
  • Python3 的字符默认就是 16 位 Unicode 编码,可用ord()或 chr()进行转换。
##ord()函数将字符转换为Unicode编码
>>> ord('A')
65
>>> ord('高')
39640
##chr()函数将Unicode编码转换为字符
>>> chr(66)
'B'
>>> ord('淇')
28103

2、引号创建字符串

  • 单引号与双引号的混合使用,可用避免使用转义字符:
>>> a = "I'm a teacher!"
>>> b = 'my name is "TOM"'
  • 三引号可以帮助我们创建多行字符串
>>> resume = ''' name="gaoqi"
company="sxt" age=18
lover="Tom"'''
>>> print(resume)
name="gaoqi"
company="sxt" age=18
lover="Tom"
##resume是一个str类型变量,只是其有三行而已
##不是说里面有四个变量
>>> print(type(resume))
<class 'str'>

3、字符串的拼接、复制和比较

  • 可用 + 和 * 直接进行字符串的拼接与复制(但建议用join()函数进行拼接)
>>> a = "y" + "z"
>>> b = "x" + a
>>> print(b)
xyz

4、常用转义字符

转义字符描述
\(行尾)续行符
\b退格(Backspace)
\n换行
\t横向制表符
\r回车
  • 若代码太多,一行放不下,可使用换行符 \ 转到下一行继续写;
  • 若未使用换行符直接敲回车键,将产生错误
>>> print("aaa\
bbb")
aaabbb

5、len()函数

  • len()函数用于计算字符串含有多少字符
  • 其中,空格是空格字符,而非空字符
##字符串
>>> str = "abc"
>>> print(len(str))
3
##空格字符
>>> str = " "
>>> print(len(str))
1
##空字符
>>> str = ""
>>> print(len(str))
0

6、str()函数

  • str()可将其他数据类型转换为字符串
  • 当调用 print()函数时,解释器自动调用了str()函数将非字符串的对象转成了字符串
str(5.20) ==> ‘5.20’  
str(3.14e2)==>’314.0’ 
str(True) ==> ‘True’

二、字符串操作

1、使用[]提取字符

  • 被 [] 提取出的字符不可重新赋值,Python 的字符串不可变
  • 正向搜索:最左侧第一个字符偏移量是 0,第二个偏移量是 1,直到 len(str)-1为止
  • 反向搜索:最右侧第一个字符偏移量是-1,倒数第二个偏移量是-2,直到-len(str)为止
>>> a = 'abcdefg'
##正向搜索
>>> a[0]
'a'
>>> a[6]
'g'
##反向搜索
>>> a[-1]
'g'
>>> a[-7]
'a'

2、用replace替换字符串

用replace(str1,str2)函数将原字符串进行替换从而实现更改

  • str1可使用str[]的形式实现更改特定位置的字符
  • 若str1在原字符串中出现多次,则每个都会被替换
>>> str = "abc"
>>> str = str.replace(str[2],"nn")
>>> str
'abnn'
>>> str = str.replace("n","x")
>>> str
'mbxx'

3、字符串切片 str[::] 操作

切片(slice)操作可以让我们快速的提取子字符串。标准格式为:

str[起始偏移量 start:终止偏移量 end:步长 step]

操作和说明示例结果
[:] 提取整个字符串“abcdef”[:]“abcdef”
[start:]从 start 索引开始到结尾“abcdef”[2:]“cdef”
“abcdef”[-3:]“def”
[:end]从头开始到 end-1“abcdef”[:2]“ab”
[start:end]从 start 到 end-1“abcdef”[2:4]“cd”
“abcdef”[-3:-4]“cd”
[start: end:step]从 start 提取到end-1,步长是 step“abcdef”[1:5:2]“bd”
“abcdef”[::-1]‘fedcba’

*若切片范围超过字符串也不会报错,只会截取字符串拥有的一段

4、split()与 join()函数分割、合并字符串

split()可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中)。

如果不指定分隔符,则默认使用空白字符(换行符/空格/制表符)。

join()函数也是基于列表来操作,其作用和 split()作用相反。

*使用字符串拼接符+,会生成新的字符串对象,因此不推荐使用+来拼接字符串。

*推荐使用 join 函数,因为 join 函数在拼接字符串之前会计算所有字符串的长度,然后逐一拷贝,仅新建一次对象。

>>> a = "a b c * c b a"
##不指定分隔符
>>> a.split()
['a', 'b', 'c', '*', 'c', 'b', 'a']
##指定分隔符
>>> a.split(" * ")
['a b c', 'c b a']
>>> n = ['a','b','c']
>>> '*'.join(n)
'a*b*c'

三、字符串常用操作汇总

1、常用查找方法

a=’’‘abcdfe_a’’

方法和使用示例说明结果
a.startwith("a")判定是否以指定字符串开头True
a.endwith("a")判定是否以指定字符串结尾True
a.find(‘c’)查找第一次出现指定字符串的位置2
a.rfind("a")查找最后一次出现指定字符串的位置7
a.count("a")查找指定字符串出现了几次2
a.isalnum()判定是否所有字符全是字母或数字Flase

2、大小写转换

a = “gaoqi love programming, loveSXT”

示例说明结果
a.capitalize()产生新的字符串,首字母大写‘Gaoqi love programming, love sxt’
a.title()产生新的字符串,每个单词都首字母大写‘Gaoqi Love Programming, Love Sxt’
a.upper()产生新的字符串,所有字符全转成大写‘GAOQI LOVE PROGRAMMING,LOVESXT’
a.lower()产生新的字符串,所有字符全转成小写‘gaoqi love programming, love sxt’
a.swapcase()产生新的,所有字母大小写转换‘GAOQI LOVE PROGRAMMING, LOVEsxt’

3、格式排版

使用center()、ljust()、rjust()函数对字符串进行排版

>>> a="SXT"
>>> a.center(10)
'   SXT    '
>>> a.ljust(10)
'SXT       '
>>> a.rjust(10,"*")
'*******SXT'

四、format()函数实现字符串格式化

1、format()函数基本使用方法

可以通过{索引} / {参数名},直接映射参数值,实现对字符串的格式化(常用)

##使用次序映射
>>> str = "他的名字是{0},年龄是{1}。{0}是个好小伙。"
>>> str.format('Tom',19)
他的名字是Tom,年龄是19。Tom是个好小伙。'
##使用名称映射
>>> str = "他的名字是{name},年龄是{age}。{name}是个好小伙。"
>>> str.format(name='Tom',age=19)
他的名字是Tom,年龄是19。Tom是个好小伙。'

2、填充与对齐

  • ^、<、>分别是居中、左对齐、右对齐,后面带宽度
  • :号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
>>> "{:*>8}".format("245")
'*****245'
>>> "我是{0},我喜欢数字{1:*^8}".format("高淇","8")
'我是高淇,我喜欢数字***8****'

3、数字格式化

  • 浮点数通过 {:f} 格式化

  • 整数通过 {:d} 进行格式化

>>> a = "我是{0},我的存款有{1:.2f}"
>>> a.format("高淇",3888.234342)
'我是高淇,我的存款有 3888.23'

版权声明:本文为CSDN博主「闲鱼!!!」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43158056/article/details/92798114

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值