容器类型
字符串 str
定义:由一系列字符组成的不可变序列容器,存储的是字符的编码值。
编码
- 字节byte:计算机最小存储单位,等于8 位bit.
- 字符:单个的数字,文字与符号。
- 字符集(码表):存储字符与二进制序列的对应关系。
- 编码:将字符转换为对应的二进制序列的过程。
- 解码:将二进制序列转换为对应的字符的过程。
- 编码方式:
- ASCII编码:包含英文、数字等字符,每个字符1个字节。
- GBK编码:兼容ASCII编码,包含21003个中文;英文1个字节,汉字2个字节。
- Unicode字符集:国际统一编码,旧字符集每个字符2字节,新字符集4字节。
- UTF-8编码:Unicode的存储与传输方式,英文1字节,中文3字节。
- 相关函数
- ord(字符串):返回该字符串的Unicode码。
- chr(整数):返回该整数对应的字符串。
# 1.在终端中获取一个字符串,打印出每个文字的编码值
str01 = input("请输入一个字符串:")
for item in str01:
print(ord(item))
# 2.在终端中,循环录入编码值,打印每个文字
# 要求:如果录入空字符串则程序退出
while True:
num = input("请输入编码值:")
if num == "":
break
num = int(num)
print(chr(num))
字面值
单引和双引号的区别
- 单引号内的双引号不算结束符
- 双引号内的单引号不算结束符
三引号作用
- 换行会自动转换为换行符\n
- 三引号内可以包含单引号和双引号
- 作为文档字符串
# 双引号
name01 = "小白"
# 单引号
name02 = '小白'
# 三引号(可见即所得)
name03 = '''小白'''
name04 = """小白"""
message = '我叫"小白".'
message = "我叫'小白'."
message = """我叫'小"白"啊'."""#三引号内可以包含单引号和双引号
转义字符
- 改变字符的原始含义。
\’ \” \””” \n \ \t \0 空字符 - 原始字符串:取消转义。
a = r”C:\newfile\test.py”
# 转义字符:改变字符的原始含义。
# \" \' \\
message = "我叫\"齐天大圣\"."
url = "C:\\arogram Files\\bntel\cedia SDK"
# 原始字符串:没有转义字符
url = r"C:\arogram Files\bntel\cedia SDK"
print(url)
# \t 水平制表格
print("我爱\t编程.")
# \n 换行
print("我爱\n编程.")
字符串格式化
- 定义:
生成一定格式的字符串。 - 语法:
字符串%(变量)
“我的名字是%s,年龄是%d” % (name, age) - 类型码:
%s 字符串 %d整数 %f 浮点数
# 字符串格式化
name = "zza"
age = 20
score = 66.66
print("我的名字是%s,年龄是%d,成绩是%.3f" % (name, age, score))
#%.f 小数点后数字为保留多少位小数 如:1.2345 %.2f -->1.23
day = 5
hour = 4
minute = 30
# print(day + "天" + hour + "小时" + minute + "分钟")
print("%d天%d小时%d分钟"%(day,hour,minute))
通用操作
数学运算符
- +:用于拼接两个容器
- +=:用原容器与右侧容器拼接,并重新绑定变量
- *:重复生成容器元素
- *=:用原容器生成重复元素, 并重新绑定变量
- < <= > >= == !=:依次比较两个容器中元素,一但不同则返回比较结果。
# 算数运算符
# -- +容器元素拼接
name01 = "小"
name01 += "白"
print(name)# 小白
# -- *容器元素重复多次
name02 = "小白"
name02 *= 2
print(name02)# 小白小白
# 依次比较两个容器中元素,一但不同则返回比较结果。
print("小白" > "大白")
成员运算符
- 语法:
数据 in 序列
数据 not in 序列 - 作用:
如果在指定的序列中找到值,返回bool类型。
# 成员运算 in not in
print("我爱" in "我爱你") # true
print("爱我" in "我爱你") # flase
索引index
- 作用:定位单个容器元素
- 语法:容器[整数]
- 说明:
正向索引从0开始,第二个索引为1,最后一个为len(s)-1。
反向索引从-1开始,-1代表最后一个,-2代表倒数第二个,以此类推,第一个是-len(s)。
message = "我是小白啊."
# 索引:定位单个元素
print(message[1])#是
print(message[-2])#啊
# 索引越界
# print(message[7])# 报错 IndexError
# print(message[-8])# 报错 IndexError
切片slice
- 作用: