轻松熊喵喵个人笔记 -- Python字符串(上)


字符串基本特点

  很多人初学编程时,总是担心自己数学不行,潜意识里认为数学好才能编程。实际上大多数程序员打交道最多的是“字符串”而不是“数字”。因为,编程是用来解决现实问题的,因此逻辑思维的重要性远远超过数学能力。

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

  Python 不支持单字符类型,单字符也是作为一个字符串使用的。


字符串的编码

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

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

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

>>> ord('A')
65
>>> ord('轻')
36731
>>> chr(66)
'B' 
>>> ord('松')
26494

引号创建字符串

  我们可以通过单引号或双引号创建字符串。例如:a=’abc’; b=”sxt”

  使用两种引号的好处是可以创建本身就包含引号的字符串,而不用使用转义字符。例如:

>>> a = "I'm a teacher!" >>> print(a)
I'm a teacher!
>>> b = 'my_name is "TOM"' >>> print(b)
my_name is "TOM" 

  连续三个单引号或三个双引号,可以帮助我们创建多行字符串。例如:

>>> resume = ''' name="qingsongxiong" company="dancer" age=18
lover="Tom"''' 
>>> print(resume)
name="qingsongxiong" company="dancer" age=18
lover="Tom" 

空字符串和 len()函数

  Python 允许空字符串的存在,不包含任何字符且长度为 0。例如:

>>> c = '' >>> len(c)
0

  len()用于计算字符串含有多少字符。例如:

>>> d = 'abc 轻松熊' >>> len(d)
6

转义字符

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

【操作】测试转义字符的使用

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

字符串拼接

  1. 可以使用+将多个字符串拼接起来。例如:’aa’+ ’bb’ ==>’aabb’。
    (1) 如果+两边都是字符串,则拼接。
    (2) 如果+两边都是数字,则加法运算。
    (3) 如果+两边类型不同,则抛出异常。

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

>>> a = 'dancer'+'qingsongxiong' 
>>> a
'dancerqingsongxiong' 
>>> b = 'dancer''qingsongxiong' 
>>> b
'dancerqingsongxiong' 

字符串复制

  使用*可以实现字符串复制。
【操作】字符串复制操作

>>> a = 'Dancer'*3
>>> a
'DancerDancerDancer' 

不换行打印

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

  建立源文件 mypy_06.py:

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

运行结果:

Dancer Dancer##Dancer

从控制台读取字符串

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

>>> myname = input("请输入名字:")
请输入名字:轻松熊喵喵
>>> myname
'轻松熊喵喵' 

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

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

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

  当我们调用 print()函数时,解释器自动调用了 str()将非字符串的对象转成了字符串。我们在面向对象章节中详细讲解这部分内容。 使用[]提取字符字符串的本质就是字符序列,我们可以通过在字符串后面添加[],在[]里面指定偏移量,可以提取该位置的单个字符。

正向搜索:
  最左侧第一个字符,偏移量是 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

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、付费专栏及课程。

余额充值