其他pyton笔记
1 #小部分老男孩pyton课程 2 3 4 #所有脚本第一句话都要写解释以下脚本是用什么解释器 5 #!/usr/bin/env python 6 #语言设置为:简体中文 7 #_*_coding:utf-8_*_ 8 9 #############################################################################>>> 10 # 11 #变量定义的规则: 12 13 #变量名只能是 字母、数字或下划线的任意组合 14 #变量名的第一个字符不能是数字 15 #以下 关键字 不能声明为变量名 16 ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 17 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 18 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 19 'return', 'try', 'while', 'with', 'yield'] 20 # 21 #############################################################################>>> 22 #input <输入> 23 #print<打印> 24 username = input('用户名') 25 password = input('密码') 26 print(username,password) 27 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 28 #输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即: 29 #另存为 passwd.py到 c:\users\alex\pycharmprojects\s14\day1>python 30 31 import getpass 32 33 username = input('usernmae:') 34 password = getpass.getpass('password:') 35 36 print(username,password) 37 38 cd c:\users\alex\pycharmprojects\s14\day1>python passwd.py 39 40 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 41 42 # .format <格式> 43 # import <调用> getpass<py系统自带函数模块,密文输入> 44 # print <打印> 45 # if <条件成立执行> 46 # and <而且> 47 # else <if条件不成立时执行> 48 49 import getpass 50 51 name = 'alex' 52 word = 'as123' 53 54 username = input('名字:') 55 password = input('密码:') 56 57 if name == username and word == password: 58 print('欢迎 {N} 登录'.format(N=name)) 59 else: 60 print('账号或者密码错误') 61 62 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 63 64 # i <变量名> 65 # range(10) <范围> (0,1,2,3,4,5,6,7,8,9)<0-9十个数> 66 67 for i in range(10): 68 print('loop',i) 69 70 71 # (0,10,3) <起始数,结束值,步长> <步长默认加1> 72 for i in range(0,10,3): 73 print('loop',i) 74 75 76 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 77 78 # continue <跳出本次循环,重新循环> 79 80 for h in range(0,10): 81 if h <3: 82 print('loop',h) 83 else: 84 print('kkkkkk...') 85 continue 86 print('yyyyyy...') 87 print('呵呵呵...') 88 89 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 90 91 # for t in range(9) <条件循环> <变量名> <在> <范围(参数)> 92 # print <打印> 93 # if <条件判断> 94 # break <中止程序> 95 96 for t in range(9): 97 print('______',t) 98 for j in range(11,50): 99 print(j) 100 if j >= 22: 101 break 102 103 #############################################################################>>> 104 105 106 #模块寻找路径先在当前目录下寻找,然后在全局环境变量目录里寻找 107 108 #'''你会发现,上面自己写的tab.py模块只能在当前目录下导入, 109 #如果想在系统的何何一个地方都使用怎么办呢? 此时你就要 110 #把这个tab.py放到python全局环境变量目录里啦,基本一般都 111 #放在一个叫 Python/2.7/site-packages 目录下,这个目录 112 #在不同的OS里放的位置不一样,用 print(sys.path) 可以查 113 #看python环境变量列表。''' 114 #系统自带模块在以下目录里为 XXX.py的文件 115 #C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\Lib 116 117 #默认第三方模块在以下目录里(即是全局环境变量目录) 118 #C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\Lib\site-packages 119 120 import sys 121 print(sys.path) #打印环境变量 122 print('------我割割割-------') 123 print(sys.argv) #打印路径 124 125 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 126 127 import os 128 129 #cmd = os.system('dir')#执行命令,不保存结果 130 131 #print('查看1',cmd) 132 133 #直接输出到屏幕上 134 135 #cmd2 = os.popen('dir2').read() 136 #print('查看2',cmd2) 137 138 cmd3 = os.mkdir('查看3') 139 print('查看3',cmd3) 140 141 #############################################################################>>> 142 143 1、数字 144 int(整型) 145 -9223372036854775808~9223372036854775807 146 147 float(浮点型) 148 3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4 149 complex(复数) 150 (-5+4j)和(2.3-4.6j)是复数的例子,其中-5,4为实数,j为虚数 151 152 2、布尔值 153 真或假 154 1 或 0 155 156 3、字符串 157 "hello world" 158 #############################################################################>>> 159 160 161 162 #############################################################################>>> 163 # 164 # 字符串格式化符号含义 165 # 166 # 符号 说明 167 # 168 # %c <格式化字符及其ASCII码><a=97> 169 # >>> '%c %c %c %c %c' % (97,98,99,100,101) 170 # >>> 'a b c d e' 171 # %s <格式化字符串> 172 # >>> '%s' % 'I love fc' 173 # >>> 'I love fc' 174 # %d <格式化整数> 175 # >>> '%d + %d = %d' % (4,5,4+5) 176 # >>> '4 + 5 = 9' 177 # %o <格式化无符号八进制数> 178 # %x <格式化无符号十六进制数> <10=a,11=b> 179 # >>> '%x' % 160 180 # >>>'a0' 181 # %X <格式化无符号十六进制数(大写)> <10=A,11=B> 182 # %f <格式化定点数,可以指定小点后的精度> 183 # >>> '%F' % 27.986 184 # >>> '27.986000' 185 # %e <用科学计数法格式化定点数> 186 # >>> '%e' % 27.158 187 # >>> '2.715800e+01' 188 # %E <作用同%e,用科学计数法格式化定点数> 189 # %g <根据值的大小决定使用%f或%e> 190 # %G <作用同%g,根据值的大小决定使用%f或%E> 191 # 192 #############################################################################>>> 193 #print<打印> 194 #打印数据类型 195 196 name = input('名字:') 197 age = int(input('年龄:')) 198 print(type(age), type(str(age))) 199 job = input('行业:') 200 salaty = input('年薪:') 201 202 203 info = ''' 204 --------info of %s ----- 205 Name:%s 206 Age:%d 207 job:%s 208 salary:%s 209 ''' %(name,name,age,job,salaty) 210 print(info) 211 ============== RESTART: C:/Users/Administrator/Documents/学习.py ============== 212 名字:a 213 年龄:12 214 <class 'int'> <class 'str'> 215 行业:sdad 216 年薪:2555 217 218 --------info of a ----- 219 Name:a 220 Age:12 221 job:sdad 222 salary:2555 223 224 >>> 225 226 #############################################################################>>> 227 #显式转换的多种类型 228 # 229 #int (x [,base]) ⇒ 将x转换为一个十进制的整数 230 #long(x [,base]) ⇒ 将x转换为一个十进制的长整数 231 #float(x) ⇒ 将x转换为一个浮点数 232 #str(object) ⇒ 转换为字符串 233 #repr(object) ⇒ 转换为表达式字符串 234 #eval(str) ⇒ 用来计算在字符串中的有效Python表达式,并返回一个对象 235 #tuple(seq) ⇒ 将序列seq转换为一个元组 236 #list(seq) ⇒ 将序列seq转换为一个列表 237 #chr(x ) ⇒ 将一个整数转换为一个字符 238 #unichr(x ) ⇒ 将一个整数转换为Unicode字符 239 #ord(x ) ⇒ 将一个字符转换为它的整数值 240 #hex(x ) ⇒ 将一个整数转换为一个十六进制字符串 241 #oct(x ) ⇒ 将一个整数转换为一个八进制字符串 242 #############################################################################>>> 243 244 #############################################################################>>> 245 # 当行注释:# 被注释内容 246 # 多行注释: ''' 被注释的内容 ''' 247 # 248 # 249 info = ''' 250 251 252 253 ''' 254 # 255 #############################################################################>>> 256 257 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 258 259 #format<格式> 260 261 name = input('名字:') 262 age = int(input('年龄:')) 263 print(type(age), type(str(age))) 264 job = input('行业:') 265 salaty = input('年薪:') 266 267 268 info2 = ''' 269 --------info of {N} -------- 270 姓名:{N} 271 芳龄:{A} 272 职业:{J} 273 工资:{S} 274 '''.format(N=name, 275 A=age, 276 J=job, 277 S=salaty) 278 279 print(info2) 280 281 ============== RESTART: C:\Users\Administrator\Documents\学习.py ============== 282 名字:yyy5 283 年龄:88 284 <class 'int'> <class 'str'> 285 行业:dgdgdg5dgdfg 286 年薪:9995121 287 288 --------info of yyy5 -------- 289 姓名:yyy5 290 芳龄:88 291 职业:dgdgdg5dgdfg 292 工资:9995121 293 294 >>> 295 ###################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 296 297 #format<格式> 298 299 name = input('名字:') 300 age = int(input('年龄:')) 301 print(type(age), type(str(age))) 302 job = input('行业:') 303 salaty = input('年薪:') 304 305 306 info3 = ''' 307 --------info of {0} -------- 308 姓名:{0} 309 芳龄:{1} 310 职业:{2} 311 工资:{3} 312 '''.format(name,age,job,salaty) 313 314 print(info3) 315 316 >>> 317 ============== RESTART: C:\Users\Administrator\Documents\学习.py ============== 318 名字:d5as6d5 319 年龄:56565 320 <class 'int'> <class 'str'> 321 行业:ad2a6sd6a 322 年薪:26s5d6s2d6s2 323 324 --------info of d5as6d5 -------- 325 姓名:d5as6d5 326 芳龄:56565 327 职业:ad2a6sd6a 328 工资:26s5d6s2d6s2 329 330 >>> 331 332 #############################################################################>>> 333 334 #——————————数据运算—————— 335 # 336 #——算数运算:—— 337 # 338 # 运算符 描述 实例 339 # 340 # + 加-两个对象相加________________________________________________________________a+b 输出结果 30 15+15=30 341 # - 减-得到负数或者一个数减去另一个数______________________________________________a-b 输出结果-10 20-30=-10 342 # * 乘-两个数相乘或者返回一个被重复若干次的字符串__________________________________a*b 输出结果200 20*10=200 343 # / 除-X除以Y______________________________________________________________________b/a 输出结果2 4/2=2 344 # % 取模-返回除法的余数____________________________________________________________b%a 输出结果0 345 # ** 幂-返回X的Y次幂________________________________________________________________a**b 为10的20次方,输出结果100000000000000000000 346 # // 取整除-返回商的整数部分________________________________________________________9//2 输出结果 4 9.0//2.0 输出结果4.0 347 # 348 ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 349 # 350 #——比较运算:—— false<假0> true<真1> 351 # 352 # 运算符 描述 实例 353 # 354 # == 等于-比较对象是否相等__________________________________________________________(a==b)返回False 355 # != 不等于-比较两个对象是否不相等__________________________________________________(a!=b)返回true 356 # <> 不等于-比较两个对象是否不相等__________________________________________________(a<>b)返回true 这个运算符类似 != 357 # > 大于-返回X是否大于Y____________________________________________________________(a>b)返回False 358 # < 小于-返回X是否小于y。所有比较运算符返回1表示真,返回0表示假____________________(a<b)返回true 359 # 这分别与特殊的变量True和False等价.注意,这些变量名的大写。 360 # >= 大于等于-返回x是否大于等于y____________________________________________________(a>=b)返回False 361 # <= 小于等于-返回x是否小于等于y____________________________________________________(a>=b)返回true 362 # 363 ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 364 # 365 #——赋值运算:—— 366 # 367 # 运算符 描述 实例 368 # 369 # = 简单的赋值运算符_______________________________________________________________c = a + b 将 a + b 的运算结果赋值给 c 370 # += 加法赋值运算符_________________________________________________________________c += a 等效于 c = c + a 371 # -= 减法赋值运算符_________________________________________________________________c -= a 等效于 c = c - a 372 # *= 乘法赋值运算符_________________________________________________________________c *= a 等效于 c = c * a 373 # /= 除法赋值运算符_________________________________________________________________c /= a 等效于 c = c / a 374 # %= 取模赋值运算符_________________________________________________________________c %= a 等效于 c = c % a 375 # **= 幂赋值运算符___________________________________________________________________c **= a 等效于 c = c ** a 376 # //= 取整赋值运算符_________________________________________________________________c //= a 等效于 c = c // a _ 377 # 378 ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 379 # 380 #——逻辑值运算:—— 381 # 382 # 运算符 描述 实例 383 # 384 # and 布尔“与”-如果X为False, X and Y ,返回False,否则它返回Y的计算值_____________(K and J)返回true 385 # or 布尔“或”-如果X为True, 它返回True,否则它返回Y的计算值_________________________(K or J)返回true 386 # not 布尔“非”-如果X为True,返回False,如果X为False,它返回True______________________not(K and J)返回true 387 # 388 ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 389 # 390 #——成员运算:—— 391 # 392 # 运算符 描述 实例 393 # 394 # in 如果在指定的序列中找到值返回True,否则返回False,________________________________x在y序列中,如果x在y序列中返回True 395 # not in 如果在指定的序列中没有找到值返回True,否则返回False,____________________________x不在y序列中,如果x在y序列中返回True 396 # 397 ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 398 # 399 #——身份运算:—— 400 # 401 # 运算符 描述 实例 402 # 403 # is is是判断两个标识符是不是引用自一个对象__________________________________________x is y ,如果 id(x) 等于 id(y) ,is 返回结果1 404 # is not is not是判断两个标识符是不是引用自不同对象______________________________________x is not y ,如果 id(x) 不等于 id(y) ,is not 返回结果1 405 # 406 ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 407 # 408 #——位运算:—— 409 # 410 # 运算符 描述 实例 411 # 412 # & 按位与运算符_________________________________________________________________(a&b) 输出结果 12 ,二进制解释: 0000 1100 413 # | 按位或运算符_________________________________________________________________(a|b) 输出结果 61 ,二进制解释: 0011 1100 414 # ^ 按位异或运算符_______________________________________________________________(a^b) 输出结果 49 ,二进制解释: 0011 0001 415 # ~ 按位取反算符_________________________________________________________________(~a) 输出结果 -61 ,二进制解释: 1100 0011 ,在一个有符号二进制数的补码形式。 416 # << 左移动运算符_________________________________________________________________a<<2 输出结果 240 ,二进制解释: 1111 0000 417 # >> 右移动运算符_________________________________________________________________a>>2 输出结果 15 ,二进制解释: 0000 1111 418 # 419 ###>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 420 # 按位取反运算规则(按位取反再加1) 421 #!/usr/bin/python 422 423 a = 60 # 60 = 0011 1100 424 b = 13 # 13 = 0000 1101 425 c = 0 426 427 c = a & b; # 12 = 0000 1100 428 print "Line 1 - Value of c is ", c 429 430 c = a | b; # 61 = 0011 1101 431 print "Line 2 - Value of c is ", c 432 433 c = a ^ b; # 49 = 0011 0001 #相同为0,不同为1 434 print "Line 3 - Value of c is ", c 435 436 c = ~a; # -61 = 1100 0011 437 print "Line 4 - Value of c is ", c 438 439 c = a << 2; # 240 = 1111 0000 440 print "Line 5 - Value of c is ", c 441 442 c = a >> 2; # 15 = 0000 1111 443 print "Line 6 - Value of c is ", c 444 445 446 ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 447 # 448 #——运算符优先级:—— 449 # 450 # 运算符 描述 451 # 452 # ** ___指数(最高优先级) 453 # ~ + - ___按位翻转,一元加号和减耗(最后两个的方法名为+@和-@) 454 # * / % // ___乘,除,取模和取整数 455 # + - ___加法减法 456 # >> << ___右移,左移运算符 457 # & ___位 'AND' 458 # ^ | ___位运算符 459 # <= < > >= ___比较运算符 460 # < > == != ___等于运算符 461 # = %= /= //= -= += *= **= ___赋值运算符 462 # is is not ___身份运算符 463 # in not in ___成员运算符 464 # not or and ___逻辑运算符 465 # 466 ######>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 467 # * / + - <一元操作符> 468 # %[百分比,取余数] **[幂运算操作符,比一元操作符左边高比一元操作符右边低] 469 # //[地板除法] 470 # 471 #运算符优先级 472 # 幂运算 ** 473 # 正负号 +* -* 474 # 算术操作符 * / // + - 475 # 比较操作符 < <= > >= == != 476 # 逻辑运算符 not and or 477 # 478 #比较操作符 < <= > >= == != <根据表示的值进行比较> 479 # 480 #true <1,真> false <0,假> 481 #逻辑符 and <左右都为true执行> or <左右 或者为true执行> not<相反执行> 482 483 ###>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 484 485 #三元操作符 语法: x if 条件 else y 486 #x,y = 4, 5 487 #if x < y: 488 # small=x 489 #else: 490 # small=y 491 #改进为 492 #small = x if x < y else y 493 # 494 #assert<断言,关键字,AssertionError,程序检查点> 495 496 #true <1,真> false <0,假> 497 #while<而,循环体,为true时执行> 498 # 499 #for<为,循环体> in<在> 500 # 501 #for 目标 in 表达式 502 # 循环体 503 504 ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 505 506 三元运算 507 508 result = 值1 if 条件 else 值2 509 如果条件为真:result = 值1 510 如果条件为假:result = 值2 511 512 三、进制 513 514 二进制,01 515 八进制,01234567 516 十进制,0123456789 517 十六进制,0123456789ABCDEF 二进制到16进制转换http://jingyan.baidu.com/album/47a29f24292608c0142399cb.html?picindex=1 518 计算机内存地址和为什么用16进制? 519 520 为什么用16进制 521 1、计算机硬件是0101二进制的,16进制刚好是2的倍数,更容易表达一个命令或者数据。十六进制更简短,因为换算的时候一位16进制数可以顶4位2进制数,也就是一个字节(8位进制可以用两个16进制表示) 522 2、最早规定ASCII字符集采用的就是8bit(后期扩展了,但是基础单位还是8bit),8bit用2个16进制直接就能表达出来,不管阅读还是存储都比其他进制要方便 523 3、计算机中CPU运算也是遵照ASCII字符集,以16、32、64的这样的方式在发展,因此数据交换的时候16进制也显得更好 524 4、为了统一规范,CPU、内存、硬盘我们看到都是采用的16进制计算 525 526 16进制用在哪里 527 1、网络编程,数据交换的时候需要对字节进行解析都是一个byte一个byte的处理,1个byte可以用0xFF两个16进制来表达。通过网络抓包,可以看到数据是通过16进制传输的。 528 2、数据存储,存储到硬件中是0101的方式,存储到系统中的表达方式都是byte方式 529 530 3、一些常用值的定义,比如:我们经常用到的html中color表达,就是用的16进制方式,4个16进制位可以表达好几百万的颜色信息。 531 532 ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 533 534 ################################################################################ 535 #以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎 536 #字符串的操作特性:不可修改 537 # 538 #常用变量演示 539 name = 'my name is alex' 540 print(name.capitalize()) 541 print(name.count('a')) 542 print(name.center(50,'-')) 543 print(name.endswith('ex')) 544 print(name.expandtabs(tabsize=30)) 545 print(name[name.find('name'):]) 546 print(name.format(name='alex',year=23)) 547 print(name.format_map( {'name':'alex','year':12} )) 548 print('ab23'.isalnum()) 549 print('abA'.isalpha()) 550 print('1A'.isdecimal()) 551 print('1A'.isdigit()) 552 print('a 1A'.isidentifier())#判断是否合法的标识符 553 print('33'.isnumeric()) 554 print('33'.isspace()) 555 print('My Name IS '.istitle()) 556 print('My Name IS '.isprintable())#设备终端使用 557 print('My Name IS '.isupper()) 558 print('+'.join(['1','2','3'])) 559 print( name.ljust(23,'*')) 560 print( name.rjust(25,'-')) 561 print( 'Alex'.lower()) 562 print( 'Alex'.upper()) 563 print( '\n Alex'.lstrip()) 564 print( 'Alex \n'.rstrip()) 565 print( ' Alex\n'.strip()) 566 567 print('---随机密码----') 568 h = str.maketrans('abcdefli','123$@456')#随机密码 569 print('alex li'.translate(h)) 570 print(' ') 571 572 print('---替换----') 573 print('alex li lllll'.replace('l','L',4)) 574 print(' ') 575 576 print('---寻找下标号----') 577 print('alex li'.rfind('l')) 578 print(' ') 579 580 print('---按字符串分割----') 581 print('al ex lil'.split('l')) 582 print(' ') 583 584 print('---按换行\n分割----不同系统的换行') 585 print('1+2\n+3+4'.splitlines()) 586 print(' ') 587 588 print('---按换行\n分割----') 589 print('Alex Li'.swapcase()) 590 print(' ') 591 592 print('---第一字母大写----') 593 print('llex Li'.title()) 594 print(' ') 595 596 print('---前边用0填充----') 597 print('lex Li'.zfill(26)) 598 print(' ') 599 600 601 602 ####>>>>>>>>>>>>>>>>>>>>>>>>>>>> 603 #变量名.capitalize() 604 # 605 #capitalize() <把字符串的第一个字符改为大写> 606 #casefold() <把整个字符串的所有的字符变成小写> 607 #center(width) <将字符串居中,并使用空格填充至长度width的新字符串> 608 #count(sub[,start[,end]]) <返回sub在字符串里边出现的次数,start和end参数表示范围,可选> 609 #encode(encoding='utf-8',errors='strict') <以encoding指定的编码格式对字符串进行编码> 610 #endswith(sub[,start[,end]]) <检查字符串是否sub字符串结束,如果是返回true,否则返回false, 611 # start和end参数表示范围,可选 > 612 #expandtabs([tabsize=8]) <把字符串的tab符号(\t)转换为空格,字符默认的空格数是tabsize=8> 613 #find(sub[,start[end]]) <检测sub是否包含在字符串中,如果有返回索引值,否则返回-1, 614 # start和end参数表示范围,可选> 615 #index(sub[,start[,end]]) <跟find方法一样,不过如果sub不在string中会产生异常> 616 #isalunum() <如果字符串至少有一个字符都是字母或数字则返回true,否则返回false> 617 #isalpha() <如果字符串至少有一个字符并且所有字符都是字母则返回true,否则返回false> 618 #isdecimal() <如果字符串只包含十进制数字则返回true,否则返回false> 619 #isdingt() <如果字符串中只包含数字,则返回true,否则返回false> 620 #islower() <如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写, 621 # 则返回ttue,否则返回false> 622 #isnumeric() <如果字符串中只包含数字字符,则返回true,否则返回false> 623 #isspace() <如果字符串中只包含空格,则返回true,否则返回false> 624 #istile() <如果字符串是标题化(所有的单词都是以大写开始,其余字母均小写) 625 # 则返回ttue,否则返回false> 626 #isupper() <如果字符串至少包含一个区分大小写的字符,并且这些字符都是大写, 627 # 则返回ttue,否则返回false> 628 #join(sub) <以字符串作为分隔符,插入到sub中所有的字符之间> 629 #ljust(width) <返回一个左对齐的字符串,并且使用空格填充至长度为width的新字符串> 630 #lower() <转换字符串中所有大写字符为小写> 631 #lstrip() <去掉字符串左边的所有空格> 632 #partition(sub) <找到子字符串sub,把字符串分成一个3元组(pre_sub,sub,fol_sub), 633 # 如果字符串中不包含sub则返回('原字符串','','')> 634 #replace(old,new[,count]) <把字符串中的old子字符串替换成new子字符串, 635 # 如果count指定,则替换不超过count次> 636 #rfind(sub[,start[,end]]) <类似于find()方法,不过是从右边开始查找> 637 #rindex(sub[start[,end]]) <类似于index()方法,不过是从右边开始> 638 #rjust(width) <返回一个右对齐的字符串,并且使用空格填充至长度为width的新字符串> 639 #rpartion(sub) <类似于partion()方法,不过是从右边开始查找> 640 #rstrip() <删除字符串末尾的空格> 641 #splis(sep=none,maxsplit=-1) <不带参数默认是以空格为分隔符切片字符串,如果maxsplit参数有设置, 642 # 则仅分隔maxsplit个子字符串,返回切片后的子字符串拼接列表> 643 #splitlines(([keepends])) <按照'\n'分隔,返回一个包含各行作为元素的列表, 644 # 如果keepends参数指定,则返回前keepends行> 645 #startswith(prefix[,start[,end]])<检查字符串是否以prefix开头,是则返回true,否则返回false, 646 # start和end参数可以指定范围检查,可选> 647 #strip([chars]) <删除字符串前边和后边所有的空格,chars参数可以指定删除的字符,可选> 648 #swapcase() <翻转字符串中的大小写> 649 #title() <返回标题化(所有的单词都以大写开始,其余字母均小写)> 650 #####>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 651 #translate(table) <根据table的规则(可以由str.maketrans('a','b')定制)转换字符串只的字符> 652 # >>> str1 = 'ssssssaaaaasssss' 653 # >>> str1.translate(str.maketrans('s','b')) 654 # 'bbbbbbaaaaabbbbb' 655 ######>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 656 #upper() <转换字符串中的所有小写字符为大写> 657 #zfill(width) <返回长度为width的字符串,原字符串右对齐,前边用0填充> 658 ############################################################################################################# 659 660 ###########################################################################>>> 661 # 662 #以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎 663 # 664 #列表、元组操作 665 # ' ' 在python里 ' ' 里的内容为 '字符串' 。不加 ' ' 为变量名 666 #print()打印 667 668 # 英文名字大全 http://ename.dict.cn/list/all/M 669 670 names = ['Cahill','Teenglan','Eric','Peggie','Aalto','Baal','Sadie', 671 'Gage','Hagan','Jack','Kaley','Mabel','Lacy','Nadine','Pace','Amy'] 672 673 #通过下标访问列表中的元素,下标从0开始计数 674 print('---通过下标访问列表中的元素----') 675 676 print(names[0]) 677 print(names[1],names[3],names[4]) 678 print(names[-1]) 679 print(names[-2]) #还可以倒着取 680 print(' ') 681 682 print('---切片:取多个元素---') 683 print(names[1:4]) #取下标1至下标4之间的数字,包括1,不包括4 684 print(names[1:-1]) #取下标1至-1的值,不包括-1 685 print(' ') 686 687 print('---切片:取下标1至-1的值,不包括-1---') 688 print(names[0:3]) #取下标1至-1的值,不包括-1 689 print(names[:3]) #如果是从头开始取,0可以忽略,跟上句效果一样 690 print(' ') 691 692 print('---参数默认是0,-1就是倒数第1个----') 693 print(names[:3]) #如果想取最后一个,必须不能写-1,只能这么写 694 print(names[3:-1]) #这样-1(最后一个)就不会被包含了 695 print(' ') 696 697 print('---参数默认是0----') 698 print(names[0:5:2]) #后面的2是代表,每隔一个元素,就取一个,默认是1 699 print(names[::3]) #参数默认是0,所以可以不写 700 print(' ') 701 702 print(' ') 703 print('---追加names.append('')---每次只能追加一个') 704 names.append('我是新来的',) 705 print(names) 706 print(' ') 707 708 709 print(' ') 710 print('---插入names.insert(下标号,名字)---每次只能插入一个') 711 names.insert(3,'强行插队到下标位置3') 712 print(names) 713 print(' ') 714 715 print(' ') 716 print('---修改names[下标号]---') 717 names[5] = '修改换人了' 718 print(names) 719 print(' ') 720 721 print(' ') 722 print('---删除names.remove('')---') 723 print(names) 724 names.remove('Eric')#删除指定元素名字 725 print(names) 726 print(' ') 727 728 print('---删除names.pop(下标号)---') 729 print(names) 730 names.pop(2)#删除指定列表中下标的值,默认-1 731 print(names) 732 print(' ') 733 734 print(' ') 735 print('---拷贝names.copy()---') 736 print(names) 737 name_copy = names.copy() 738 print(name_copy) 739 print(' ') 740 741 print(' ') 742 print('---排序names.sort()和翻转names.reverse()---') 743 print('3.0里不同数据类型不能放在一起排序了') 744 print(names) 745 names.sort() 746 print(' ') 747 print(names) 748 names.reverse() 749 print(' ') 750 print(names) 751 752 print(' ') 753 print('---扩展names.extend(下标号)---') 754 print('---数字默认为字符串""可以不加,但是数据类型却是整数--') 755 print(names) 756 b = ['3',9,'Amy','Amy','b的扩展'] 757 names.extend(b) 758 print(names) 759 print(' ') 760 761 762 print(' ') 763 print('---统计names.count(' ')---') 764 print(names) 765 cut = names.count('Amy') 766 print(' ') 767 print(cut) 768 print(' ') 769 770 771 print(' ') 772 print('---获取下标names.index(' ')---') 773 print(names) 774 idx = names.index('Amy') 775 print(' ') 776 print(idx) 777 print(' ') 778 779 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 780 #以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎 781 #元组 782 #元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表 783 #它只有2个方法,一个是count,一个是index,完毕。 784 785 #列表的写法 786 name = ['Cahill','Teenglan','Eric','Amy','Amy','Amy','5','8'] 787 788 #元组的写法 789 names = ('Cahill','Teenglan','Eric','Amy','Amy','Amy','Amy','Amy') 790 791 print(' ') 792 print('---统计names.count(' ')---') 793 print(names) 794 cut = names.count('Amy') 795 print(' ') 796 print(cut) 797 print(' ') 798 799 800 print(' ') 801 print('---获取下标names.index(' ')---') 802 print(names) 803 idx = names.index('Amy') 804 print(' ') 805 print(idx) 806 print(' ') 807 808 #元组不能追加等操作,会报错。 809 names.append('新加') 810 811 812 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 813 # 814 #以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎交流py 815 816 #列表、元组操作浅copy(复制文件的快捷方式)和深copy(复制文件) 817 818 # names<变量名> print()<打印> 819 820 names = ['Cahill','Teenglan','Eric','Peggie','Aalto','Baal','Sadie', 821 'Gage','Hagan','Jack','Kaley','Mabel','Lacy','Nadine','Pace','Amy'] 822 823 print('---原来列表的内容---') 824 print(names) 825 print(' ') 826 name2 = names.copy() 827 828 print('---拷贝后列表的内容---') 829 print(name2) 830 print(' ') 831 832 print('---修改拷贝后列表里的内容---') 833 names[2] =['修改了'] 834 print(names) 835 print(' ') 836 print('---对比两个文件的内容---') 837 print(name2) 838 839 print(' ') 840 print('---列表打印-----------------------------------------------------') 841 print(' ') 842 843 print('----跳跃打印不写默认值---- ') 844 print(names[:]) 845 846 print(' ') 847 print('---跳跃打印---起始默认0:终止默认-1:跳跃默认1,默认值可以不写') 848 print(names[1:-3:2]) 849 850 print(' ') 851 print('---列表循环打印---for i in names:--- ') 852 print(' ') 853 for i in names: 854 print (i) 855 856 print(' ') 857 print(' ') 858 print('---新的实验浅pocy的用法----------------------------------------------------------------------------------------------------------------------------------------') 859 print(' ') 860 print('---重新定义列表,在列表里添加列表---') 861 name = ['Cahill','Peggie',['Ursula','Val',['Zena','Babb','Eric'],'Teenglan',],'Amy'] 862 863 print(name) 864 print(' ') 865 866 print(' ') 867 name3 = name.copy() 868 print('---拷贝后列表的内容---') 869 print(name3) 870 print(' ') 871 872 print('---修改拷贝后列表里的内容---') 873 name[1] =['改第一层'] 874 name[2][1] =['第二层'] 875 name[2][2][0] =['列表里第三层'] 876 print(name) 877 print(' ') 878 print('---对比两个文件的内容---') 879 print(name3) 880 print(' ') 881 882 print('浅pocy 只复制第一层内容,第二层开始只复制其快捷方式') 883 print(' ') 884 885 print(' ') 886 print('---深copy的使用---copy.deepcopy(namett)------完全多层复制---尽量不用------------------') 887 print(' ') 888 889 import copy 890 namett = ['Cahill','Peggie',['Ursula','Val',['Zena','Babb','Eric'],'Teenglan',],'Amy'] 891 print('---重新定义列表---') 892 print(namett) 893 nameff = copy.deepcopy(namett) 894 print('---拷贝后列表的内容---') 895 print(nameff) 896 print(' ') 897 898 print(' ') 899 print('---修改拷贝后列表里的内容---') 900 namett[1] =['改第一层'] 901 namett[2][1] =['第二层'] 902 namett[2][2][0] =['列表里第三层'] 903 print(namett) 904 print('---对比两个文件的内容---连第二第三层都没有跟着修改---') 905 print(nameff) 906 print(' ') 907 908 print(' ') 909 print('---深copy的使用---完全多层复制-------尽量不用----------------------------------') 910 print(' ') 911 912 print(' ') 913 print('---新的实验-数值的pocy------------------------------------------------------------') 914 print('数值的pocy---------------------------------------------------------') 915 a = 1 916 b = a 917 print(a) 918 print(' ') 919 print(b) 920 print(' ') 921 922 print('重新定义a后的对比') 923 a = 2 924 print(a) 925 print(' ') 926 print(b) 927 print(' ') 928 929 print(' ') 930 print(' ') 931 print('---浅copy的用法-----------------------------------------------------------') 932 print(' ') 933 #import<调用> copy<函数拷贝模块> list()<列表> print()<打印> 934 935 import copy 936 person=['name',['saving',100]] 937 938 p1=copy.copy(person) 939 p2=person[:] 940 p3=list(person) 941 942 print(p1) 943 print(' ') 944 print(p2) 945 print(' ') 946 print(p3) 947 print('-----------------------------------------------------------------------------------') 948 949 # 950 #列表、元组操作 951 # 952 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 953 954 955 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 956 #以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎 957 #<字典> 958 #help(dict) 959 # 960 # 961 #字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。 962 # 963 #字典的特性:dict是无序的,key必须是唯一的,所以天生去重。字典里没有下标 964 # 965 #key-value 966 #号码(下标):内容(可以重复) 967 # 968 969 print (' ') 970 print ('-------------创建字典的方法壹-------------------') 971 dict1 = {'num2': 'LongZe', 'num3': 'XiaoZe','num4':'Maliy','num5':'Jack','num6':'Hagan','num7':'Cahill'} 972 print(dict1) 973 974 print (' ') 975 print ('-------------创建字典的方法二-------------------') 976 dict2 = dict(鱼='让编程改变',书='读嘟嘟',笔='写写写') 977 print(dict2) 978 979 print (' ') 980 print ('-------------创建字典的方法三-------------------') 981 dict3 =dict((('f',70),('i',50),('s',111),('h',104))) 982 print(dict3) 983 984 985 print(' ') 986 print('------------------------字典增加-----------------') 987 dict1['yyy'] = '追加字典' 988 print(dict1) 989 990 print(' ') 991 print('------------------------字典修改-----------------') 992 dict2['鱼'] = '修改字典' 993 print(dict2) 994 995 print(' ') 996 print('------------------------字典删除方法壹-----------') 997 dict1.pop('num3') 998 print(dict1) 999 1000 print(' ') 1001 print('-----------py通用方法---字典删除方法二-----------') 1002 del dict1['num4'] 1003 print(dict1) 1004 1005 print(' ') 1006 print('------------字典删除方法三随机删除一个---------') 1007 dict1.popitem() 1008 print(dict1) 1009 1010 1011 print(' ') 1012 print('------------------字典查找方法壹返回True---------') 1013 'num2' in dict1 1014 print('num2' in dict1) 1015 1016 print(' ') 1017 print('---------------字典查找方法二----安全获取的方法--') 1018 cz = dict1.get("num2") 1019 print(cz) 1020 1021 print(' ') 1022 print('------------------字典查找方法三-----------------') 1023 dict1["num2"] 1024 print(dict1["num2"]) 1025 1026 print ('如果一个key不存在,就报错,get不会,不存在只返回None') 1027 1028 print(' ') 1029 print(' ') 1030 1031 #以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎 1032 #多级字典嵌套及操作 1033 av_catalog = { 1034 "欧美":{ 1035 "www.youporn.com": ["很多免费的,世界最大的","质量一般"], 1036 "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"], 1037 "letmedothis.com": ["多是自拍,高质量图片很多","资源不多,更新慢"], 1038 "x-aryrtyrtt.com": ["质量很高,真的很高","全部收费,屌比请绕过"] 1039 }, 1040 "日韩":{ 1041 "tokyo-hottuiyui": ["质量怎样不清楚","听说是收费的"] 1042 }, 1043 "大陆":{ 1044 "1024hkhkhkhkhkh": ["全部免费,真好,好人一生平安","服务器在国外,慢"] 1045 } 1046 } 1047 1048 av_catalog["大陆"]["1024"][1] += ",可以用爬虫爬下来" 1049 1050 print(av_catalog["大陆"]["1024"]) 1051 #ouput 1052 ['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来'] 1053 1054 #以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎 1055 #字典的其它姿势 1056 1057 #values 打印不包括keys所有的值 1058 info.values() 1059 dict_values(['LongZe Luola', 'XiaoZe Maliya']) 1060 1061 #keys 打印所有keys的值 1062 info.keys() 1063 dict_keys(['stu1102', 'stu1103']) 1064 1065 #setdefault 创建一个新的值,寻找某值,寻找不到创建 1066 info.setdefault("stu1106","Alex") 1067 'Alex' 1068 info 1069 {'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'} 1070 info.setdefault("stu1102","龙泽萝拉") 1071 'LongZe Luola' 1072 info 1073 {'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'} 1074 1075 #update 合并两字典,交叉就覆盖,没有就添加。 1076 info 1077 {'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'} 1078 b = {1:2,3:4, "stu1102":"龙泽萝拉"} 1079 info.update(b) 1080 info 1081 {'stu1102': '龙泽萝拉', 1: 2, 3: 4, 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'} 1082 1083 #items 字典转成列表 1084 info.items() 1085 dict_items([('stu1102', '龙泽萝拉'), (1, 2), (3, 4), ('stu1103', 'XiaoZe Maliya'), ('stu1106', 'Alex')]) 1086 1087 #通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个 1088 #初始一个新的字典,每个KEY用同一个值<值等于浅COPY,类似快捷方式> 1089 dict.fromkeys([1,2,3],'testd') 1090 {1: 'testd', 2: 'testd', 3: 'testd'} 1091 1092 1093 #以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎 1094 #循环dict<字典> 1095 1096 #方法1 #通过key寻找打印 1097 for key in info: 1098 print(key,info[key]) 1099 1100 #方法2 #把字典转成列表,然后打印列表里的('k','v') 1101 for k,v in info.items(): #会先把dict转成list,数据大时莫用 1102 print(k,v) 1103 1104 ##################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 1105 1106 1107 #############################################################################>>> 1108 #以下代码复制到python(3.6.2rc2)下 按F5 可以正常执行,对比学习。QQ:124111294欢迎 1109 # 1110 menu = { 1111 '北京':{ 1112 '海淀':{ 1113 '五道口':{ 1114 'soho':{}, 1115 '网易':{}, 1116 'google':{} 1117 }, 1118 '中关村':{ 1119 '爱奇艺':{}, 1120 '汽车之家':{}, 1121 'youku':{}, 1122 }, 1123 '上地':{ 1124 '百度':{}, 1125 }, 1126 }, 1127 '昌平':{ 1128 '沙河':{ 1129 '老男孩':{}, 1130 '北航':{}, 1131 }, 1132 '天通苑':{}, 1133 '回龙观':{}, 1134 }, 1135 '朝阳':{}, 1136 '东城':{}, 1137 }, 1138 '上海':{ 1139 '闵行':{ 1140 "人民广场":{ 1141 '炸鸡店':{} 1142 } 1143 }, 1144 '闸北':{ 1145 '火车战':{ 1146 '携程':{} 1147 } 1148 }, 1149 '浦东':{}, 1150 }, 1151 '山东':{}, 1152 } 1153 1154 # while not exit_flag <如果条件为假执行循环> 1155 # for k in current_layer <条件循环> 1156 # print(k) <打印> 1157 # input<输入> 1158 # .strip()#strip([chars]) <删除字符串前边和后边所有的空格,chars参数可以指定删除的字符,可选> 1159 # if <条件判断> 1160 # layers.pop() <删除> 1161 # elif choice not in <条件判断> 1162 # continue <跳出本次循环,重新循环> 1163 # else <否则,当if条件不成立时执行> 1164 # .append<附加> 1165 # choice<选择> 1166 1167 exit_flag = False 1168 current_layer = menu 1169 1170 layers = [menu] 1171 1172 while not exit_flag: 1173 for k in current_layer: 1174 print(k) 1175 choice = input(">>:").strip() 1176 if choice == "b": 1177 current_layer = layers[-1] 1178 #print("change to laster", current_layer) 1179 layers.pop() 1180 elif choice not in current_layer:continue 1181 else: 1182 layers.append(current_layer) 1183 current_layer = current_layer[choice] 1184 # 1185 #############################################################################>>>
1 #集合是一个无序的,不重复的数据组合,它的主要作用如下: 2 3 #去重,把一个列表变成集合,就自动去重了 4 #关系测试,测试两组数据之前的交集、差集、并集等关系 5 6 s = set([3,5,9,10]) #创建一个数值集合 7 t = set("Hello") #创建一个唯一字符的集合 8 9 a = t | s # t 和 s的并集 10 b = t & s # t 和 s的交集 11 c = t - s # 求差集(项在t中,但不在s中) 12 d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中) 13 14 #基本操作: 15 t.add('x') # 添加一项 16 s.update([10,37,42]) # 在s中添加多项 17 18 #使用remove()可以删除一项: 19 t.remove('H') 20 len(s) 21 #set 的长度 22 x in s 23 #测试 x 是否是 s 的成员 24 x not in s 25 #测试 x 是否不是 s 的成员 26 s.issubset(t) 27 s <= t 28 #测试是否 s 中的每一个元素都在 t 中 29 s.issuperset(t) 30 s >= t 31 #测试是否 t 中的每一个元素都在 s 中 32 s.union(t) 33 s | t 34 #返回一个新的 set 包含 s 和 t 中的每一个元素 35 s.intersection(t) 36 s & t 37 #返回一个新的 set 包含 s 和 t 中的公共元素 38 s.difference(t) 39 s - t 40 #返回一个新的 set 包含 s 中有但是 t 中没有的元素 41 s.symmetric_difference(t) 42 s ^ t 43 #返回一个新的 set 包含 s 和 t 中不重复的元素 44 s.copy() 45 #返回 set “s”的一个浅复制
您的资助是我最大的动力!
金额随意,欢迎来赏!
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的
因为,我的写作热情也离不开您的肯定支持,感谢您的阅读,我是【颜言】!