第十五天(内置函数)

第十五天(内置函数)

import datetime

# 获取当前年月日
# print(datetime.date.today())

# 获取当前年月日时分秒
# print(datetime.datetime.today())
# l1 = datetime.datetime.today()
# print(type(time_obj))
# print(time_obj.year)
# print(time_obj.month)
# print(time_obj.day)

# 从索引0开始计算周一
# UTC
# print(l1.weekday()) # 0-6
# ISO
# print(l1.isoweekday()) # 1-7
# 北京时间
# print(datetime.datetime.now())
# 格林威治
# print(datetime.datetime.utcnow())

'''
日期/时间的计算 (*******)
  日期时间 = 日期时间 “+” or “-” 时间对象
  时间对象 = 日期时间 “+” or “-” 日期时间
'''
# 日期时间:
# s1 = datetime.datetime.now()
# print(s1)
# 获取七天时间
# l1 = datetime.timedelta(days=7)
# print(l1)

# 获取当前七天的时间
# 日期时间 = 日期时间‘+’ or ‘-’ 时间对象
# l2 = s1 + l1
# print(l2)


import random

# 随机获取1- 9中任意的整数
# l1 = random.randint(1, 9)
# print(l1)

# 默认获取0-1中间任意小数
# l2 = random.random()
# print(l2)

# 打乱顺序
# l3 = ['wanglu','zhaoqiao','yinglili','jinyi']
# random.shuffle(l3)
# print(l3)

# 随机获取可迭代对象中的某个值
# l4 = ['a', 'b', 'c', 'd', 'e']
# s2 = random.choice(l4)
# print(s2)


'''
随机验证码需求:
  大小写字母、数字组合而成
  组合5位数的随机验证码
   
前置技术:
  chr() 可以将ASCII表中值转换成对应的字符
  random.choice
'''

# 获取任意长度的随机验证码
# def get_code(n):
#     code = ''
#     # 每次循环只从大小写字母、数字中取出一个字符
#     for i in range(n):
#         # 随机获取一个小写字母
#         r1 = random.randint(97, 122)
#         s1 = chr(r1)
#
#         # 随机获取一个大写字母
#         r2 = random.randint(65, 90)
#         s2 = chr(r2)
#
#         # 随机获取一个数字
#         r3 = str(random.randint(0, 9))
#
#         code_list = [s1, s2, r3]
#
#         random_code = random.choice(code_list)
#
#         code += random_code
#
#     return code
#
# code = get_code(5)
# print(code)




'''
os与操作系统交互的模块
'''
import os

# 获取当前项目根目录

# 获取当前文件中的上一级目录
# LIANXI = os.path.dirname(__file__)
# print(LIANXI)

# 项目的根目录,路径相关的值都用'常量'
# DAY15 = os.path.dirname(LIANXI)
# print(DAY15)

# 路径拼接:拼接文件‘结对路径’
# FOO = os.path.join(LIANXI, '二次元.txt')
# print(FOO)

# 判断'文件/文件夹'是否存在:返回布尔值
# print(os.path.exists(FOO))   # False
# print(os.path.exists(LIANXI))   # True


# 判断'文件夹'是否存在
# print(os.path.isdir(FOO)) # False
# print(os.path.isdir(LIANXI)) # True

# 创建文件夹
# CHUANG_JIAN = os.path.join(LIANXI, '三次元')
# os.mkdir(CHUANG_JIAN)

# 删除文件夹
# coo1 = os.listdir()
# print(coo1)

# 让用户选择文件
# s1 = os.listdir(r'D:\python上海正式课\课后随笔\15\day15\二次元')
# # print(s1)
# while True:
#     # 1、打印二次元老婆
#     for index, name in enumerate(s1):
#         print(f'编号:{index} 文件名:{name}')
#
#     choice = input('选择你的真爱--->(三笠天下第一) 编号: ').strip()
#     # 限制用户必须输入数字,数字的范围必须在编号内
#     # 不符合,重新输入
#     if not choice.isdigit():
#         print('老婆序号')
#         continue
#
#     # 正确,继续执行
#     choice = int(choice)
#
#     # 判断超出范围,重新输出
#     if choice not in range(len(s1)):
#         print('不要太贪心了')
#         continue
#
#     s2 = s1[choice]
#
#     s3 = os.path.join(r'D:\python上海正式课\课后随笔\15\day15\二次元', s2)
#     print(s3)
#
#     with open(s3, 'r', encoding='utf-8')as f:
#         print(f.read())


'''
hashlib是一个加密模块:
  内置了很对算法:
  MD5(*******):不可解的算法(2018年以前)
'''
import hashlib

def pwd_md5(pwd):  #
   md5_obj = hashlib.md5()
   # print(type(md5_obj))
   str1 = pwd  # '1234'
   # update中一定要传入bytes类型数据
   md5_obj.update(str1.encode('utf-8'))

   # 创造盐
   sal = '坦克怎么这么帅啊!'
   # 加盐
   md5_obj.update(sal.encode('utf-8'))

   # 得到一个加密后的字符串
   res = md5_obj.hexdigest()
   # eb1ca06cf5940e9fb6ef39100ec72c94
   return res

# user_str1 = f'tank:1234'
#
# user_str2 = f'tank:{res}'

# with open('user.txt', 'w', encoding='utf-8') as f:
#     f.write(user_str2)

# 模拟用户登陆操作

# 获取文件中的用户名与密码
with open('user.txt', 'r', encoding='utf-8') as f:
   user_str = f.read()

file_user, file_pwd = user_str.split(':')

# 用户输入用户名与密码
username = input('请输入用户名:').strip()
password = input('请输入密码:').strip()  # 1234

# 校验用户名与密码是否一致
if username == file_user and file_pwd == pwd_md5(password):  # pwd_md5('1234')
   print('登陆成功')
else:
   print('登陆失败')

 

猜你喜欢

转载自www.cnblogs.com/zhangjinyi97/p/11884650.html