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)

 

posted @ 2019-03-21 14:56  錦衣夜行  阅读(116)  评论(0)    收藏  举报