Python字符串全解(一)

字符串的本质是:字符序列。Python 的字符串是不可变的,我们无法对原字符串做任 何修改。但,可以将字符串的一部分复制到新创建的字符串,达到“看起来修改”的效果。

一、Unicode字符集

Python3 直接支持 Unicode,可以表示世界上任何书面语言的字符。Python3 的字符 默认就是 16 位 Unicode 编码,ASCII 码是 Unicode 编码的子集。

使用内置函数 ord()可以把字符转换成对应的 Unicode 码;

使用内置函数 chr()可以把十进制数字转换成对应的字符。

>>> ord('A')
65
>>> ord('高')
39640
>>> chr(66)
'B' 
>>> ord('淇')
28103

二、创建字符串

我们可以通过单引号或双引号创建字符串。使用两种引号的好处是可以创建本身就包含引号的字符串,而不用使用转义字符。连续三个单引号或三个双引号,可以帮助我们创建多行字符串。

例如:

>>> a = "I'm a teacher!" 
>>> print(a)
I'm a teacher!

>>> b = 'my_name is "TOM"' 
>>> print(b)
my_name is "TOM"

>>> resume = ''' name="gaoqi" 
company="sxt" age=18
lover="Tom"''' 
>>> print(resume)
name="gaoqi" 
company="sxt" age=18
lover="Tom"

三、转义字符

我们可以使用“\+特殊字符”,实现某些难以用字符表示的效果。比如:换行等。常见的转义字符有这些:

示例:

>>> a = 'I\nlove\nU' 
>>> a
'I\nlove\nU' 
>>> print(a)
I
love
U
>>> print('aaabb\
cccddd')
aaabbcccddd

四、字符串基本操作

1、字符串拼接

可以使用+将多个字符串拼接起来。例如:’aa’+ ’bb’ ==>’aabb’。

(1) 如果+两边都是字符串,则拼接。 (2) 如果+两边都是数字,则加法运算。(3) 如果+两边类型不同,则抛出异常。

. 可以将多个字面字符串直接放到一起实现拼接。例如:’aa’’bb’==>’aabb’

示例:

>>> a = 'sxt'+'gaoqi' 
>>> a
'sxtgaoqi' 

>>> b = 'sxt''gaoqi' 
>>> b
'sxtgaoqi'

2、字符串复制

使用*可以实现字符串复制。

示例:

>>> a = 'Sxt'*3
>>> a
'SxtSxtSxt'

3、不换行打印

我们前面调用 print 时,会自动打印一个换行符。有时,我们不想换行,不想自动添加换行符。我们可以自己通过参数 end = “任意字符串”。实现末尾添加任何内容:

示例:

print("sxt",end=' ')
print("sxt",end='##')
print("sxt")

运行结果:sxt sxt##sxt

4、从控制台读取字符串

我们可以使用 input()从控制台读取键盘输入的内容

>>> myname = input("请输入名字:")
请输入名字:小丫
>>> myname
'小丫'

5、str()实现数字转型字符串

str()可以帮助我们将其他数据类型转换为字符串。例如:

str(5.20) ==> ‘5.20’    str(3.14e2)==>’314.0’     str(True) ==> ‘True’

6、使用[]提取字符

字符串的本质就是字符序列,我们可以通过在字符串后面添加[],在[]里面指定偏移量, 可以提取该位置的单个字符。

正向搜索: 最左侧第一个字符,偏移量是 0,第二个偏移量是 1,以此类推。直到 len(str)-1 为止。

反向搜索: 最右侧第一个字符,偏移量是-1,倒数第二个偏移量是-2,以此类推,直到-len(str) 为止。

示例:

>>> a = 'abcdefghijklmnopqrstuvwxyz' 
>>> a
'abcdefghijklmnopqrstuvwxyz' 
>>> a[0]
'a' 
>>> a[3]
'd' 
>>> a[26-1]
'z' 
>>> a[-1]
'z' 
>>> a[-26]
'a' 
>>> a[-30]
Traceback (most recent call last):
File "<pyshell#91>", line 1, in <module>
a[-30]
IndexError: string index out of range

7、replace()实现字符串替换

字符串是“不可改变”的,我们通过[]可以获取字符串指定位置的字符,但是我们不能改变 字符串。我们尝试改变字符串中某个字符,发现报错了:

>>> a = 'abcdefghijklmnopqrstuvwxyz' 
>>> a
'abcdefghijklmnopqrstuvwxyz' 
>>> a[3]='高' 
Traceback (most recent call last):
  File "<pyshell#94>", line 1, in <module>
    a[3]='高'
TypeError: 'str' object does not support item assignment

字符串不可改变。但是,我们确实有时候需要替换某些字符。这时,只能通过创建新的字符 串来实现。

>>> a = 'abcdefghijklmnopqrstuvwxyz' 
>>> a
'abcdefghijklmnopqrstuvwxyz' 
>>> a = a.replace('c','高')
'ab 高 defghijklmnopqrstuvwxyz'

整个过程中,实际上我们是创建了新的字符串对象,并指向了变量 a,而不是修改了以前的 字符串。 内存图如下:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值