python---随机数,异常,日志,推导

# 异常
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))])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值