#__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()

#列表生成器

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

#生成器(generator object)

  

创建生成器的两种方式:

    1、(x*2 for x in range[10]) >>>>>>>>>>>>>>generator object
    2、def f():
        print("ok")
        yield 2
        print("ok")
        f() >>>>>>>>>>>>>>>>>>>>>>generator object     生成器的方法:
      1、next(f()) ------------------------------------计算出一个值
        注意:生成器在创建的时候已经决定了能计算出值的个数,调用
          next的次数超过这个值就会报StopIteration
        遍历所有元素可以使用for循环:
            for i in [1,2,3]:
              print i
          for循环内部做了三件事:
            1、调用对象的iter()方法,返回一个迭代器对象
            2、while:
                try:
                  i = next(list_Iterator)
                except StopIteration:
                  break
      2、send():
          f().send(None) #等价于next(f())

#迭代器

#满足迭代器协议:
  1、内部有next方法
  2、内部有Iter()方法   li = [1,2,3]:Iterable(内部有Iter方法) >>>>>>>>>>>>>>iter()
  i = iter(li):list_Iterator
 

#模块

import time  #时间模块 
  time.time #时间戳
  time.strftime()  #格式化时间戳
  time.gmtime() #UTC 时间
  time.localtime #北京时间
  time.ctime()  #时间日期格式
datetime
  datetime.datetime.now()
  
import random #随机数模块
  chr()  #将数字转化为字母 验证码

          

python_生成器小结的更多相关文章

  1. Python: 迭代器与生成器小结

    迭代器与生成器的区别: 1. 迭代器由Class对象创建. 生成器由包含yield表达的Function对象或者Generator Expression创建. 2. 迭代器的原理: (1)由Itera ...

  2. Python_生成器函数进阶_39

    def generator(): print(123) content = yield 1 #content接收的是send传的值 print('=======',content) print(456 ...

  3. Python_生成器generator

    生成器:调用时返回一个迭代器 如果一个函数中包含yield语法,那这个函数就会变成一个生成器 例1: def draw_money(draw): #这个函数称为生成器 while draw >0 ...

  4. 零基础学习python_生成器(49课)

    一个生成器函数的定义很像一个普通的函数,除了当它要生成一个值的时候,使用yield关键字而不是return.如果一个def的主体包含yield,这个函数会自动变成一个生成器(即使它包含一个return ...

  5. python_生成器

    生成器: # 生成器函数(内部是否包含yield) def func(): print('F1') yield 1 print('F2') yield 2 print('F3') yield 100 ...

  6. Python_生成器和迭代器的区别

    迭代器和生成器的区别是什么?这个问题面试的时候经常作为灵魂拷问.今天一起从概念到代码梳理一遍,作为总结和记录. 区别是: 生成器的好处是延迟计算,一次返回一个结果.也就是说,它不会一次生成所有的结果, ...

  7. python之迭代器,生成器小结

    1.凡是可作用于for循环的对象都是Iterable类型: 2.凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列: 3.集合数据类型如list.dict.str等 ...

  8. python基础-迭代器和生成器

    一.递归和迭代 1.递归:(问路示例) 递归算法是一种直接或者间接地调用自身算法的过程.在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解. 2.迭代:简单理 ...

  9. python迭代器和生成器(3元运算,列表生成式,生成器表达式,生成器函数)

    1.1迭代器 什么是迭代器: 迭代器是一个可以记住遍历的位置对象 迭代器对象从集合的第一个元素元素开始访问,直到所有元素被访问完结束,迭代器只能往前不会后退. 迭代器有两个基本方法:iter ,nex ...

随机推荐

  1. DatePicker和DataPickerDialog以及AutoCompleteTextView的基本使用方法

    1.DatePicker和DatePickerDialog的基本使用方法: main.xml: <?xml version="1.0" encoding="utf- ...

  2. Day2-K-Red and Black-HDU1312

    There is a rectangular room, covered with square tiles. Each tile is colored either red or black. A ...

  3. Django(十六)基于模板的登录案例:登录装饰器、csrf攻击方式及防护、ajax的Post 的csrf开启写法、生成验证码、加验证码登录、反向解析+传参

    一.csrf攻击 1.1 csrf攻击(跨站请求伪造) [csrf攻击即]:通过第3方网站,伪造请求(前提条件是你已经登录正常网站,并保存了session或cookie登录信息且没有退出),第三方网站 ...

  4. NPM概述及使用简介

    什么是 NPM npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP. npm是Node官方提供的包管理工具,他已经成了Node包的标准发布平台,用于Node ...

  5. Spring声明式事物原理分析

    基础准备 pom <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www. ...

  6. Windows 与 Linux 、esxi下面查看内存容量和数量

    1. Windows 查看内存信息: > wmic MEMORYCHIP get BankLabel,DeviceLocator,Capacity,Speed 2. Linux 查看内存信息: ...

  7. Java提升二:Lambda表达式与方法引用

    1.Lambda表达式 1.1.定义 lambda表达式是对于函数式接口(只含有一个抽象方法的接口)的简洁实现方式.它与匿名内部类的作用相似,但是就使用范围而言,匿名内部类更为广泛,而lambda表达 ...

  8. Day6 - J - Cartesian Tree POJ - 2201

    Let us consider a special type of a binary search tree, called a cartesian tree. Recall that a binar ...

  9. Quartus设计FIR滤波器的系数文件格式(适用于FIR II的IP核)

    对常用的FIR,我们使用MATLAB的fdatool(或者filterDesigner) 设计滤波器,给定指标,生成系数.为了方便,我们将系数保存到文件,其保存格式比较简介,在此进行说明. 1.FIR ...

  10. POJ 2287 田忌赛马

    Tian Ji -- The Horse Racing Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 17699   Acc ...