zoukankan      html  css  js  c++  java
  • Python:time模块&序列化&生成随机数&反射

    time模块:
    >>> import time >>> time.time <built-in function time> >>> time.time() 1473837803.320634 >>> time.localtime() time.struct_time(tm_year=2016, tm_mon=9, tm_mday=14, tm_hour=15, tm_min=23, tm_sec=58, tm_wday=2, tm_yday=258, tm_isdst=0) >>> time.ctime() 'Wed Sep 14 15:25:17 2016' >>> time.strftime('%Y-%m-%d %H:%M:%S') '2016-09-14 15:35:30'

    序列化和json:

    序列化:把变量从内存中变成可存储或者传输的过程叫序列化。序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。

    • pickle.dump:把对象存储到磁盘中,或传输到其他主机。直接把对象序列化成file-like object
    • pickle.dumps:把任意对象序列化成一个bytes,然后可以把这个bytes写入文件中

    反序列化:把变量内容从序列化的对象重新读到内存里称之为反序列化。

    • pickle.load:直接从file-like object中反序列化出对象
    • pickle.loads:把磁盘中的对象读取到内存中,先把内容读取到一个bytes,然后用pickle.loads反序列化出对象

    json:把内存的数据json化,原理与序列化一样

    区别:pickle只能在python中运用;json所有语言支持,只能序列化常规的数据类型;pickle序列化的数据不能直观的看出数据内容

    #序列化:
    import pickle
    
    d = dict(name='pingy',age=25,addr='BJ')
    
    f = open('pickle_file.txt','wb')
    pickle.dump(d,f)
    f.close()

    输出结果:在目录下能看到新建的pickle_file.txt文件,里面内容为十六进制乱码

    #反序列化:
    import pickle
    
    f = open('pickle_file.txt','rb')
    d = pickle.load(f)
    f.close()
    print (d)

    输出结果为:

    {'name': 'pingy', 'age': 25, 'addr': 'BJ'}

    读取到存在目录下的pickl_file.txt中的内容。

    生成随机数:

    random:随机数
    random.random():随机生成0-1的小数
    random.randint(1,5):随机生成1-5范围内的整数(包括1和5)
    random.uniform(10,20):随机生成10-20范围内的浮点数 random.randrange(
    1,3):随机生成1-3范围内的整数(不包括3) random.choice(''): 从序列中随机获取一个元素 random.sample(list, k):从list序列中随机获取5个元素,原有序不会改变
    random.shuffle():将一个列表中的元素打乱

    例:

    #随机整数:
    >>> import random
    >>> random.randint(0,99)
    21
    #随机选取0到100间的偶数:
    >>> import random
    >>> random.randrange(0, 101, 2)
    42
    #随机字符:
    >>> import random
    >>> random.choice('abcdefg&#%^*f')
    'd'
    #多个字符中选取特定数量的字符:
    >>> import random
    random.sample('abcdefghij',3)
    ['a', 'd', 'b']
    #随机选取字符串:
    >>> import random
    >>> random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] )
    'lemon'
    #洗牌:
    >>> import random
    >>> items = [1, 2, 3, 4, 5, 6]
    >>> random.shuffle(items)
    >>> items
    [3, 2, 5, 6, 4, 1]

     

    #随机生成6位验证码
    
    import random
    
    def verification(length=6):
        code_list = []
        for i in range(10):
            code_list.append(str(i))
        for i in range(65,91):
            code_list.append(chr(i))
        for i in range(97,123):
            code_list.append(chr(i))
    
        my_list = random.sample(code_list,length)
        code = ''.join(my_list)
        return code
    
    print(verification())

    反射:以字符串的形式导入模块,并以字符串的形式执行函数

     

     输出结果:

    这是module_1中的func函数!
  • 相关阅读:
    基于Mybatis3.0.6的基本操作介绍
    正则验证邮箱格式是不是正确
    Linux_文件权限
    飘逸的python
    通过Fsharp探索Enterprise Library Exception
    Oracle学习——扫盲篇
    代码块练习题:看代码写程序的执行结果。
    代码块:在Java中用{}括起来的代码
    Java中如何使用帮助文档(API)
    Java如何制作帮助文档(API)
  • 原文地址:https://www.cnblogs.com/ping-y/p/5882174.html
Copyright © 2011-2022 走看看