python_生成器小結

#__author : "ziChuan"
#__data : 2019/7/19
import random
# print(random.random())
# print(random.randint(1,8))  #包含8
#print(random.choice("hello"))
#print(random.choice([[1,2,3],2,"1234"]))
#print(help(random.shuffle))
#print(random.sample([[1,2,3],2,"1234"],2))
#print(random.randrange(1,4))

#作個練習:不完整驗證碼
def v_code(): code = "" for i in range(5): add_num = random.choice([random.randrange(10), chr(random.randrange(65, 91))]) #if i == random.randint(0,4): # if random.choice: # add_num = random.randrange(10) # else: # add_num = chr(random.randrange(65,91)) code += str(add_num) print(code) v_code()

#列表生成器dom

[x*2 for x in range(10)]spa

 

#生成器(generator object)code

  

建立生成器的兩種方式:

    一、(x*2 for x in range[10]) >>>>>>>>>>>>>>generator object
    二、def f():
        print("ok")
        yield 2
        print("ok")
        f() >>>>>>>>>>>>>>>>>>>>>>generator object

    生成器的方法:
      一、next(f()) ------------------------------------計算出一個值
        注意:生成器在建立的時候已經決定了能計算出值的個數,調用
          next的次數超過這個值就會報StopIteration
        遍歷全部元素可使用for循環:
            for i in [1,2,3]:
              print i
          for循環內部作了三件事:
            1、調用對象的iter()方法,返回一個迭代器對象
            二、while:
                try:
                  i = next(list_Iterator)
                except StopIteration:
                  break
      二、send():
          f().send(None) #等價於next(f())

#迭代器對象

#知足迭代器協議:
  1、內部有next方法
  二、內部有Iter()方法

  li = [1,2,3]:Iterable(內部有Iter方法) >>>>>>>>>>>>>>iter()
  i = iter(li):list_Iterator
 

#模塊blog

import time  #時間模塊 
  time.time  #時間戳
  time.strftime()  #格式化時間戳
  time.gmtime() #UTC 時間
  time.localtime #北京時間
  time.ctime()  #時間日期格式
datetime
  datetime.datetime.now()
  
import random #隨機數模塊  chr()  #將數字轉化爲字母 驗證碼
相關文章
相關標籤/搜索