# 异常 a, b = 1, 0 # 多路捕获 # 子类在前 父类在后 防止未知异常影响程序运行 try: print(a/b) except (ZeroDivisionError, TypeError): print("除数不能为0或类型不对") print("----程序结束----") # 捕获异常 # 定义一个调用的方法:捕获异常 # 异常可以嵌套 # 自定义异常类:一般继承Exception class sexExcption(Exception): pass try: sex = input("请输入性别:") if sex != "男" and sex != "女": raise sexExcption("性别只能是男或女") except sexExcption as ex: print(ex) finally: print("程序结束")
# 日志的相关概念 用来记录程序中 重要的消息 # 日志对象 属性 # 错误级别 import logging log_format = '%(asctime)s %(levelname)s %(message)s' DATE_FORMAT = "%Y-%m-%d" logging.basicConfig(level=logging.DEBUG, filename='my.log', format=log_format, datefmt=DATE_FORMAT) logging.debug("this is a debug") logging.info("this is a info") logging.warning("this is a warning") logging.error("this is a error") logging.critical("this is a critical")
# 随机数 import random form .Pers print(random.choice(range(1, 33))) # random.choice(range(1,34))随机取1-33之间的1个随机数,可能重复 print(random.choices(range(1, 34), k=6)) # random.choices(range(1,34),k=6,weight=range(1,34))方法,可以产生6个,但有可能重复 print(random.sample(range(1, 35), k=6)) # 常用:random.sample(range(1,34),6)随机取6个,不重复,得到一个列表,但是没有排序
# 推导 # 整除3的数字列表 lists = [] for i in range(100): if i % 3 == 0: lists.append(i) print(lists) # 推导实现 # for循环 nums = [x for x in range(100) if x % 3 == 0] print(nums) # 利用函数推导 def nums(x): return x*x nums1 = [nums(x) for x in range(100) if x % 3 == 0] print(nums1) # 快速更换key和value,元组推导式 mcase = {'a': 10, 'b': 34} new_m = {} for k, v in mcase.items(): new_m[v] = k new_m = {k: v for k, v in mcase.items()} print(new_m) # set1 = {x**2 for x in [1, 2, 3, 4, 5]} print(set1) # 用集合推导 字符串长度的集合 strings = ['a', 'is', 'with', 'if', 'file', 'exception'] lens = [s.upper() for s in strings if len(s) > 4] print(lens) # 0到9 的次方 print([i**2 for i in range(10)]) # (x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元组列表 nums2 = [(x, y) for x in range(6) if x % 2 == 0 for y in range(6) if y % 2 != 0] print(nums2) # 求m,中3,6,9组成的列表 m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] print([x[2] for x in m]) # 求m,中1,5,9组成的列表 print([m[x][x] for x in range(len(m))]) # 求m,中3,5,7组成的列表 print([m[x][len(m)-1-x] for x in range(len(m))])