首页 > 编程语言 >Python 字符串

Python 字符串

时间:2022-12-21 23:00:32浏览次数:45  
标签:字符 format Python 高淇 sxt str 字符串

目录

Python 字符串

字符串基本特点

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

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

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

字符串的编码

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

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

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

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

引号创建字符串

我们可以通过单引号或双引号创建字符串。例如: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="gaoqi" company="sxt" age=18
lover="Tom"''' 
>>> print(resume)
name="gaoqi" company="sxt" age=18
lover="Tom"

空字符串和 len()函数

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

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

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

>>> d = 'abc 尚学堂' >>> len(d)
6

转义字符

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

转义字符 描述
\(在行尾时) 续行符
\\ 反斜杠符号
' 单引号
" 双引号
\b 退格(Backspace)
\n 换行
\t 横向制表符
\r 回车

字符串拼接

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

    (1) 如果+两边都是字符串,则拼接。

    (2) 如果+两边都是数字,则加法运算。

    (3) 如果+两边类型不同,则抛出异常。

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

不换行打印

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

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

input

我们可以使用 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,而不是修改了以前的字符串。 内存图如下:

字符串切片 slice 操作

切片 slice 操作可以让我们快速的提取子字符串。标准格式为:
[起始偏移量 start:终止偏移量 end:步长 step]

典型操作(三个量为正数的情况)如下:

操作和说明 示例 结果
[:] 提取整个字符串 “abcdef”[:] “abcdef”
[start:]从 start 索引开始到结尾 “abcdef”[2:] “cdef”
[:end]从头开始知道 end-1 “abcdef”[:2] “ab”
[start:end]从 start 到 end-1 “abcdef”[2:4] “cd”
[start

标签:字符,format,Python,高淇,sxt,str,字符串
From: https://www.cnblogs.com/thankcat/p/16997416.html

相关文章