day 09 元组和字符串
元组
1)元组是容器型数据类型;将()作为容器的标志,里面多个元素用逗号给隔开:(数据1,数据2,数据3,…)
元组是不可变的(不支持增删改);有序的(支持下标,遍历,切片)
元素没有要求
2)只有一个元素的元组:唯一的元素后面比较加逗号,
3)没有歧义的时候,元组的()可以省略
4)解包:使用多个变量直接获取元组,列表中多个元素
5)元组是不可变的列表
t1=(10,)
print(t1)
t2=10,20,30
x,y,z=t2
print(x,y,z) # 10,20,30
字符串
1)字符串是容器型数据类型(字符串对应的容器只能保存多个文字符号-字符)
将’'或者""作为容器的标志,里面的每一个元素就是字符串中的每一个元素
字符串是不可变的(不支持增删改),有序的(支持下标,遍历,切片)
字符串不可变,所有的可变操作都是创建新的字符串完成的
字符串分为普通字符和转义字符
转义字符:由\和另外一个或者多个符号一起组合而成,具有特殊意义或者特殊功能的字符串
转义字符是固定的
常见的转义字符:
\n
-换行
\t
-制表符,4个空格
\'
-表示一个普通的单引号
\"
-表示一个普通的双引号
\\
-表示一个普通的反斜杠
利用’',"的切换完成字符串中带"的操作
str='\n\m'
print(str)
str='It\'s me!'
print(str)
str="I say:'see you'"
print(str)
str='1"30\''
print(str)
2.r字符串-在字符串引号前加上r或R,可以让字符串中所有的转义字符功能失效
常用于地址的引用
补充:常见进制表示
10进制:0-9组成的数字
二进制-0和1组成的数字,用0b
表示
8进制-用0-7组成的数字,用0o
表示
16进制-用0-9和a-f组成的数字,用0x
表示
字符编码
简单来说就是存储文本信息的数字
1)ASCII码表:共有128个字符,包含常见的英文,数字,和字母
0-9:48-57
A-Z:65-90
a-z:97-122
2)uniconde编码表:万国码,统一码
中文编码:4e00-9fa5 (十六进制)
编码值的应用:
1)chr(编码值)-获取指定编码值对应的字符
2)ord(字符)-获取指定字符的编码值(10进制返回值)
# 案例:将小写字母转换成大写字母
# A-65 a -97 32
# B-66 b-98 32
c1='m'
print(chr(ord(c1)-32)) # M
3)编码字符表示方法:直接提供字符,也可以提供编码字符、\u+4位16进制编码值
# 案例:判断保存的字符是否是中文
c2='n'
if '一'<=c2<='\u9fa5':
print(c2,'是')
else:
print(c2,'不是')
两个字符串比较大小,比较的是第一对不相等的字符的编码值的大小
print('asd'>'Asd') # True
字符串的基本操作
1.查:下标,遍历,切片都可以
massage='hello python!'
print(massage[0],massage[-1],massage[4]) # h ! o
print(massage[1:-1:2]) # el yhn
print(massage[1:4:-1]) # ''
print(massage[2:]) # llo python!
print('-------------------------------分割线----------------------------------------')
for i in massage:
print(i)
print('-------------------------------分割线----------------------------------------')
for i in range(len(massage)):
print(i,massage[i])
2.+,*
字符串1+字符串2 --将两个字符串合并,产生新的字符串
字符串*N -重复N次产生新的字符串
3.in和not in
字符串1 in 字符串2 -判断字符串2中是否包含字符串1
str2='hello'
print('a'in str2) # F
print('h'in str2) # T
print('he'in str2) # T
print('hl'in str2) # F