美文网首页
python基础回顾【二】

python基础回顾【二】

作者: 一个热爱生活的好少年 | 来源:发表于2019-01-05 00:07 被阅读0次

11:迭代器:

#最简单的迭代
>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> for key in d:
... print(key)
#...
#a
#c
#b
#默认情况下,dict 迭代的是 key。如果要迭代 value,可以用 for value in
#d.values(),如果要同时迭代 key 和 value,可以用 for k, v in d.items()。
 list1 =[1, 2, 3]
 it = iter(list1)
 print( next(it))
 print( next(it))
 print( next(it))
 print( next(it)) # except报错

#yield:如果没有   while会把所有的放回,这个可以记录当前的输出位置并且下次继续从输出位置开始,自构迭代器。
# # def frange(start, stop, step):
# #     x = start
# #     while x < stop:
# #         yield x
# #         x += step
# #
# #
# # for i in frange(10,20,0.5):
# #     print(i)

12:lamdba表达式:

 def true():return True
 lambda : True

#如何写:
# # >>> def add(x,y):
# # ...     return x+y

>>> def add(x,y): return x+y
    lambda  x,y: x+y

# # lambda  x:x<= (month, day)
# #
# # def func1(x):
# #     return  x<= (month, day)

13:内置函数:

#filter(判断函数,序列)
def is_odd(n):
    return n % 2 == 1 
newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

 a=[1,2,3,4,5,6,7]
 list(filter(lambda x:x>2 , a))

#map/reduce
#map()函数接收两个参数,一个是函数,一个是 Iterable
>>> def f(x):
... return x * x
...
>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> list(r)
[1, 4, 9, 16, 25, 36, 49, 64, 81]

 >>> a=[1,2,3]
 >>> map(lambda x:x ,a)
 <map object at 0x105686e10>
 >>> list(map(lambda x:x ,a))
 [1, 2, 3]
 >>> list(map(lambda x:x+1 ,a))
 [2, 3, 4]
#多序列计算
 >>> b=[4,5,6]
 >>> list(map(lambda x,y:x+y ,a,b))
 [5, 7, 9]

#reduce 把一个函数作用在一个序列[x1, x2, x3, ...]
#上,这个函数必须接收两个参数,reduce 把结果继续和序列的下一个元
#素做累积计算,其效果就是:
#reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

# >>> from functools import reduce
# >>> reduce(lambda x,y: x+y ,[2,3,4],1 )
# 10
# >>> ((1+2)+3)+4

>>> from functools import reduce
>>> def fn(x, y):
... return x * 10 + y
...
>>> reduce(fn, [1, 3, 5, 7, 9])
13579

#
# >>> for i in zip((1,2,3),(4,5,6)):
# ...     print(i)
# ...
# (1, 4)
# (2, 5)
# (3, 6)

#zip()

14:
闭包:

#外部函数a被内部函数引用就是闭包
def sum(a):
    def add(b):
      return  a+b

    return add

# add 函数名称或函数的引用
# add() 函数的调用
#输入a
num2 =  sum(2)
#输入b
print( num2(4))

例子:
def counter(FIRST=0):
    cnt = [FIRST]
    #cnt这个值 会存储要加的数:调用的次数越多,数可以一直加

    def add_one(FIRST_1=1):
        cnt[0] += FIRST_1
        return cnt[0]

    return add_one


num5 = counter(5)
num10 = counter(10)
#可以分布传值
print(num5())
print(num5())

15:装饰器

import time

# print( time.time())

def timmer(func):
    def wrapper():
        start_time = time.time()
#要执行的函数
        func()
        stop_time = time.time()
        print("运行时间是 %s 秒 " % (stop_time - start_time))
    return wrapper


#传入的是函数
@timmer
def i_can_sleep():
    time.sleep(3)

例子:带参数
def new_tips(argv):
    def tips(func):
        def nei(a, b):
            print('start %s %s' % (argv, func.__name__))
            func(a, b)
            print('stop')

        return nei
    return tips


@new_tips('add_module')
def add(a, b):
    print(a + b)


@new_tips('sub_module')
def sub(a, b):
    print(a - b)


print(add(4, 5))
print(sub(7, 3))

16:模块


image.png

相关文章

  • python基础回顾【二】

    11:迭代器: 12:lamdba表达式: 13:内置函数: 14:闭包: 15:装饰器 16:模块

  • 2023-01-30 Python 3基础二

    Python 3基础二 基础的都是菜鸟教程上的,主要是回顾下,就没敲代码,想看的去菜鸟教程上看去。 Python3...

  • 【连载】《零基础学Python》笔记(二)

    摘要:《零基础学Python》一书的学习记录,学习笔记。(连载之二) 回顾:昨天主要学习了Python的编码规范,...

  • Python基础回顾

    @ 基本类型 mutable: dict, list inmutable: number, tuple, stri...

  • python基础回顾【三】

    17:面向对象 18:with语句: 19:线程 20:线程开发,生产者与消费者问题。 21:正则表达式 22:日...

  • python基础回顾【一】

    1.基础数据类型: 如何转化:int("8") str(123)2.变量定义与命名: 3.序列: 根据下标偏移...

  • python基础回顾-列表

    学习编程的过程,我感受的是思考的分层,学习是一层一层递进的。 列表:L = ['A','B','C','D'] n...

  • Python 字典基础回顾

    关键词 python、dict、data struct、python字典、python collections、...

  • Python面向对象之访问控制!

    回顾 在Python进阶记录之基础篇(十五)中,我们介绍了面向对象的基本概念以及Python中类和对象的基础知识,...

  • 人工智能学习路径

    一、数学基础 数据分析 概率论 线性代数与矩阵 二、Python基础 Python基础语法 Python常用库 P...

网友评论

      本文标题:python基础回顾【二】

      本文链接:https://www.haomeiwen.com/subject/ruykfqtx.html