其他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 #############################################################################>>>
小部分老男孩pyton课程

 

 

 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”的一个浅复制
集合

 

posted @ 2017-08-03 19:40  颜言  阅读(408)  评论(0编辑  收藏  举报