运算符
1、算数运算:
2、比较运算:
3、赋值运算:
4、逻辑运算:
5、成员运算:
1 name = "yehaoran " # in 判断ye是否在name里面 在的话返回ok 不在返回not 2 # if "ye" in name : 3 # print("ok") 4 # else: 5 # print("not") 6 7 if "ran" not in name: 8 print("ok") 9 else: 10 print("not") # in not 判断ran是否在不name里面 不在的话返回ok 在返回not
基本数据类型
1、数字
int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
1 1 # 数字 int 2 2 # python3里,1111111111111122333数字多长都用int 3 3 # python2里,数字太大用long小的用int 4 4 5 5 # 1、将字符串转换成数字 type 查看数据类型 6 6 # a = "123" 7 7 # print(type(a)) 8 8 # b = int(a ) 9 9 # print(type(b)) 10 10 # b = b + 100 11 11 # print(b) 12 12 13 13 14 14 # 2、以16进制的形式转换成10进制 15 15 # num = "a" 16 16 # v = int(num, base=16) 17 17 # print(v) 18 18 19 19 20 20 # 3、当前数字的二进制,至少用n位表示 21 21 # # a = 123 22 22 # # r = a.bit_length() 23 23 # # print(r)
2、布尔值
真或假
1 或 0
3、字符串
字符串的格式 : "hello world"
字符串常用功能:
- 移除空白
- 分割
- 长度
- 索引
- 切片
1 # 二、字符串 str 2 3 4 # 1、首字母大写 5 # name = "xiaoming" 6 # print(name.capitalize()) 7 8 # 2、 casefold、lower两个都是把大写字母转换成小写最好用第一个 。upper把小写转化成大写 9 # name = "xiaoMing" 10 # v = name.casefold() 11 # print(v) 12 # v2 = name.upper() 重要 13 # v1 = name.lower() 重要 14 # print(v1) 15 # print(v2) 16 17 # 3、设置宽度并将内容居中 18 # 20代指总长度 19 # * 代表空白未知填充 ,一个字符,可有可无 20 # a1 = "alex" 21 # ret = a1.center(20, '*') 22 # print(ret) 23 # 在右边填充 24 # test = "alex" 25 # v = test.ljust(20,"*") 26 # print(v) 27 # 在左边填充 28 # test = "alex" 29 # v = test.rjust(20,"*") 30 # print(v) 31 32 # test = "alex" 33 # v = test.zfill(20) 34 # print(v) #忽略 35 36 # 4、去字符串中寻找,寻找子序列出现的次数 37 # a1 = "alex is alph" 38 # ret = a1.count("a") 39 # ret = a1.count("al",0,10) 40 # print(ret) 41 42 # 5、查看是否已什么结尾 重要*** 43 # 查看是否已什么开始 44 # name = "xiaoMing" 45 # v = name.endswith('g') 46 # v1 = name.startswith('xi') 47 # print(v) 48 # print(v1) 49 50 # 6、从开始往后面找,找到第一个之后,获取其位置,未找到返回一个-1 find重要 51 # name = "xiaoming" 52 # v = name.find('ao',2,6)#从那个位置开始找 前面的是大于等于 后面是小于 53 # # print(v) 54 # name = "xiaoming" #index 用法同find 但是如果index找不大值直接报错 55 # v = name.index("ming") 56 # print(v) 57 58 # 7、格式化输出,将一个字符串中的占位符替换为指定的值 format重要 59 # test = 'i am {name},age {a}' 60 # print(test) 61 # v = test.format(name = 'xiaoming',a = 24) 62 # print(v) 63 # test = 'i am {0},age {1}' 64 # print(test) 65 # v = test.format('xiaoming',24) 66 # print(v) 67 # test.format_map的方法类似format 区别如下图 68 # test = 'i am {name},age {a}' 69 # print(test) 70 # v = test.format(name = 'xiaoming',a = 24) 71 # v1 = test.format_map({"name":"xiaoming","a":19}) 72 # print(v) 73 # print(v1) 74 75 # 8、判段字符串中是否只包含 字母和数字 76 # name = "uuuuaa888" 77 # v = name.isalnum() 78 # print(v) 79 80 # 9、判断是否是字母 81 # test = "assd" 82 # v = test.isalpha() 83 # print(v) 84 85 # 10、当前输入是否是数字 86 # test = "1112" 87 # v1 = test.isdecimal() #最常用 88 # v2 = test.isdigit() 89 # v3 = test.isnumeric() 90 # print(v1,v2,v3) 91 92 # 11、 字母、数字、下划线;标识符 def class 93 # a = "def" 94 # v = a.isidentifier() 95 # print(v) 96 97 # 12、是否出现不可显示的字符 98 # 制表符 99 # 换行 100 # test = "ooos sdjf" 101 # v = test.isprintable() 102 # print(v) 103 104 # 13、是否全是空格 105 # test = "aaaf aass" 106 # v = test.isspace() 107 # print(v) 108 109 # 14、判断是否是标题 110 # test = "Return True if all cased characters in S are uppercase and 111 # v1 = test.istitle() 112 # print(v1) 113 # v2 = test.title() 114 # print(v2) 115 # v3 = v2.istitle() 116 # print(v3) 117 118 # 15、非常重要*****15、将字符串中的每一个元素按照指定分隔符进行拼接 119 # test = "你是风儿我是沙" 120 # v = " ".join(test) 121 # print(v) 122 123 # 16、 去除空白 去除 指定内容的时候把指定的内容去掉 124 # test = "alex" 125 # v = test.lstrip("ax") # 移除指定字符串 126 # # 有限最多匹配 127 # v = test.rstrip() 128 # v = test.strip() # 很重要 129 130 131 132 # 17、# 对应关系替换 133 # test = "aeiou" 134 # test1 = "12345" 135 # v = "asidufkasd;fiuadkf;adfkjalsdjf" 136 # m = str.maketrans("aeiou", "12345") 137 # new_v = v.translate(m) 138 # print(new_v) 139 140 # 18、 分割为三部分 141 # test = "testasdsddfg" 142 # v = test.partition('s') 143 # print(v) 144 # v = test.rpartition('s') 145 # print(v) 146 # 21 以xxx开头,以xx结尾 很重要 147 # test = "backend 1.1.1.1" 148 # v = test.startswith('a') 149 # print(v) 150 # test.endswith('a) 151 152 # 22 大小写转换 153 # test = "ALEX" 154 # v = test.swapcase() 155 # print(v) 156 157 # 23 字母,数字,下划线 : 标识符 def class 158 # a = "def" 159 # v = a.isidentifier() 160 # print(v) 161 162 # 24 将指定字符串替换为指定字符串 163 # test = "alexalexalex" 164 # v = test.replace("ex",'bbb') 165 # print(v) 166 # v = test.replace("ex",'bbb',2) 167 # print(v) 168 169 170 ##################### 7个非常重要的 ###################### 171 # join # '_'.join("asdfasdf") 172 # split 173 # find 174 # strip 175 # upper 176 # lower 177 # replace 178 179 ####################必须要会的####################### 180 181 # # 1、索引 182 # test = "alex" 183 # # 索引 , 下标 , 获取字符串中的某一个字符 184 # v = test[3] 185 # print(v) 186 187 # 2、切片 188 # test = "alex" 189 # v = test[0:2] #0<= <2 -1代表最后的位置 190 # print(v) 191 192 # 3、len 查看字符串中有多少个字符组成 193 # test = "alex" 194 # v = len(test) 195 # print(v) 196 197 # 4、while循环 198 # test = "asdfghjkl" 199 # index = 0 200 # while index < len(test) : 201 # v = test[index] 202 # print(v) 203 # 204 # index += 1 205 # print("======") 206 # 207 # for i in test : 和上面的while循环实现的效果一样 208 # print(i) 209 210 211 # PS :字符串一旦被创建就不可以被修改 212 # 一旦修改或者拼接,都会造成重新生成字符串 213 214 215 # 5 range将文字 对应的索引打印出来: 216 # test = input(">>>>>") 217 # for i in range(0 ,len(test)): 218 # print(i,test[i]) 219 220 #实现思路 221 # test = input(">>>>>") 222 # for i in test : 223 # print(i) 224 # l = len(test) 225 # print(l) 226 # r = range(0,l) 227 # for i in r : 228 # print(i,test[i]) 229 # 19 分割为指定个数 230 # v = test.split('s',2) 很重要 231 # print(v) 232 # test.rsplit() 233 234 235 # 20 分割,只能根据,true,false:是否保留换行 236 # test = "asdfadfasdf asdfasdf adfasdf" 237 # v = test.splitlines(False) 238 # print(v) 239 240 str 用法和注意事项 重点
4、列表
创建列表:
1 name_list = ['alex', 'seven', 'eric'] 2 或 3 name_list = list(['alex', 'seven', 'eric'])
基本操作:
- 索引
- 切片
- 追加
- 删除
- 长度
- 切片
- 循环
- 包含
1 # list # 类,列表 2 # li = [1, 2, 3, ["alex", 12, "thinks"], "want", "to"] 3 # 1、列表的格式 4 # 2、列表中可以嵌套任何类型 5 # 中括号括起来 6 # ,逗号分割每个元素 7 # 列表中的元素可以是 数字,字符串,布尔值,所有的都能放进去 8 # 3、索引取值 9 # print(li[3]) 10 # 4、切片,切片的结果是列表 11 # print(li[3:-1]) 12 # 列表支持while 、 for循环 13 # 5、for i in li : 14 # print(i) 15 16 # 列表的元素是可以被修改的 17 # li = [1, 2, 3, ["alex", 12, "thinks"], "want", "to"] 18 # #################### 6、索引修改 删除 19 # 修改 20 # li[1] = 120 21 # print(li) 22 # li[2] = [1,3,5,] 23 # print(li) 24 # 删除 25 # del li[1] 26 # print(li) 27 # #####################7、 切边操作修改 删除 28 # 修改 29 # li[1:3] = [120,90] 30 # print(li) 31 # # 删除 32 # del li[2:6] 33 # print(li) 34 35 # li = [1, 2, 3, ["alex", 12, "thinks"], "want", "to"] 36 # # 8in 操作 根据逗号分割作为一个整体最为一个整体 37 # v = 1 in li 38 # print(v) 39 40 # ##########################转换####### 41 # 把str 转化成列表 42 # a = "asdf" 43 # new_a = list(a) 44 # print(new_a) 45 46 # 列表转换字符串 列表中出现数字自己写for循环 47 # li = [11,"22","alex"] 48 # s = "" 49 # for i in li: 50 # s = s +str(i) 51 # print(s) 52 # 列表中的元素只有字符串 ; 直接用 join 方法: 53 # li = [ "123" , "1lex"] 54 # v = "".join(li) 55 # print(v) 56 57 # ###################灰魔法:list 类中提供的方法 ################## 58 # 1、原来的值最后追加 59 # 对象 方法(。。) # 变量 li 对象调用append方法 里面的元素叫参数 60 # li = [11, 22, 33, 44, 22] 61 # li.append(99) 62 # print(li) 63 64 #2、清空列表 65 # li = [11, 22, 33, 44, 22] 66 # li.clear() 67 # print(li) 68 69 # 3、拷贝 ,浅拷贝 70 # li = [11, 22, 33, 44, 22] 71 # v = li.copy() 72 # print(v) 73 74 # 4、计算列表中元素出现的次数 75 # li = [11, 22, 33, 44, 22] 76 # v = li.count(22) 77 # print(v) 78 79 # 5、扩展原列表 ,参数 :可迭代对象 80 # li = [11, 22, 33, 44, 22] 81 # li.append([222]) 82 # print(li) 83 84 # li = [11,22,33,22,44] 85 # li.extend(["alex",998]) 86 # print(li) # 用for循环extend后面加的参数循环打印加到列表里 87 # # 例如 : 88 # li.extend("alex") 89 # print(li) 90 91 # 6、根据值获取当前值索引的位置 (左边优先) 92 # li = [11, 22, 33, 44, 22] 93 # v = li.index(33) 94 # print(v) 95 96 # 7、在指定索引位置插入元素 97 # li = [11, 22, 33, 44, 22] 98 # li.insert(0,22) 99 # print(li) 100 101 # 8、删除某个值(1、指定索引 : 2、默认最后一个)并获取删除的值 102 # li = [11, 22, 33, 44, 22] 103 # v = li.pop(3) 104 # print(v) 105 # print(li) 106 107 # 9、删除列表中的指定值,左边优先 108 # li = [11, 22, 33, 44, 22] 109 # li.remove(22) 110 # print(li) 111 # PS :pop remove del li[0] del li[7:9] clear #都是删除 112 113 # 10、将列表中进行反转 114 # li = [11, 22, 33, 44, 22] 115 # li.reverse() 116 # print(li) 117 118 # 11、列表的排序 119 # li = [1,77,55,99,22,] 120 # li.sort() #默认从小到大排序 121 # li.sort(reverse= True) # 从大到小排序 122 # print(li)
5、元祖
创建元祖:
1 ages = (11, 22, 33, 44, 55) 2 或 3 ages = tuple((11, 22, 33, 44, 55))
# 1、元组的一级元素不可被修改/删除/增加 # tuple # 一般写元组的时候,推荐在后面加个,逗号 # 构成方式 tu = (11,222,"alex",(1,2),[(22,33)]) # 2、元组是可以索引的切片取值 # tu = (11,222,"alex",(1,2),[(22,33)]) # # 元组是有序的 # v = tu[3][0][0] # print(v) # v = tu[3] # print(v) # tu[3][0] = 39 # print(tu) # 3、tuple是可迭代对象
6、字典(无序)
创建字典
person = {"name": "mr.wu", 'age': 18} 或 person = dict({"name": "mr.wu", 'age': 18})
常用操作:
- 索引
- 新增
- 删除
- 键、值、键值对
- 循环
- 长度
1 # 字典 2 # 1、基本构成 3 # info = { 4 # "k1" : "v1", #键值对 5 # "k2" : "v2", 6 # } 7 8 # 2、字典中的value可以是任何值 想嵌套多少嵌套多少层 9 # info = { 10 # "k1": 18, 11 # "k2": True, 12 # "k3": [ 13 # 11, 14 # [], 15 # (), 16 # 22, 17 # 33, 18 # { 19 # 'kk1': 'vv1', 20 # 'kk2': 'vv2', 21 # 'kk3': (11,22), 22 # } 23 # ], 24 # "k4": (11,22,33,44) 25 # } 26 27 # 3、列表、字典不能做为字典的key 如果key相同,输出的时候不打印 28 29 # info = { 30 # "k1" : 18, 31 # "k2" : True, 32 # "k3" : [ 33 # 11, 34 # [], 35 # (), 36 # 22, 37 # 33, 38 # { 39 # 'kk1': 'vv1', 40 # 'kk2': 'vv2', 41 # 'kk3': (11,22), 42 # } 43 # ], 44 # "k4" : (11,22,33,44), 45 # "True" : "123" 46 # #[1,2,3,"alex"]: 123,列表不能做key 47 # #{"k1":"v1"} : 123, 字典不能做key 48 # } 49 # print(info) 50 51 # 4、字典是无序的 52 53 # 5、索引方式找到指定元素 54 55 # info = { 56 # "k1": 18, 57 # "k2": True, 58 # "k3": [ 59 # 11, 60 # [], 61 # (), 62 # 22, 63 # 33, 64 # { 65 # 'kk1': 'vv1', 66 # 'kk2': 'vv2', 67 # 'kk3': (11,22), 68 # } 69 # ], 70 # "k4": (11,22,33,44) 71 # } 72 # # v = info["k1"] 73 # # print(v) 74 # # v = info[2] 75 # # print(v) 76 # v = info["k3"][5]["kk3"][0] 77 # print(v) 78 79 # 6、字典支持del 删除 80 # info = { 81 # "k1": 18, 82 # "k2": True, 83 # "k3": [ 84 # 11, 85 # [], 86 # (), 87 # 22, 88 # 33, 89 # { 90 # 'kk1': 'vv1', 91 # 'kk2': 'vv2', 92 # 'kk3': (11,22), 93 # } 94 # ], 95 # "k4": (11,22,33,44) 96 # } 97 # del info["k1"] 98 # del info["k3"][5]["kk1"] 99 # print(info) 100 101 # 7 for 循环 102 # info = { 103 # "k1": 18, 104 # "k2": True, 105 # "k3": [ 106 # 11, 107 # [], 108 # (), 109 # 22, 110 # 33, 111 # { 112 # 'kk1': 'vv1', 113 # 'kk2': 'vv2', 114 # 'kk3': (11,22), 115 # } 116 # ], 117 # "k4": (11,22,33,44) 118 # } 119 # for item in info : #循环字典中的key 120 # print(item) 121 122 # for i in info.keys(): #循环字典中的key 123 # print(i) 124 125 # for i in info.values(): #循环字典中的values 126 # print(i) 127 128 # for i in info.keys(): 129 # print(i,info[i]) 130 131 # for i,v in info.items(): key 和 values 搜客循环出来 132 # print(i,v) 133 134 # ###############字典中特有的功能######################## 135 136 # 1、根据序列,创建字典,并指定元素 137 # v = dict.fromkeys(['k',123,'999'],123)#静态方法 138 # print(v) 139 140 # 2、根据key获取值,key不存在时,可以指定默认值(None) 141 dic = { 142 "k1":"v1", 143 "k2":[] 144 } 145 # v = dic.get("k1",11111) 146 # print(v) 147 148 # 3、删除并获取值 149 # v = dic.pop("k11111",90) 150 # print(dic,v) 151 # k,v = dic.popitem()#随机删除 152 # print(dic,k,v) 153 154 # 4、设置值,已经存在不设置,获取当前key对应的值、 155 # 设置值,不存在设置,获取当前key对应的值 156 # v = dic.setdefault("k11","13") 157 # print(dic,v) 158 159 # 5、 已经存在的覆盖key对应的值,不存在创建 160 # dic.update({'k1':11111,'k3':'alex'}) 161 # dic.update(k1=123,k3=235,k5="asdf") 162 163 # print(dic)
7、重点总结
1 # 一、数字 2 # int(..) 3 # 二、字符串 4 # replace/find/join/strip/startswith/split/upper/lower/format 5 # tempalte = "i am {name}, age : {age}" 6 # # v = tempalte.format(name='alex',age=19) 7 # v = tempalte.format(**{"name": 'alex','age': 19}) 8 # print(v) 9 # 三、列表 10 # append、extend、insert 11 # 索引、切片、循环 12 # 四、元组 13 # 忽略 14 # 索引、切片、循环 以及元素不能被修改 15 # 五、字典 16 # get/update/keys/values/items 17 # for,索引 18 19 # dic = { 20 # "k1": 'v1' 21 # } 22 23 # v = "k1" in dic 24 # print(v) 25 26 # v = "v1" in dic.values() 27 # print(v) 28 # 六、布尔值 29 # 0 1 30 # bool(...) 31 # None "" () [] {} 0 ==> False
其他
1、for循环
用户按照顺序循环可迭代对象中的内容,
PS:break、continue
li = [11,22,33,44] for item in li: print item
2、enumrate
为可迭代的对象添加序号
li = [11,22,33] for k,v in enumerate(li, 1): print(k,v)
3、range和xrange
指定范围,生成指定的数字
print range(1, 10) # 结果:[1, 2, 3, 4, 5, 6, 7, 8, 9] print range(1, 10, 2) # 结果:[1, 3, 5, 7, 9] print range(30, 0, -2) # 结果:[30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2]