1.Unicode字符串
在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,这样能够表示更多的字符集。使用的语法是在字符串前面加上前缀u
在Python3中,所有的字符串都是Unicode字符串
2.字符串的表示方式
在python中,字符串有4中表示方式:
# 单引号
A='Hello'
# 双引号
B="Hello"
# 三单引号
C='''Hello'''
#三双引号
D="""Hello"""
print("A:"+A+"\nB:"+B+"\nC:"+C+"\nD:"+D)
'''结果相同
A:Hello
B:Hello
C:Hello
D:Hello
'''
区别:
- 双引号、单引号避免使用转义字符。当字符串中含有引号(如单引号)时,使用与该引号不同(如双引号)包含字符串可以直接使用该引号而不需进行字符转义:
# 使用转义字符的例子:
print('I\'m learning Python')
# out: I'm learning Python
#使用双引号包含字符串不需使用转义字符串:
print("I'm learning Python")
# out: I'm learning Python
#另一个例子:
print('I have learnt "Python" language')
# out: I have learnt "Python" language
- 三引号使长字符串可直接跨行
(1) 单双引号表示的字符串通常要写成一行:
s = 'I am learning Python'
(2) 如果要写成多行,就要使用(连行符):
s = "I am learning" \
"Python"
(3) 但是如果你使用三引号,就可以不使用连行符了:
s = """I am learning
Python"""
- 过长字符串的表示
除了上面所说的使用三单引号或三双引号以及连行符" \ "进行长字符串的跨行表示外,还可以使用圆括号将字符串跨行连接在一起:
s= ("I am a "
"student")
print(s) # out: I am a student
3.转义字符串
转义字符 | 含义 |
---|---|
\newline | 忽略换行 |
\ | 续行符 |
\ | 打印结果中间隔了一个反斜杠 |
' | 单引号 |
" | 双引号 |
\a | 响铃 |
\b | 退格 |
\e | 转义 |
\f | 换页 |
\r | 回车 |
r | 取消转义 |
\n | 换行 |
\t | 横向制表符 |
\v | 纵向制表符 |
\oyy | 八进制数,yy代表的字符,例如:\o12代表换行 |
\xyy | 十六进制数,yy代表的字符,例如:\x0a代表换行 |
\other | 给定名称的Unicode字符,name是一个标准Unicode名称 |
r:取消转义字符的作用——原始字符串
在字符串前使用r前缀,能够使字符串中的转义字符失去转义作用而直接作为字符串输出。例如:
print("C:\nowhere") # 我们想输出C:\nowhere
# 结果却发生了转义:
'''
C:
owhere
'''
# 这时应该使用r产生原始字符串:
print(r"C:\nowhere")
# out: C:\nowhere
4.字符串拼接(包含字符串拼接数字)
连续的两个“” “”可以使两个双引号内的字符串拼接在一起。而实际上这并不是拼接字符串,只是一种书写字符串的特殊方式
print("hello" "world")
# out: hello world
4.1 字符串与字符串的拼接
strname = "str1" "str2"
strname 表示拼接以后的字符串变量名,str1 和 str2 是要拼接的字符串内容。使用这种写法,Python 会自动将两个字符串拼接在一起。
x = "hello"
y = "world"
info = x + y
print(info) # out: helloworld
4.2 字符串和数字的拼接
在Python 不允许直接拼接数字和字符串,所以必须先将数字转换成字符串。
需要借助
str()
和repr()
函数将数字转换为字符串,它们的使用格式为:
str(obj)
repr(obj)
obj 表示要转换的对象,它可以是数字、列表、元组、字典等多种类型的数据。
name = "小明"
age = 8
info = "今年" + name + "已经" + str(age) + "岁了"
print(info) # out: 今年小明已经8岁了
5.数值转换为字符串:str()
与repr()
str()
和 repr()
的区别
str()
和 repr()
函数虽然都可以将数字转换成字符串,但两者之间的目标不同:
-
str()
主要面向用户,其目的是可读性,返回形式为用户友好性和可读性都较强的字符串类型; -
repr()
面向的是python解释器,或者说开发人员,其目的是准确性,其返回值表示python解释器内部的含义,常作为编程人员debug用途。
repr()
的返回值一般可以用eval()
函数来还原对象,通常来说有如下等式:
obj = eval(repr(obj))