Python-数据类型
一、字符串
# 数字类型:int float # 布尔值:True False # # 字符串:成对的单引号,双引号,三引号 成对的引号中括起来的内容是字符串 a = "hello world" b = """还有更好的在后面""" s = '今天学习字符串了,好开心啊!' c = '0.01' print(s) # 1.计算字符串长度,利用函数len() print(len(a)) # 2.字符串根据索引来确定你要取的值(索引值的位置需要用[]框起来):从头开始 从0开始给元素标位置 # 从尾巴开始 从-1开始标位置,逐步-1继续标 -1 -2 -3 print(b[5]) print(b[-3]) # 3.空字符串 w = "" print(w) # 取多个值怎么取? # 4.切片:方法:字符串名[索引开始位置:索引结束位置:步长] # 取头不取尾,取左不取右(结束是到索引结束位置的前一个内容),步长默认为1 # 不输入索引开始位置和结束位置,默认是一整个字符串 print(s[::2]) a = "hello tester" # 取偶数位的元素 print(a[1::2]) # 反着取元素 print(a[-1:-13:-1]) # 5.格式化输出 {}表示这里要穿一个数据进来,占坑 year = 2019 dream_1 = "瘦20斤" dream_2 = '去斐济岛旅游' dream_3 = '加薪15K' dream_4 = 165.5 print("""今年是{}年,我有4个愿望,分别是: 愿望一:{} 愿望二:{} 愿望三:{} 愿望四:{}""".format(year,dream_1,dream_2,dream_3,dream_4)) # 不指定顺序时,默认从0到最后,按顺序赋值 # 指定的,按照你指定的顺序赋值 # 有的指定值,有的不指定-------是绝对不行的!!!!
字符串操作:
# capitalize():将字符串第一个字母改成大写 str1 = 'xiaoxie' print(str1.capitalize()) # casefold():将整个字符串的所有内容改为小写 str2 = 'DAXIExiaoxie' print(str2.casefold()) # center(width):将字符串居中,并使用空格将字符串填充至width的新字符串 print(str2.center(40)) # count(sub[,start[,end]]):返回sub在字符串中出现的次数,start和end参数表示范围,可选 print(str2.count('xi')) # endswith(sub[,start[,end]]):检查字符串是否以sub字符串结束,如果是返回True,否则返回False,start和end参数表示范围,可选 print(str2.endswith('xi')) print(str2.endswith('xie')) # expandtabs([tabsize=8]):把字符串中的tab符号(\t)转换为空格,如不指定指定参数,默认的空格数是tabsize=8 str3 = 'I \tlove\tyou' print(str3.expandtabs()) # find(sub[,start[,end]]):检测sub是否在字符串中,如果有返回第一个元素的索引值,否则返回-1,start和end参数表示范围,可选 print(str2.find('lo')) print(str2.find('ie')) # index(sub[,start[,end]]):跟find方法一样,不过sub不在string会产生一个异常 # 格式化函数:format()函数可以接受不限个参数,位置可以不按顺序 #位置参数 print('{0} love {1}.{2}'.format('I','fishc','com')) # 关键字参数 print('{a} love {b}.{c}'.format(a ='I',b ='fishc',c ='com')) # 若同时使用位置参数和关键字参数,那么位置参数需要在关键字参数之前 print('{0} love {b}.{c}'.format('I',b ='fishc',c ='com')) # 若需要打印{},需要用{}对其进行转义 print('{{0}}'.format('不打印')) print('{0}'.format('不打印')) # 字符串格式化符号的含义 # %c:格式化字符及其ASCII码 print('%c %c %c' % (97, 98, 99)) # %s:格式化字符串 print('%s' % 'I love you.') # %d:格式化整数 print('%d + %d = %d' % (4, 5, 4+5))
二、元祖
# 元祖 tuple() # 1.空元祖 查看数据类型 type() t=() print(type(t)) # 2.当元祖只有一个数据时,需要加一个逗号,保持元祖属性 a=(1,) print(type(a)) # 3.元祖里面的数据可以是任意数据类型,以逗号进行分隔 t=(1,5.05,"hello",True,(1,"hi",9.99)) print(t) # 4.元祖取值的方法,同字符串 元祖是有索引的,从0开始,有正序也有倒序 # 元祖取单个值,元祖名[索引] print(t[2]) # 5.支持切片,同字符串一样 # 取索引值为偶数的值 print(t[::2]) # 6.嵌套元祖的取值,元祖里面还有元祖或者其他数据类型 print(t[-1][1][-1]) # 7.元祖是个有序不可变数据类型 t[0]=2-------不可以 print(t) # TypeError: 'tuple' object does not support item assignment
元组操作:
# tuple():元组,不能修改其中的内容; tuple1 = (1,2,3,4,5,67,8,9) print(tuple1) print(tuple1[1]) print(tuple1[:5]) print(tuple1[5:]) tuple2 = tuple1[:] print(tuple2) # ,隔开的一组集合的数据,默认就是元组 print(8 * (8)) print(8 * (8,)) # 更新和删除一个元素 # 切片,添加元素/删除元素,整合 temp = ('小甲鱼', '黑夜', '迷途', '小布丁') temp = temp[:2] + ('lisa',) + temp[2:] print(temp) # 直接删除使用del temp = temp[:1] + temp[2:] print(temp) # 序列内置函数 # list():把一个可迭代对象转换为列表 a = list() print(a) b = 'I love you.' b = list(b) print(b) c = (1, 1, 2, 3, 5, 8, 13, 21, 34) c = list(c) print(c) # tuple([interable]):把一个可迭代对象转换为元组 # str(obj):把obj对象转换为字符串 # len(sub):返回sub的长度 print(len(a)) print(len(b)) # max():返回序列或参数集合中的最大值,数据类型需要统一 numbers = [1, -67, 9, 34, 21, 102, -456] print(max(numbers)) # min():返回序列或参数集合中的最小值,数据类型需要统一 print(min(numbers)) # sum(interable[,start=0]):返回序列interable和可选参数start的总和,数据类型需要统一 print(sum(numbers)) print(sum(numbers,12)) # sorted():返回一个排序的列表,默认从小到大,与list.sort()一致 print(sorted(numbers)) # reversed():将序列顺序倒过来,返回的是一个迭代器对象,需要用list转换为列表 print(list(reversed(numbers))) # enumerate():枚举,生成以元素和对应索引值为元组的列表,返回的是一个迭代器对象,需要用list转换为列表 print(list(enumerate(numbers))) # zip():返回由各个参数的序列组成的元组,返回的是一个迭代器对象,需要用list转换为列表 a = [1, 2, 3, 4, 5, 6, 7, 8] b = [4, 5, 6, 7, 8] print(list(zip(a, b)))
三、列表
# 列表 list[] # 1.空列表 查看数据类型 type() L=[] print(type(L)) # 2.列表里面的数据可以是任意数据类型,以逗号进行分隔 L=[1,5.05,"hello",True,(1,"hi",9.99),['teb',9,"小太阳"]] print(L) # 3.列表取值的方法,同字符串 列表是有索引的,从0开始,有正序也有倒序 # 列表取单个值,列表名[索引] print(L[2]) # 4.支持切片,同字符串一样 # 取索引值为偶数的值 print(L[::2]) # 5.嵌套元祖的取值,元祖里面还有元祖或者其他数据类型 print(L[-1][-1][-1]) # 6.列表是个有序不可变数据类型,你可以对他进行修改 L[0]=2 print(L)
列表操作:
# 列表 mix = [1, 2, 3.14, "小甲鱼", [7,9]] print(mix) # 向列表中插入元素 #向列表中插入单个元素,append()只能插入一个元素 mix.append("lisa") print(mix) #向列表中插入多个元素,extend()需要用一个列表扩展另一个列表 mix.extend([1,5.17,"9","Sinimy"]) print(mix) #向列表中指定位置插入元素, insert(元素位置索引值,元素)在指定位置添加指定元素 mix.insert(1,"apple") print(mix) # 将列表中第1,2个元素互换位置 temp = mix[0] mix[0] = mix[1] mix[1] = temp print(mix) # 列表中删除元素 # 直接删除元素,remove()只需要知道元素名称 mix.remove(1) print(mix) # del(是语句,不是函数) 直接删除元素,需要知道元素所在位置的索引;也可以删除整个列表 del mix[1] print(mix) # pop()会返回被删除的元素内容,所以可以赋值;括号中不输入内容是指删除最后一个元素;括号中可以输入对应元素索引值,删除指定元素 mix.pop() print(mix) a = mix.pop() print(a) # 列表的分片:一次性从一个列表中获取多个元素 # 列表名称[开始元素索引下标:结束元素索引下标(不包含)] print(mix[1:4]) print(mix[:3]) print(mix[1:]) mix1 = mix[:] print(mix1) # 拷贝时尽量使用分片,如果直接=的话,只是多了一个指向这个列表的标签,对其中一个列表进行操作,另外一个列表也会发生同样的变化,但是使用分片拷贝则不会 mix = [1,3,2,8,43,45,34,90,34,45] mix2 = mix mix3 = mix[:] print(mix2) print(mix3) mix.sort() print(mix) print(mix2) print(mix3) # 列表的常用操作符 list1 = [123, 456] list2 = [234, 345] print(list1 > list2) #比较列表内容时,只比较第一个元素的大小,不会比较后面的元素大小 list3 = list1 + list2 print(list3) list4 = [123, 456] print(list1 < list2 and list4 == list1) print(list1 *3) print(123 in list1) print('lisa' not in list1) list5 = [123, 234, ['lisa', 123], 'Sinimy'] print('lisa' in list5) print('lisa' in list5[2]) print(list5[2][0]) #访问列表中的列表时,需要在列表名称后面加上对应列表位置的索引再加上对应元素的索引 # 列表中的函数 # count():计算列表中对应参数出现的次数 list3 *= 3 print(list3) print(list3.count(123)) # index():返回参数在列表中的位置;括号中可以填写需要找到的参数的范围,没填默认是从第一个元素开始找,只找第一个出现的参数位置 print(list3.index(123)) print(list3.index(123,1,7)) # reverse():翻转整个列表的前后顺序 list5.reverse() print(list5) # sort():按照指定顺序对列表进行重新排序,默认从小到大;sort()括号中有三个参数,最后一个参数是reverse默认值为false, list6 = [1,7,3,6,4,87,32,90,23] list6.sort() print(list6) list6.sort(reverse=True) #reverse的值为True时,则为由大到小的排序 print(list6)
四、字典
# 字典 dict{} # 1.空字典 查看数据类型 type() d={} print(type(d)) # 2.字典的数据格式:key:value 格式的 # key: 不可变数据类型 -----整数 浮点数 布尔值 元祖 字符串 # value:任何数据类型都支持-----整数 浮点数 布尔值 元祖 字符串 元祖 字典 # key是唯一的,True 1,False 0需要引起注意 d={1:"666", 1.35:"视力", False:{"name":"不想要昵称"}, (1,True,"hi"):[23,'hello',True]} print(d) # 3.字典是可变数据类型,无序的---没有索引 # True 1 False 0 d[False]["name"]='阿拉蕾' print(d) # 4.取值方式 字典名[key] 根据key去取值 print(d[1]) print(d[(1,True,"hi")][1])
字典操作:
# 字典:映射类型(key,value) # index(sub[,start[,end]])检测sub是否在字符串中,如果有返回第一个元素的索引值 brand = ['李宁', '耐克', '阿迪达斯'] slogan = ['一切皆有可能', 'Just do it.', 'Impossible is nothing.'] print('耐克的口号是', slogan[brand.index('耐克')]) # 创建字典 # 字符串类型 dict1 = {'李宁':'一切皆有可能', '耐克':'Just do it.', '阿迪达斯':'Impossible is nothing.'} print('阿迪达斯的口号是:', dict1['阿迪达斯']) # 整型类型 dict2 = {1:'one', 2:'two', 3:'three'} print(dict2[2]) # 创建空字典 dict3 = {} # dict():使用元组赋值,赋值只有有一个元素 dict3 = dict(((1,'one'), (2, 'two'), (3, 'three'))) print(dict3) # 使用=创建字典 dict4 = dict(李宁 ='一切皆有可能', 耐克 ='Just do it.', 阿迪达斯 ='Impossible is nothing.') print(dict4) # 修改字典中元素 dict3[1] = 'oneone' print(dict3) # 新增字典元素:如果输入key值存在字典中,修改原对应value的值;如果不存在,则创建新的元素 dict3[4] = 'four' print(dict3)