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

今天学的两个简单的模块(准确的说是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()     当前工作目录  并不是指当前文件所在的目录,而是当前文件是在哪个目录执行的