zoukankan      html  css  js  c++  java
  • python3 练习题 day05

    '''
    1、计算两个格式化时间之间差了多少年月日时分秒
    '''
    # import time
    #
    # def diff_date(date_str1, date_str2):    #方法一
    #     diff_second = int(abs(time.mktime(time.strptime(date_str1, "%Y-%m-%d %H:%M:%S")) -   # 取两个时间的秒差值
    #                           time.mktime(time.strptime(date_str2, "%Y-%m-%d %H:%M:%S"))))
    #     struct_time = time.localtime(diff_second)  # 结构化时间
    #     diff_year = struct_time.tm_year - 1970
    #     diff_mon = struct_time.tm_mon - 1
    #     diff_day = struct_time.tm_mday - 1
    #     diff_hour = struct_time.tm_hour - 8  # 东八区
    #     if diff_hour < 0:
    #         diff_day -= 1
    #         diff_hour += 24
    #
    #     if diff_day < 0:
    #         diff_mon -= 1
    #         diff_day += 30
    #
    #     if diff_mon < 0:
    #         diff_year -= 1
    #         diff_mon += 12
    #     return diff_year, diff_mon, diff_day, diff_hour, struct_time.tm_min, struct_time.tm_sec
    #
    # def diff_date2(date_str1, date_str2):   #方法二
    #     diff_second = int(abs(time.mktime(time.strptime(date_str1, "%Y-%m-%d %H:%M:%S")) -   # 取两个时间的秒差值
    #                           time.mktime(time.strptime(date_str2, "%Y-%m-%d %H:%M:%S"))))
    #     struct_time = time.gmtime(diff_second)  # 结构化时间
    #     diff_year = struct_time.tm_year - 1970
    #     diff_mon = struct_time.tm_mon - 1
    #     diff_day = struct_time.tm_mday - 1
    #     return diff_year, diff_mon, diff_day, struct_time.tm_hour, struct_time.tm_min, struct_time.tm_sec
    # print("两个格式化时间之间差了%d年%d月%d日%d时%d分%d秒" % diff_date("1989-01-28 06:23:05", "2019-5-6 08:43:10"))
    # print("两个格式化时间之间差了%d年%d月%d日%d时%d分%d秒" % diff_date2("1989-01-28 06:23:05", "2019-5-6 08:43:10"))
    
    '''
    2、计算当前时间所在月1号的时间戳
    '''
    # import time
    # def get_day1_time():
    #     now_year_mon = time.strftime("%Y-%m") + "-01"  # 当前时间所在月1号
    #     return time.mktime(time.strptime(now_year_mon, "%Y-%m-%d"))
    #
    # print(get_day1_time())
    
    '''
    3、生成一个6位随机验证码(包含数字和大小写字母)
    '''
    # import random
    #
    # print("".join(random.sample('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 6)))  # 方法一
    #
    # def get_vcode(v_len):   # 方法二
    #     vcode = ""
    #     for i in range(v_len):
    #         num = chr(random.randint(48, 57))  # 数字0-9
    #         upper_letter = chr(random.randint(65, 90))  # 大写字母A-Z
    #         lower_letter = chr(random.randint(97, 122))  # 小写字母a-z
    #         vcode += random.choice([num, upper_letter, lower_letter])
    #     return vcode
    #
    # print(get_vcode(6))
    
    '''
    4、发红包、制定金额和个数随机分配红包金额
    原理: 
        总金额 = 总金额
        总金额 = 元素1-0 + 元素2-元素1 + 元素3-元素2 + 元素4-元素3 + 元素5-元素4 + 总金额-元素5
    '''
    # import random
    #
    # def red_envelope(total_money=10.0, count=5):  # 总金额有可能为浮点数
    #     temp_lst = random.sample(range(1, int(total_money*100)), count+1)  # 创建一个长度为count+1的列表
    #     temp_lst[0], temp_lst[-1] = 0, total_money*100  # 设置第一个元素值为0, 最后一个元素值为总钱数*100
    #     temp_lst.sort()  # 列表排序
    #     lst = []
    #     for i in range(count):   # 红包数量
    #         lst.append((temp_lst[i+1] - temp_lst[i])/100)  # 列表后一个元素减前一个元素
    #     return lst, sum(lst)
    #
    # print(red_envelope(0.1, 8))
    
    '''
    5、分别列出给定目录下所有的文件和文件夹
    '''
    # import os
    #
    # def get_folder_list1(path):  # 方法一
    #     if os.path.isdir(path):  # 判断是否是目录
    #         for file in os.listdir(path):   # 列出目录下所有的文件和文件夹
    #             sub_path = os.path.join(path, file)  # 目录拼接
    #             if os.path.isdir(sub_path):  # 判断子文件是否是文件夹
    #                 folder_lst.append(file)  # 添加到文件夹列表
    #                 get_folder_list1(sub_path)   # 递归调用
    #             else:
    #                 file_lst.append(file)   # 添加到文件列表
    #         return folder_lst, file_lst
    #     else:
    #         return -1, -1  # 目录有问题, 没找到
    #
    # def get_folder_list2(path):  # 方法二
    #     folder_lst2, file_lst2 = [], []
    #     if os.path.isdir(path):
    #         for root, folder_lst, file_lst in os.walk(path):
    #             folder_lst2 += folder_lst
    #             file_lst2 += file_lst
    #         return folder_lst2, file_lst2
    #     else:
    #         return -1, -1  #目录有问题,没找到
    #
    # folder_lst = []
    # file_lst = []
    # path = r"F:2019老男孩周末26期day05"
    # print("文件夹: %s
    文件: %s" % get_folder_list1(path))  # 方法一
    # print("文件夹: %s
    文件: %s" % get_folder_list2(path))  # 方法二
    
    '''
    6、获取当前文件所在目录
    '''
    # import os
    # print(os.getcwd())
    
    '''
    7、在当前目录下创建一个文件夹、在这个文件夹下创建一个文件
    '''
    # import os
    #
    # def create_folder_file(folder, file):
    #     if not os.path.exists(folder):  # 判断文件夹是否存在
    #         os.makedirs(folder)  # 不存在,则创建
    #     with open(os.path.join(folder, file), mode="w", encoding="utf-8"):  # 创建空文件
    #         pass
    #
    # create_folder_file("folder", "file_name")
    
    '''
    8、计算某路径下所有文件和文件夹的总大小
    '''
    # import os
    #
    # def convert_size(func):  # 单位换算
    #     def inner(*args):
    #         size = func(*args)
    #         if size > 1024*1024*1024:
    #             size = format(size / 1024 / 1024 / 1024, ".2f") + "GB"
    #         elif size > 1024 * 1024:
    #             size = format(size / 1024 / 1024, ".2f") + "MB"
    #         elif size > 1024:
    #             size = format(size / 1024, ".2f") + "KB"
    #         else:
    #             size = str(size)+"byte"
    #         return size
    #     return inner
    #
    # @convert_size
    # def get_folder_size1(path): # 方法一
    #     total_size = 0
    #     for root, folder_lst, file_lst in os.walk(path):
    #         for file in file_lst:
    #             total_size += os.path.getsize(os.path.join(root, file))
    #     return total_size
    #
    # @convert_size
    # def get_folder_size2(path):   # 方法二
    #     global total_size   # 引用全局变脸
    #     if os.path.isdir(path):  # 判断是否是文件夹
    #         for file in os.listdir(path):  # 列出目录下所有的文件和文件夹
    #             sub_path = os.path.join(path, file)  # 目录拼接
    #             if os.path.isdir(sub_path):  # 判断是否是文件夹
    #                 get_folder_size2(sub_path)  # 递归调用
    #             else:
    #                 total_size += os.path.getsize(sub_path)  # 累加文件大小
    #         return total_size
    #     elif os.path.isfile(path):  # 是文件直接返回
    #         return os.path.getsize(path)
    #     else:  # 没找到
    #         return -1
    #
    # total_size = 0
    # path = r"F:2019老男孩周末26期"
    # print(get_folder_size1(path))  # 方法一
    # print(get_folder_size2(path))  # 方法二
  • 相关阅读:
    228. Summary Ranges
    324. Wiggle Sort II
    42. Trapping Rain Water
    工作之后
    279. Perfect Squares
    391. Perfect Rectangle
    351. Android Unlock Patterns
    246. Strobogrammatic Number
    [LeetCode] 75. Sort Colors Java
    [Java] 80. Remove Duplicates from Sorted Array II Java
  • 原文地址:https://www.cnblogs.com/lilyxiaoyy/p/10848144.html
Copyright © 2011-2022 走看看