#__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. main.js index.html与app.vue三者关系详解

    main.js index.html与app.vue三者关系详解 2019年01月23日 11:12:15 Pecodo 阅读数 186   main.js与index.html是nodejs的项目启 ...

  2. 【Linux】centos7下解决yum -y install mysql-server 没有可用包

    第一步:安装从网上下载文件的wget命令 [root@localhost ~]# yum -y install wget 第二步:下载mysql的repo源 [root@localhost ~]# w ...

  3. PHP 获取header 的自定义参数值

    $.ajax({ type: "GET", url: "default.aspx", beforeSend: function(request) { reque ...

  4. 1-m*n循环填数(用标记数组)blibli2018秋招第三题一个类型

    #include <iostream> #include<string> #include<algorithm> using namespace std; ; in ...

  5. 「NOIP2007」树网的核

    传送门 Luogu 解题思路 这里着重介绍 \(O(n^3)\) 的做法,毕竟考场上只有 \(N\le300\) \(Q \omega Q\) 首先我们要知道,对任意一条直径算偏心距都是一样的. 证明 ...

  6. spring事务代码实践

    事务一般是指数据库事务,是指作为一个程序执行单元执行的一系列操作,要么完全执行,要么完全不执行.事务就是判断以结果为导向的标准. 一.spring的特性(ACID) (1).原子性(atomicity ...

  7. poj2236 Wireless Network(并查集直接套模板

    题目地址:http://poj.org/problem?id=2236 题目大意:n台电脑都坏了,只有距离小于d且被修好的电脑才可以互相联系,联系可传递.输入n和d,n个点的坐标x y.两个操作:O ...

  8. 机器学习(ML)八之正向传播、反向传播和计算图,及数值稳定性和模型初始化

    正向传播 正向传播的计算图 通常绘制计算图来可视化运算符和变量在计算中的依赖关系.下图绘制了本节中样例模型正向传播的计算图,其中左下角是输入,右上角是输出.可以看到,图中箭头方向大多是向右和向上,其中 ...

  9. Mac安装软件提示破损

    安装提示破损 zhong终端输入 sudo spctl --master-disable 就可以顺利打开啦

  10. 使用 Dashboard【转】

    上一节我们完成了 Kubernetes Dashboard 的安装,本节就来实践一下. Dashboard 界面结构 Dashboard 的界面很简洁,分为三个大的区域. 顶部操作区在这里用户可以搜索 ...