CSIC_716_20191105【数字、字符串、列表】
python数据类型及其内置方法
一、整型:主要用于数学运算
其他进制----->转十进制
""" 其他进制转换为十进制 通过int('x进制数',x)实现 """ a = int('110', 2) print(a) # 6 b = int('7731', 8) print(b) # 4057 c = int('e1f3', 16) print(c) # 57843
十进制----->转其他进制
十进制(decimal)进制转其他进制 ''' a = bin(8) print(a) # 转二进制(binary) 0b1000 b = oct(100) print(b) # 转八进制(octal) 0o144 c = hex(93332) print(c) # 转十六进制(hexadecimal) 0x16c94
整型:是无序的,不可变的,存的是一个值。
是否有序:判断是否有序,就看其能否通过索引取值
是否可变:判断是否可变,规则为:如果值变id不变,说明该类型可变;如果值变id也变,说明该类型不可变
二、字符串
1、字符串的定义方式:
单、双、三引号可以定义字符串,在字符串引号前加字母‘r’,可以将字符串中的特殊字符转义。
2、取值
字符串可以通过索引取值,取到字符串中某个位置的值,但是取出来只能显示不可更改。
''' 字符串取值 ''' str1 = 'abcdefgh' print(str1[1:4]) print(str1[0:4]) #索引取值,顾头不顾尾,故只能取0,1,2,3中的值 print(str1[:4]) #[:4]和[0:4]效果一样 print(str1[4:]) print(str1[4:len(str1)]) #[7:]和[7:len()]效果一样 print(str1[1:4:2]) #步长为2,跳两步取值 print(str1[::-1]) #从后往前,反向取值 print(str1[::-2]) #从后往前,跳两步取值
5、左右两端去特殊字符操作 .strip("特殊字符" ) ;
左端去特殊字符操作 .lstrip("特殊字符" )
右端去特殊字符操作 .rstrip("特殊字符")
6、切分字符串
''' split切分字符串 ''' a = 'bravehearthearmeroar' print(a.split('h')) # ['brave', 'eart', 'earmeroar']
切分字符串之后,指定字符不会出现在结果列表中,
7、字符串长度,或者说字符串中元素的个数,包含空格
''' len()获取当前数据中的元素的个数 ''' a = 'bravehearthearmeroar' print(a.__len__()) print(len(a))
8、字符串可以通过for循环逐个取出其中的元素。
''' for循环取字符串中的元素 ''' a = 'bravehearthearmeroar' print(type(len(a))) for i in range(len(a)): print(a[i], end=' ') # b r a v e h e a r t h e a r m e r o a r
9、杂项
字母转大写,字母转小写
大写:upper(),小写:lower()
判断是否已symbol开头 startswith( "symbol"),
判断是否以symbol结尾 endswith( "symblo") 结果为布尔值。
isdigtal( “”symbol”) 判断symbol中传入的值,是否是数字
注意:输入浮点数也不行,isdigtal只能判断是否是int型整数
a = '2.1' print(a.isdigit()) # False
(“分隔符”).join( 可迭代对象)
join方法的应用原理:将可迭代对象中的每个元素,按照分隔符拼接成字符串
for example:
a = 'bravehearthearmeroar' print('|'.join(a)) #b|r|a|v|e|h|e|a|r|t|h|e|a|r|m|e|r|o|a|r
replace(" 旧 "," 新 ") 将字符中所有的旧的元素,换成新的元素
a = 'bravehearthearmeroar' print(a.replace('he', '**')) # brave**art**armeroar
10、center( (int型)个数,‘symbol’)
a = '欢迎光临' print(a.center(15,'8')) # 888888欢迎光临88888 print(a.center(14,'-')) # -----欢迎光临-----
字符串是有序的,不可变的,存储的是一个值
三、列表
1、列表取值:列表通过索引取值,不仅可以取值,还可以通过索引改值。
2、索引切片:
l1 = [0,1,2,3,4,5,6,7] print(l1[1]) # 1 print(l1[1:4]) # [1, 2, 3] print(type(l1[1:4])) # <class 'list'>
索引切片,取出来的东西是列表
3、列表的增加操作
.append( "追加一个值"),追加在列表的最后
.insert( 指定索引,‘插入的值’)
.extend( 可迭代对象) 通过可迭代对象,传入可迭代对象中的所有值
''' append insert extand ''' l1 = [0,1,2,3,] l1.append('append') # [0, 1, 2, 3, 'append'] print(l1) l1.insert(3,'insert3') #insert(指定索引值,插入内容) print(l1) # [0, 1, 2, 'insert3', 3, 'append'] l2 = ['extend1','extend2'] # l2是可迭代对象iterable l3 = range(4) # l3是可迭代对象iterable l1.extend(l2) print(l1) # [0, 1, 2, 'insert3', 3, 'append', 'extend1', 'extend2'] l1.extend(l3) print(l1) # [0, 1, 2, 'insert3', 3, 'append', 'extend1', 'extend2', 0, 1, 2, 3]
4、列表的删除操作
remove(指定的值) 直接从列表中删除指定的值,此方法不通过索引
pop(索引) 如果pop方法中不传值,则从最后倒着删除,如果传索引,则删除索引处的值
''' remove pop ''' l1 = [0, 1, 2, 3, 4, 5, 6] a = l1.remove(3) print(a) # None 不返回参数 print(l1) # [0, 1, 2, 4, 5, 6] b = l1.pop() print(b) # 6 未指定pop的参数,所以删除最后一个,并能返回删除的值 print(l1) # [0, 1, 2, 4, 5] c = l1.pop(1) print(c) # 1 print(l1) # [0, 2, 4, 5]
remove没有返回值;pop有返回值