代码改变世界

day5- 内置函数&函数&模块(os、sys、radom、string、time、加密)

2018-01-20 20:11  yemeiling  阅读(157)  评论(0)    收藏  举报

内置函数:

print(all([1,2,3,4]))#判断可迭代的对象里面的值是否都为真
print(any([0,1,2,3,4]))#判断可迭代的对象里面的值是否有一个为真
print(bin(10))#十进制转二进制
print(chr(10))#打印数字对应的ascii
print(dict(a=1,b=2))#转换字典
print(locals())#返回局部变量
print(max(111,12))#取最大值
print(round(11.11,2))#取几位小数
print(sorted([2,31,34,6,1,23,4]))#排序
__import__('decorator')#导入一个模块
print(bool('s'))#把一个对象转换成布尔类型
print(eval('[]'))#执行python代码,只能执行简单的,定义数据类型和运算
print(globals())#返回程序内所有的变量,返回的是一个字典

函数:
函数名也是一个变量
 1、 如果函数返回多个值的时候,会把这return的多个值保存成一个元祖
  res=hello('aa','bb','cc','dd')
   print(res) #执行结果('aa', 'bb', 'cc', 'dd')--这是一个元祖

2、将int 转换为str类型
nums=[1,2,3,4,5,6,7]
  new_nums=[str(x) for x in nums] # 这个叫做列表推倒试,简化循环代码
  print(new_nums) # 执行结果变成字符串了:['1', '2', '3', '4', '5', '6', '7']
3、交换两个变量的值,不需要引用第三方变量,有如下2种方式:
  a=2 b=1
  方式一:b,a=a,b #直接替换
   方式二, 这种方式只存在int类型
        a=a+b #3
        b=a-b #2
        a=a-b #1
        print(a,b) # 执行结果 1 2
 4、json的处理:

    json串就是字符串
    1、将字典转换成json
       res =json.dumps(d,indent=8,ensure_ascii=False)#把list、字典转换成json indent 是缩减多少
       f1=open('f1','w',encoding='utf-8')
            f1.write(res)
    2、 json 里面都是双引号
      f1=open('f1',encoding='utf-8')
      res=f1.read()
    3、dic_res=json.loads(res) #把json串变成python都数据类型
      print(dic_res)
    4、 自动帮你写入文件,第一个参数是数据,第二个是文件对象
      f2=open('f2','w',encoding='utf-8')
      json.dumps(d,f2,ensure_ascii=False,indent=4)#把list、字典转换成json indent 是缩减多少
     5、自动帮你读文件,load不带s的是操作文件,带S的是操作json
       f1=open('f1',encoding='utf-8')
      print(json.load(f1))

常用的os模块:

     os.getcwd()#取当前工作目录
     os.mkdir("test1"))# 创建文件夹
     os.remove("../day4/5.png") # 删除文件,不能删文件夹。
       os.listdir('c://') # 列出一个目录下的所有文件
    os.rename("test", "test1") # 重命名
    os.path.abspath(__file__)# 获取绝对路径
    os.path.split("c:\\usr\\hehe\\hehe.txt") # 分割路径和文件名
    os.path.dirname("c:\\usr\\hehe\\hehe.txt") # 获取父目录
    os.path.exists("c://test2") # 目录/文件是否存在
           os.path.isfile(r"E:\txz\day2.zip")#判断是否是一个文件
    os.path.isdir(r"E:\txz\day2")#是否是一个文件夹
    os.path.join("e",name)#拼接成一个路径
    os.system('ipconfig') # 用来操作系统命令的,只能执行,不能获取不到结果
           通过如下可以获取结果,并且只能获取非动态的,如果是动态的就获取不到了,比如top命令
    res=os.popen('ipconfig')
    print(res.read())

常用的sys模块:

    sys.path #查看环境变量
    sys.platform)#查看当前系统是什么
    sys.version #查看python的版本
    sys.exit('程序退出') #程序退出
    quit('程序退出.....')
    sys.argv # 获取运行pyhton文件的时候,传入的参数,放在list中

  常用的随机和string模块:

   string: 

    string.digits#所有的数字 0-9
    string.ascii_lowercase #所有的小写字母
    string.ascii_uppercase#所有的大写字母
    string.ascii_letters#所有的小写字母+大写字母
    string.punctuation#所有的特殊字符

  random:

  (1)random.randint 随机取一个整数
    print(random.randint(1,199)) #1-199随机取一个整数
  (2)random.choice 随机取一个元素
    s=random.choice(['yml','mpp','zhx']) #随机取一个元素
    print(s)
  (3)random.sample 随机取N个元素
    res=random.sample(string.digits,3) # 得到的是一个list
    print(''.join(res)) #运行结果是034这样的一个结果,把list中的值连接起来变成一个字符串
  (4) random.uniform 随机取小数
    res=random.uniform(1,9)
    res1=round(res,2) #保留2位小数,如果四舍五入之后,最后一位小数是0,那么不显示
    print(res1)
  (4)random.random 取0-1之间的随机小数
    res=random.random()
    print(res)

     (5) random.shuffle 洗牌,打乱顺序的,只能传入list,是没有返回值的
    s=['a','b','f','q','h']
    res=random.shuffle(s) #执行结果为None,因为这个方法是没有返回值的,只是打乱顺序
    random.shuffle(s)
    print(s)

 时间处理模块:

    time:  格式化的时间 2018-1-02 -----时间撮,是从unix元年到现在所有的秒数 

  1、等待几秒
    time.sleep(5)
  2、当前的时间撮
    print(int(time.time()))
  3、取当前时间的格式化时间
    cur_time=time.strftime('%Y-%m-%d-%H:%M:%S')
    print(cur_time)
  4、时间元祖,默认的是取标准时区的时间元祖,如果传入了一个时间撮,那么会把这个时间撮转化成时间元祖
    time.gmtime()
  5、查看和标准时间相差了几个小时
    time.timezone
  6、 想时间撮和格式化好的时间相互转换的话,都要先转化成时间元祖,然后才能转化
    time.localtime()#默认取当前时区的时间元祖
    cur_time=time.localtime(1516006898)
    res=time.strftime('%Y-%m-%d-%H:%M:%S',cur_time)
    print(res)
  7、时间撮转成格式化好的时候
    def timestmapToStr(time_stramp,format='%Y-%m-%d-%H:%M:%S'):
    cur_time = time.localtime(time_stramp) #时间撮转成时间元祖
    res = time.strftime(format, cur_time) #在把时间元祖转成格式化好的时间
    print(res)
    return res
    timestmapToStr(1515920498)
  8、格式化好的时间转化成时间撮
    def strToTimestamp(time_st,format= '%Y%m%d%H%M%S'):
    t=time.strptime('20181128','%Y%m%d') #把格式化好的时间转化成时间元祖
    res=time.mktime(t) #再把时间元祖转化是时间撮
    print(res)
    return res
    strToTimestamp('2018-01-14-17:01:38')
  9、# 通过时间撮的加减可以得到几天前或几天后的时间,一天的时间撮为 86400

加密模块

  s='dfsdf34234sfsdf'
  1、使用base64编码进行加密
    bytes_s=s.encode() #转成二进制
    res=base64.b64encode(bytes_s) #base64编码
    print(res.decode()) #把bytes转成字符串
  2、解密用base64.b64decode()
    jie_mi_res=base64.b64decode(res.decode())
    print(jie_mi_res)
    print(jie_mi_res.decode())