python3.x基础数据类型
输入输出基本数据类型重要数据结构
列表元组字典bytes字节Set集合
python3.x基础数据类型anaconda3搭建自寻
anaconda3启动jupyter
jupyter notebook --ip=0.0.0.0 --port=8080 --allow-root --no-browser输入输出
# 输出传参 name = 'xiao' age =22 print("我的名字为%s,年龄为%d"%(name,age)) # 键盘输入 # input返回时字符串 name = input('enter your name:') print("我的名字是%s"%(name)) # 如若输出为%d,则会出错基本数据类型
命名规范只能是字母、数字和下划线,且不能以数字开头
数字类型
整型、浮点型、复数
a = 1 print(id(a)) a = 2 print(id(a)) 140058553432368 140058553432400 # 两次的结果是不一样的,表示内存地址位置不同,开辟了新空间 score =99 print(type(score)) num= float(score) print(num)99.0 # 类型转换,查看类型
布尔类型
# True真--->1 # False假--->0 a = True + True + False + True a 3 # 结果为3,可以相加减
字符串类型
# 双引号、单引号都是字符串 字符串类型属于序列的类型 str = 'xiao youpei' print(str[5:11]) print(str[0:-7]) youpei xiao # 切片,含头不含尾 str = 'xiao youpei' print('i' in str) True # 检查是否包含某一元素 s1 = 'xiao' s2 = 'youpei' s = s1+s2 print(f'我的名字是{s}') 我的名字是xiaoyoupei #支持拼接 s1 = 'xiao' s = s1 * 5 print(f'我的名字是{s}') 我的名字是xiaoxiaoxiaoxiaoxiao # 字符串重叠的 *** 作 str = 'xiaonyoupei' print(str) str = r'xiaonyoupei' print(str) xiao youpei xiaonyoupei # 加r,让转义字符失效 s = 'xiao yan' # 替换字符串中的字符 s1 = s.replace('yan','youpei') # title(),首字母大写重要数据结构 列表
alist=[1,'a',[11,22],{'k1':'v1'}] 在内存空间中,列表各元素地址并不连续, 但是会有一个连续的地址指向每一个元素的地址, 这里理解成一个索引文件,一个真实文件,这样的两重效果, 如下图
列表是一个序列的结构 由于上面的特性,所以是可被修改,直接替换下标位置值就行 # 删除元素 注意,remove()和pop()、del都可以删除列表中的元素, 不同的是 del:指定下标元素删除,永久删除(原列表改变) pop():指定下标元素取出,默认是最后一位,永久取出(原列表改变) remove():指定元素删除(删除第一个出现的),永久删除(原列表改变) list = [1,2,3,4,5,6,1,12,3,4,5,6] print(list) del list[0] print(list) list.pop() print(list) list.pop(0) print(list) list.remove(5) print(list) [1, 2, 3, 4, 5, 6, 1, 12, 3, 4, 5, 6] [2, 3, 4, 5, 6, 1, 12, 3, 4, 5, 6] [2, 3, 4, 5, 6, 1, 12, 3, 4, 5] [3, 4, 5, 6, 1, 12, 3, 4, 5] [3, 4, 6, 1, 12, 3, 4, 5] # 增加 append():追加元素到列表末尾 insert():插入指定下标位置 list = [1,2,3,4,5] print(list) list.append(6) print(list) list.insert(2,111) print(list) [1, 2, 3, 4, 5] [1, 2, 3, 4, 5, 6] [1, 2, 111, 3, 4, 5, 6]
# 排序 sort():永久排序,改变原列表,字母排序 sorted():暂时排序,不改变原列表,返回一个新的列表 list = [2,7,1,9,3,4] print(list) print(sorted(list)) print(list) print(list.sort()) print(list) [2, 7, 1, 9, 3, 4] [1, 2, 3, 4, 7, 9] [2, 7, 1, 9, 3, 4] None [1, 2, 3, 4, 7, 9]
# 字符串列表互转 字符串--->列表:直接split切分后就是一个列表 列表--->字符串:利用' '.join(list),空格将列表元素拼接成 str = 'xiao youpei' list1 = str.split(" ") print(list1) str1 = ' '.join(list1) print(str1) ['xiao', 'youpei'] xiao youpei # extend()是将另外一个列表元素拼接到现有列表后 # 如果直接用append是将整个列表作为元素追加到现有列表了 # reverse()是将列表反转 # 复制列表,新列表开辟一个新的内存空间 # 浅拷贝,只拷贝列表的第一层 copy() list1 = [1,2,3,4,[1,2,3,4],6] list2 = list1.copy() list2[4][0] = "xxx" print(list1) # 出现这种情况的原因就是列表的内存地址性质,可看列表的开始 [1, 2, 3, 4, ['xxx', 2, 3, 4], 6] # 深拷贝,拷贝列表的两层 deepcopy() import copy list1 = [1,2,3,4,[1,2,3,4],6] list2 = copy.deepcopy(list1) list2[4][0] = "xxx" print(list1) print(list2) [1, 2, 3, 4, [1, 2, 3, 4], 6] [1, 2, 3, 4, ['xxx', 2, 3, 4], 6]元组
tuple:不可变的序列结构,相当于不可变的列表 # 元组只有一个元素如何定义 t=(1) 这样的定义不是元组,而是int t=(1,) 元组只有一个元素,为1 其他的用法类似于列表 t = (1,2,[3,4,5],6) t[2][1] = 111 print(t) # 元组中存放可变类型可以修改其值 (1, 2, [3, 111, 5], 6)字典
基于hash散列算法实现,采用键值对的形式,根据key值计算value的值,具有非常快速的查取和插入的速度
3.6版本后,字典是有序的,这个顺序指的是元素插入时的先入顺序
dic ={ 'name':'xiao youpei', 'age':22, 'score':[99.99] } dic {'name': 'xiao youpei', 'age': 22, 'score': [99.99]} # key值必须是不可变的类型,value值可变喝不可变都可以 # 字典不是序列的结构,因而没有下标和切片的机制 dic ={ 'name':'xiao youpei', 'age':22, 'score':[100,98,97], 'address':{'original_xiao':'tianchang','now_xiao':'nanjing'} } print(dic['address']) # 通过[]取值,不存在会报错 print(dic.get('name'))# 通过get key,不存在为None dic['money']=10000 # 不存在就增加,存在就修改 print(dic) {'original_xiao': 'tianchang', 'now_xiao': 'nanjing'} xiao youpei {'name': 'xiao youpei', 'age': 22, 'score': [100, 98, 97], 'address': {'original_xiao': 'tianchang', 'now_xiao': 'nanjing'}, 'money': 10000} # 删除 del dic['age'] # 清空字典 dic.clear() # items列表格式返回字典的键值对 print(dic.items()) dict_items([('name', 'xiao youpei'), ('age', 22), ('score', [100, 98, 97]), ('address', {'original_xiao': 'tianchang', 'now_xiao': 'nanjing'}), ('money', 10000)]) # 返回所有key、value print(dic.keys()) print(dic.values()) dict_keys(['name', 'age', 'score', 'address', 'money']) dict_values(['xiao youpei', 22, [100, 98, 97], {'original_xiao': 'tianchang', 'now_xiao': 'nanjing'}, 10000]) # 取出字典某个元素,永久改变 result = dic.pop('age') print(result) 22bytes字节
一般运用于网络编程、爬虫
bs = b'xiao youpei' print(type(bs))Set集合# 字符串和和bytes类型相互转换,默认utf-8 #bytes--->字符串str str = bs.decode() #字符串str--->bytes bs1 = str.encode()
无序不重复,没有下标的机制
# 添加元素 add s = {1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8} print(type(s)) print(s) s.add(10) print(s){1, 2, 3, 4, 5, 6, 7, 8} {1, 2, 3, 4, 5, 6, 7, 8, 10} # 另外一个对象更新到已有集合 update set1 = {1,1,2,2,3,3} set2 = [2,2,3,3,4,4] set1.update(set2) print(set1) {1, 2, 3, 4} # 删除元素采用 remove、pop(pop方法无法设置下标参数) # 综上,集合不支持下标也不支持字典通过键获取值
总结:
可变类型:列表、字典、set集合
不可变类型:数字、布尔、字符串、元组、bytes
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)