Python学习_基本数据类型
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 # 数字int 延伸 5 a1 = 123 6 a2 = 123 7 print(a1.bit_length()) 8 # 查看内存地址: id(变量名) 9 print(id(a1)) 10 print(id(a2)) 11 # 32位系统 int的范围为 -2**31 到 2**31-1 12 # 64位系统 int的范围为 -2**63 到 2**63-1 13 # -5 到 257 内存地址一致 14 15 # 字符串str 16 # 一个汉字 UTF-8占3个字节,GBK占2个字节 17 s1 = "alex" 18 s2 = str("alex") 19 print(s1[:]) 20 21 # 编码补充 22 # bytes是类似int,str的一种字节类型 23 # bytes 可以将字符串转换为字节 24 # bin()可以将字节显示为二进制 25 # 1 3.5 for循环的时候,循环的每一个元素是"字符" 26 # 2 字符 => 字节 bytes_list = bytes(i,encoding='utf-8') 27 # 3 print(bytes_list) # 默认每个字节是用十六进制表示 28 # 4 for b in bytes_list: 29 # 4 print(b) #默认每个字节是用十进制表示 30 # 5 十进制转换为二进制 bin(十进制的数字) 31 32 name = "郭磊" 33 for i in name: 34 print(i) 35 bytes_list = (bytes(i, encoding='utf-8')) 36 print(bytes_list) 37 for b in bytes_list: 38 print(b, type(b)) 39 print(b, bin(b)) 40 print(b, hex(b)) 41 print(b, hex(int(bin(b), 2))) 42 """ 43 a = "李路" 44 # 将字符串转换为字节 45 b1 = bytes(a,encoding="utf-8") 46 print(b1) 47 b2 = bytes(a,encoding="gbk") 48 print(b2) 49 # 将字节转换为字符串 50 b3 = str(b1,encoding="utf-8") 51 print(b3) 52 b4 = str(b2,encoding="gbk") 53 print(b4) 54 """ 55 56 # 列表list 57 # list = [], list = list(),list = list([11,22]) 58 s1 = "李路" 59 # for 字符 => 可迭代 60 l1 = list(s1) # 将循环每个元素,当作列表的元素 61 print(l1) 62 t2 = ("alex", "oldboy", "sven") 63 l2 = list(t2) 64 print(l2) 65 li = [11, 22, 33] 66 # 追加 67 li.append("22") 68 # 清除 69 li.clear() 70 # 扩展自己,用另外一个可迭代的对象,扩充到自己的内部 71 str, list, dict, tuple 72 s = "李路" 73 li.extend(s) 74 print(li) 75 # 自己内部元素反转 76 li.reverse() 77 # 向指定位置插入 78 li.insert() 79 80 # 字典dict 81 dic = {"k1": "alex", "k2": "sven"} 82 l3 = list(dic.values()) 83 print(l3) 84 l3 = list(dic.items()) 85 print(l3) 86 dic = {} 87 dic.update({"k1": "v1"}) 88 dic["k2"] = "v2" 89 print(dic) 90 a = dict(k1=123, k2=456) 91 print(a) 92 li = [11, 22, 33] 93 new_dict = dict(enumerate(li, 0)) 94 print(new_dict) 95 # 方法无@staticmethod,使用对象.方法调用 96 a.keys() 97 # 方法有@staticmethod,使用类.方法调用 98 n1 = dict.fromkeys(["k1", "k2", "k3"], []) 99 n1["k1"].append("x") 100 print(n1) 101 n2 = {'k1': [], 'k2': [], 'k3': []} 102 n2["k1"].append("x") 103 print(n2) 104 105 # 元祖 tuple 106 # 元祖的元素不可修改,元素的元素可以被修改 107 t = (11, 22, ["alex", {"k1": "v1"}]) 108 t[2].append("sven") 109 t[2][1]["k2"] = "v2" 110 t[2][1].update({"k3": "v3"}) 111 print(t) 112 113 # set集合 => 不允许重复的集合,类似不允许重复的list 114 # 创建 115 s = set() 116 s = {11, 22, 33, 44} 117 # 转换 118 l = [11, 22, 33, 44] 119 s = set(l) 120 print(s) 121 # 方法 122 se = set() 123 se.add(44) 124 print(se) 125 se.remove(44) 126 print(se) 127 se = {11, 22, 33} 128 be = {22, 44} 129 # 找se中存在,be中不存在的元素,并返回新的set 130 print(se.difference(be)) 131 # 找se中存在,be中不存在的元素,并更新se 132 se.difference_update(be) 133 print(se) 134 # 删除不报错 135 se.discard(44) 136 # 取交集并返回ret 137 ret = se.intersection(be) 138 print(se, ret) 139 # 取交集并更新se 140 se.intersection_update(be) 141 print(se) 142 # 判断是否有交集,有返回False,没有返回True 143 ret = se.isdisjoint(be) 144 print(ret) 145 # 判断是否是子序列,父子关系 146 ret = se.issubset(be) 147 # 判断是否是父序列,父子关系 148 ret = se.issuperset(be) 149 print(ret) 150 ret = se.pop() 151 print(ret) 152 # 取对称交集,返回set 153 ret = se.symmetric_difference(be) 154 print(ret) 155 # 取对称交集,更新set 156 se.symmetric_difference_update(be) 157 print(se) 158 # 取并集,合并2个set 159 ret = se.union(be) 160 print(ret) 161 # 更新set 162 se.update([44, 55, 66]) 163 print(se)