Python推导、迭代、日志。

迭代:

迭代是Python最强大的功能之一,是访问集合元素的一种方式。

迭代器是一个可以记住遍历的位置的对象。

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

迭代器有两个基本的方法:iter() 和 next()

字符串,列表或元组对象都可用于创建迭代器

自定义迭代器:

class rewrite(object):               测试:1 
    def __init__(self,max=0):               3
        self.max = max
        self.num = 1
    def __iter__(self):
        return self
    def __next__(self):
        if self.num<= self.max:
            num = self.num
            self.num +=2
            return num
        else:
            return StopIteration()
i=rewrite(5)
print(i.__next__())
print(i.__next__())
迭代中_iter_和_netx_的使用
num=[1,2,3,4]        测试:1
it = iter(num)    
print(it.__next__())
 
list = [2, 4, 6, 8]            测试:2
it = iter(list)                  4
while True:                    6
    try:                     8  
        print(next(it))
    except StopIteration:
        sys.exit()

推导式:

comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体,分为三种:

   1,列表推导式:(使用[]生成list)

    

numbers = [names for names in range(2000) if (names %400==0)or(names %4==0 and names %100!=0)]
print(numbers)
输出:闰年,数量太多,不便写上
    
def ten(x):
    return x+x
number = [ten(x) for x in range(10)if x%2==0]
print(number)

    测试:[0, 4, 8, 12, 16]

    2,集合推导式(使用{}生成集合)

    

id = {x%2 for x in [100,121,131,140,181,200]}
print(id)
测试:{0, 1}
3,字典推导式(他也是要用{}生成字典,不过要是key,value形式才行)
 
mcase = {'a': 10, 'b': 34, 'A': 7, 'Z': 3}
  mcase_frequency = {v: k for k, v in mcase.items()}
   print (mcase_frequency)
    测试:{10: 'a', 34: 'b', 7: 'A', 3: 'Z'}

   日志:

Python中有一个模块logging,可以直接记录日志

#   日志级别
# CRITICAL 50
# ERROR 40
# WARNING 30
# INFO 20
# DEBUG 10
logging.basicConfig()函数中的具体参数:
filename:   指定的文件名创建FiledHandler,这样日志会被存储在指定的文件中;
filemode:   文件打开方式,在指定了filename时使用这个参数,默认值为“w”还可指定为“a”;
format:      指定handler使用的日志显示格式;
datefmt:    指定日期时间格式。,格式参考strftime时间格式化(下文)
level:        设置rootlogger的日志级别
stream:     用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件,默认为sys.stderr。
                  若同时列出了filename和stream两个参数,则stream参数会被忽略。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值