字符串和转义字符
- Python2.X则要求在源程序中增加“#coding:utf-8”才能支持中文字符。Python3.X支持中文较好。字符串可以用单引号或者双引号括起来。
- 本身包含单引号或者双引号:
①使用不同的引号将字符串括起来。
str3 = “I‘m a coder”
②对引号进行转义。
str3 = ‘Let\’s hide in the shade’
拼接字符串
一种书写中的特殊方法:(并不能真正用于拼接字符串)
s1 = “Hello,” ‘python’
print(s1)
+号:
s2 = “Python”
s3 = “is Funny”
s4 = s2+s3 print(s4)
repr和字符串
- 字符串和数值进行拼接(Python不允许直接拼接数值和字符串,程序必须先将数值转 换成字符串:str()和repr())
- str()是一个内置函数
- repr()会以Python表达式的形式来表示值。
st = “I will play my life”
print(st)
print(repr(st))
结果:
I will play my life
‘I will play my life’
‘I will play my life’这就是字符串的Python的表达式形式。
- 在交互式解释器中输入一个变量或表达式时,Python会自动使用repr()函数处理该变量或表达式。
使用input和raw_input获取用户输入
input()函数总会将用户输入的内容放入字符串中,输入任何内容,input()函数总是返回 一个字符串。
Python2.X也提供了一个input()函数,但要求用户输入的必须是符合Python语法的表 达式:输入字符串时必须使用双引号,否则Python就会报错。
Python2.X尽量使用raw_input函数来获取用户输入。等同于Python3.X中的input()
长字符串
长字符串中可以放置任何内容,包括放置单引号、双引号都可以。如果没有赋值给任何 变量,长字符串就相当于被解释器忽略了。例如:
s = '''"Let's go fishing", said Mary."OK, Let's go", said her brother.they walked to a lake'''
print(s)
转义字符(\)对内容进行转义,不会中断字符串。写成两行。例如:
s2 = 'The quick brown fox \
jumps over the lazy dog'
print(s2)
Python表达式不能随便换行:(如果换行要使用换行符\)
num = 20 + 3 / 4 + \
2 * 3
print(num)
原始字符串
字符串中包含反斜杠:Windows路径:G:\publish\codes\02\2.4
在Python中需要写成:G:\\publish\\codes\\02\\2.4
原始字符串以r开头,这样就可以直接写:
s1 = r'G:\publish\codes\02\2.4'
print(s1)
原始字符串包含引号,同样需要转义:
s2 = r'"Let\'s go", said LiLei'
print(s2)
原始字符串的结尾处不能是反斜杠。
结尾非要使用反斜杠:
①不使用原始字符串,使用长字符串写法。
②将反斜杠单独写
字节串
- 以字节为单位进行操作;字节串(bytes)由多个字节组成。
- 也是不可变序列。
- 保存的是二进制格式的数据,字节串和字符串可以相互转换。
字符串转换成bytes对象:
①如果字符串内容都是ASCII字符,则可以通过直接在字符串之前添加b来构建字
节串值。
②调用bytes()函数(就是构造方法)将字符串按指定字符集转换成字节串,如果不 指定字符集,默认使用UTF-8字符集。
③调用字符串本身的encode()方法将字符串按指定字符集转换成字节串,如果不指 定字符集,默认使用UTF-8字符集。
# 创建一个空的bytes
b1 = bytes()
# 创建一个空的bytes值
b2 = b''
# 通过b前缀指定hello是bytes类型的值
b3 = b'hello'
# 调用bytes方法将字符串转成bytes对象
b4 = bytes('我爱Python编程',encoding='utf-8')
print(b4)
# 利用字符串的encode()方法编码成bytes,默认使用utf-8字符集
b5 = "学习Python很有趣".encode('utf-8')
print(b5)
- 字节串每个数据单元都是字节,也就是8位,其中每4位可以用一个十六进制数来表 示。(最大15,最小是0)。比如\xe6就是表示1字节,\x表示十六进制,e6就是两位的十六进制数。
- bytes对象的decode()方法将其解码成字符串:例如:
# 将bytes对象解码成字符串,默认使用utf-8进行解码。
st = b5.decode('utf-8')
print(st) # 学习Python很有趣
- 字符集概念介绍(可以到网上找找资料)