1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 |
mac下载/安装环境 https://www.python.org/downloads/release/python-372/ 测试是否安装(命令行) python3 //mac自带python2 出现尖括号>>> 可输入python代码 代码工具pycharm dmeo(hrllo.py) print("hello py"); 右键点击 run 'hello' 数据类型 1.数字 整数 浮点数 2.字符串 3.列表 4.元组 5.集合 6.字典 声名变令 aaa = 1 声明变量 print(aaa) //输出 print(type(aaa)) //类型 bool True False 运算符 算数运算符 +-*/ 取模% 幂** 取整除// 赋值运算符 加等于+= 减等于-= 乘等于*= 除等于/= 模等于%= 幂等于**= 取整除等于//= 进制运算 十转二 bin(16) 十转八 oct(16) 十转十六 hex(16) 二转十 int('10',2) 八转十 int('10',8) 十六转十 int('10',16) 位运算 按位与运算 & 按位或运算 | 按位异或运算 ^ 按位取反运算 ~ 左移运算符 << 右移运算符 >> 比较运算符 成员运算符 in not in 逻辑运算符 条件控制 if_see = True if if_see: print("111") else: print("222") ---------- aa = input("请输入数字") if aa==11: print("11") elif aa==22: print("22") else: print("99") 强制转化 int('11') str(11) float() 声明字符串 单引/双引/三引 字符串操作 ss = 'hello' print(ss[0]) 访问字符串中的切片 print(ss[0:6]) //左闭右开 包含运算 in print(s2 in s1) 不包含运算 not in 转义字符 \ 原始字符串输出 print(r"hello\npy") print(R"hello\npy") 格式化输出 print("我叫%s,今年%d岁了" %('小米',10)) 查找字符串 find s = "Hello py".find("h") 转换为小写 print("Hello py".lower()) 转换为大写 print("Hello py".upper()) 返回字符串长度 print("Hello py".__len__()) 判断字符串是否只包含空格 print("a ".isspace()) 字符串替换 print("Hello pt".replace('t','y')) 查看python自带的文档 python3 -m pydoc -p 8888 loclahost:8888 list 列表 一组数据 有序 list1 = [] 访问列表 list1[0] list1[2:] 列表添加 1. list1.append('aa') 2. list1 = list1+['bb','cc'] 列表删除 del list1[0] 嵌套列表 [[],[]] 列表元素个数 len(list1) 移除列表中的元素,并返回删除的值 list1.pop(1) list1.remove('a') 对列表中元素进行排序 list1.sort() 查找列表中第一个匹配的元素的索引值 list1.index('a') 元组 tuple t=(1,2,4) 与list的区别 不能修改,只能访问 集合 {} 无序,不重复 (有去重功能) a = set('abcd') b = set('bcde') print(a & b) print(a | b) print(a ^ b) 添加元素 my = set(('aa','bb','cc')) my.add('dd') 移除指定元素 my.remove("bb") 随机移除 my.pop() 计算个数 len(my) 清空集合 my.clear() in 字典 一种可变容器类型 可储存任何对象 key : value d = {'aa':'111','22':'bb'} d.keys() d['aa'] 增加 更新 删除 del(d['aa'] in ASCII转数字 ord('a') 数字转ASCII chr(66) 一行太长要在末尾加上\ 真假值判断 and or not 查看地址 id(aa) 循环 i=1 while i < 100: print ("aa") i++ for i in range(11): print ("aa") i++ break 直接跳出循环 continue 本次循环结束,执行下次循环 冒泡排序 nums = [3,1,25,10,15,6,8] for i in range(len(nums)-1): for j in range(len(nums)-i-1): if nums[j]>nums[j+1]: nums[j],nums[j+1] = nums[j+1],nums[j] print("第"+str(j)+"次内循环"+str(nums)) print("第"+str(j)+"次外循环"+str(nums)) print("最后的结果:"+str(nums)) 工程结构 包>模块>类>方法/变量 包/模块命名 小写字母+下划线 类 驼峰命名,首字母大写 私有类下划线开头 函数/变量命名 小写字母+下划线 私有下划线开头 常量 大写字母 下划线 私有下划线开头 特殊模块 __init__.py 包含了__init__.py才能称为包 导包路径 from .my_pack import init_test import part3.my_package.init_test as p 函数 def my_function(): 函数的参数 def my_function(p1,p2): 关键字参数 my_function(p1='11',p2='22'): 默认参数 def my_function(p1='11',p2): 递归 5的阶乘 def f(x): if s==1: return 1 print("计算"+str(x)+"*"+str(x-1)) return x * f(x-1) print(f(5)) 递归查找 特殊函数 __name__ 只有在本模块启动时,__name__变量等于__main__ 使用: 1.可以作为这个模块的入口,在其他语言中也叫作main函数 2.也可以作为调试使用,原因:在其他模块调用本模块时,__name__=="main" 判断结果为false,所以不会执行 变量作用域 正则表达式 demo import re reg_string = "vdfvfdvfd" reg = "dddd" result = re.findall(reg,reg_string) //search()的工作方式和match()完全一样,不同之处在于search()会用它的字符串参数, //在任意位置对给定的正则表达式模式搜索第一次出现的匹配情况。 //如果匹配成功,就会返回一个匹配对象。 result = re.search(reg,reg_string) result = re.search(reg,reg_string).group(0) //match只匹配开头,有就返回,没有就报错 result = re.match(reg,reg_string).group(0) re.I 不区分大小写 result = re.match(reg,reg_string,re.I).group(0) 参考: https://blog.csdn.net/qq_39521554/article/details/79462405 贪婪---尽可能多的匹配 非贪婪---尽可能少的匹配 * 重复零次或更多次 ? +重复一次或更多次 ? ?重复零次或一次 ? Xpath / 从根节点进行选择元素 // 从匹配的当前节点来对文档中的节点进行选择 . 选取当前节点 .. 选取当前节点的父节点 @ 选择属性 通配符 * 匹配任何元素节点 @* 匹配任何属性节点 | 和 demo body/div 选取属于body的子元素中的所有div元素 //div 选取所有div标签的子元素,而不管它们在HTML文档中的位置 @lang 选取名称为lang的所有属性 //* 选取文档中所有元素 //title[@*] 选取所有带属性的title元素 //body/div | //body/li 选取body元素的所有div元素和li元素 //div | //li 选取文档中所有的div 和li |