zoukankan      html  css  js  c++  java
  • py 的 第 18 天

    今天本打算写完购物车再来写作业博客,可是实在太难了,

    今天学的两个简单的模块(准确的说是3)

    第一个 import  random   这个模块不知道该怎么记,随机数?

    第一学的取随机数,和随机小数

    print(random。random())   这个比较牛逼了,就是随机0-1之间的小数,加东西就报错

    print(random。uniform(n,m))  这个就是取n到m中的小数,随机,n或m是小数也行,就是取中间的

    随机整数

    print(random。randint(n,m))  取n m中的整数,顾头顾尾

    print(random。randrange(n,m))然哥就是顾头不顾尾

    print(random。randrange(n,m,数字) 老朋友 步长,取 1-10 所有奇数偶数,或3个数几个数什么的

    从一个列表中随机取值

    列表名=【字符串,数字,元组,字典】这些都可以

    print(random。choice(列表名))          随机取一个元素,

    print(random。sample(列表名,2))    随机取几个元素,几个具体看后面的数字

    random。shuffle(列表名)

    print(列表名)               随机打乱这个列表,再重新排序一下这个列表,打印出来

    4位数字的验证码

    s=“ ”

     for i in range(4)           6位同理 数字换成6

    a=str(random.randint(0,9))

    s+=a

    print(a)

     函数版本

    def suiji(a=6):   

      s=“ ”

       for i in range(a)                    这里a是6如果下面没有传参就是6了

      a=str(random.randint(0,9))

      s+=a

        return a

    print(suiji())

    print(suiji(5))       这传参的话就是5了,    这样就5位了

    现在是6位加字母的

    s="   "

    for i in range(6)

        a=random.randint(0,9)         这里马上学到一个新知识点,chr和ord   chr是把后面的数字变成ascii码打出来,ord则是相反 把ascii码转换成数字

        b=chr(random.randint(65,90))   65 到90  26个大写英文字母

      c=chr(random.randint(97,122))   97到122  26个小写英文字母

      d=random.choice([a,b,b])

      s+=d

    print(s)

    函数版的

    def suiji(n=6):          n这个同理传参的问题

        s="   "

          for i in range(n)

                a=random.randint(0,9)         

                b=chr(random.randint(65,90))   65 到90  26个大写英文字母

              c=chr(random.randint(97,122))   97到122  26个小写英文字母

              d=random.choice([a,b,b])

                s+=d

              return s

    print(suiji(5)) 参数问题

    def suiji(n=6,zimu=true):

            s=" "

        for i in range(n)

            a=random.randint(0,9)

            if zimu:

              b=chr(random.randint(65,90))

              c=chr(random.randint(97,122))

              a=random.choice([a,b,c])     变量还能这么用,学到了

            s+=a

          return  s

    print(suiji(5,false))      这是直接位置传参,  

    print(suiji( zimu=false))      这是关键字传参

    import   time

    time。sleep(2)  程序运行到这里等待2s

    time 模块主要就是时间问题

    时间格式

        2018-8-20     2018.8.20 字符串数据类型       格式化时间-给人看的1  

        结构化时间

          1534732642.617272  浮点型数据类型,以s为单位 时间戳时间 - 给机器计算用的

        时间最小是1970 1 1      0:0:0       伦敦时间,现在在想是格林尼治时间还是图灵机是英国发明的

        时间戳时间 1534758988.760395

        打印方法print(time.time())

    格式化时间

    print(time.strftime('%Y-%m-%d %H:%M:%S'))  这个就是人能看懂的2018-08-20 17:58:26

    print(time.strftime('%y-%m-%d %H:%M:%S'))  这个就是小写y   前面是18  没20 了

    print('%c')这是英国的时间,同上,Mon Aug 20 18:56:54 2018

    结构化时间    

    a=time.localtime()   北京时间

    pring(a) 这个给出一堆结构化时间 time.a(tm_year=2018, tm_mon=8, tm_mday=20, tm_hour=19, tm_min=18, tm_sec=21, tm_wday=0, tm_yday=232, tm_isdst=0)  分别是年月日,小时,分钟,秒,星期几 1是0,程序员的梗,最后一个夏令时,澳洲还有

    print(a.tm_mon) 显示8 参考上面你懂的

    时间戳换成字符串时间

    print(time。time())打印当前时间的时间戳

    a=time.localtime(1500000000)

    print(a) ======print(time.gmtime150))   都是结构化时间

    ret=time.strftime('%y-%m-%d %H:%M:%S',a)

    print(rert)          这样打印就是格式化时间了

    字符串时间 转 时间戳

    a=time.strptime('2018-8-8',%y-%m-%d')

    print(a)       这个是结构化时间

    b=time.mktime(a)

    print(b) 这个就是时间戳了

    这个时候很有必要来着一张图了

    # 1.查看一下2000000000时间戳时间表示的年月日

    # 时间戳 - 结构化 - 格式化

    a=time.localtime(2000000000)   这时候a是结构化时间

    b=time.steftime('%y-%m-%d',a)   这时候b是格式化时间

    3.请将当前时间的当前月1号的时间戳时间取出来 - 函数

    # 2018-8-1

    # def get_time():

    #     st = time.localtime()    这个默认是电脑当前时间,变成结构化时间

    #     st2 = time.strptime('%s-%s-1'%(st.tm_year,st.tm_mon),'%Y-%m-%d')把电脑当前的结构化时间中的年月拿出来,1留着,

    #     return time.mktime(st2)        再把新做的时间 做成时间戳

    # print(get_time())

     4.计算时间差 - 函数

        # 2018-8-19 22:10:8 2018-8-20 11:07:3

        # 经过了多少时分秒

    # str_time1 = '2018-8-19 22:10:8'

    # str_time2 = '2018-8-20 11:07:3'    定义两个变量,定义好时间

    # struct_t1 = time.strptime(str_time1,'%Y-%m-%d %H:%M:%S')   

    # struct_t2 = time.strptime(str_time2,'%Y-%m-%d %H:%M:%S')   两个字符串时间转化成结构化时间

    # timestamp1 = time.mktime(struct_t1)

    # timestamp2 = time.mktime(struct_t2)   两个结构化时间转换成时间戳

    # sub_time = timestamp2 - timestamp1     两个时间戳相减

    # gm_time = time.gmtime(sub_time)       时间戳转换成英国的结构化时间

    # # 1970-1-1 00:00:00       因为英国结构化时间是标准时间,中国的多8个小时

    # print('过去了%d年%d月%d天%d小时%d分钟%d秒'%(gm_time.tm_year-1970,gm_time.tm_mon-1,

    #                                  gm_time.tm_mday-1,gm_time.tm_hour,

    #                                  gm_time.tm_min,gm_time.tm_sec))

     import   sys
    sys  是和python解释器打交道的
    sys.argv
    print(sys.argv)      argv 的第一个参数,是py这个命令后面的值

    # usr = input('username')

    # pwd = input('password')

     # usr = sys.argv[1]

    # pwd = sys.argv[2]

    # if usr == 'alex' and pwd == 'alex3714':

    #     print('登录成功')

    # else:

    #     exit()

    # 1. 程序员 运维人员  在命令行运行代码

    # 2. 操作系统input事件 阻塞 退出了CPU的竞争

    # sys.path

    # print(sys.path)

    # 模块是存在解释器里的么??? 不是

    # 模块应该是存在硬盘上

    # 但是我在使用的时候 import --> 这个模块才到内存中

    import os   os是和操作系统交互的模块

    os.makedirs(‘dir1/dir2’)  这个可以创建多级目录,

    os。mkdir(‘dir3’)        这只能创建单级目录

    os。rmdir('dir3")        删单级目录 

    os。removedirs(‘dir3/dir4’) 删多个     这两个只能删空文件夹

    os.'system('dir')  # 执行操作系统的命令,没有返回值,实际的操作/删除一个文件 创建一个文件夹 exec

    程序要处理这些路径

    # exec/eval执行的是字符串数据类型的 python代码

    # os.system和 os.popen是执行字符串数据类型的 命令行代码

    system像exec直接去执行没有返回值

    popen像eval有返回值

    popen('dir) 适合做查看类的操作

    os.getcwd()     当前工作目录  并不是指当前文件所在的目录,而是当前文件是在哪个目录执行的

  • 相关阅读:
    数据库事务隔离级别-- 脏读、幻读、不可重复读
    【洛谷7518】[省选联考 2021 A/B 卷] 宝石(树上倍增+并查集)
    【CF666D】Chain Reaction(暴搜+细节讨论)
    【洛谷5064】[Ynoi2014] 等这场战争结束之后(操作树+值域分块)
    【洛谷7437】既见君子(状压+矩阵树定理)
    【洛谷5046】[Ynoi2019 模拟赛] Yuno loves sqrt technology I(分块)
    【LOJ2462】「2018 集训队互测 Day 1」完美的集合(树上连通块问题+扩展卢卡斯)
    【洛谷4339】[ZJOI2018] 迷宫(神仙题)
    【CF639E】Bear and Paradox(贪心+二分)
    【洛谷5444】[APIO2019] 奇怪装置(数论)
  • 原文地址:https://www.cnblogs.com/Mrszhao/p/9508232.html
Copyright © 2011-2022 走看看