Python 10

Python 10

今天学习了生成器,迭代器及其关系,递归函数,面向对象,类的定义,属性,实例化对象

字典列表集合推导式

列表推导式和集合推导式一样

dict1={'a':1,'b':2}
dict2={y:x for x,y in dict1.items()}
print(dict2)#{1: 'a', 2: 'b'}                字典推导式,实现key,value互换

生成器 generator 生成器是一种特殊的迭代器

tumple1 = (i for i in range(5) if i % 2 == 0)#生成方法
print(tumple1)#<generator object <genexpr> at 0x00000288D3EA5A98>
print(tumple1.__next__())#0
print(next(tumple1))#2  两种调用方法,调用一次输出一次

next(g生成器对象,default)

函数+yield:
注意:

  1. 定义函数+添加关键字:yield
  2. 调用函数得到的是一个生成器对象
    g = func()
    g就是生成器对象
  3. 结合next(g)
    只要遇到yield则会将其后面值返回并且暂停
    下一次在调用next(g)—>从暂停位置开始执行

函数:
next() : 同系统next(g)
g.next()
next(g)
以上均可以得到下一个元素
send(): 每次调用的时候需要向生成器中传值
注意: 第一次必须: send(None)
以后就可以给send(value)

在这里插入图片描述
字符串,列表,元组,字典是可迭代对象,但不是迭代器,可以使用iter()成为迭代器

from collections import Iterator,Iterable   迭代器或可跌倒对象需要导包
tumple1 = (i for i in range(5) if i % 2 == 0)
print(isinstance(tumple1,Iterable))  #True  是可迭代类型
print(isinstance(tumple1,Iterator)) #	True是迭代器
str=''
list1=[1,3,5,7]
tumple2=(1,3,5,7)
set1={1,3,5,7}
dict1 = {'a': 1, 'b': 2}
print(isinstance(str,Iterator))#False
print(isinstance(list1,Iterator))#False
print(isinstance(tumple2,Iterator))#False
print(isinstance(set1,Iterator))#False
print(isinstance(dict1,Iterator))#False
*************************
print(isinstance(str,Iterable))   #True
print(isinstance(list1,Iterable))	#True
print(isinstance(tumple2,Iterable))	#True
print(isinstance(set1,Iterable))	#True
print(isinstance(dict1,Iterable))	#True

递归函数

调用自身的函数,用斐波那契的两种方式来体现,若没有一个出口会无限循环,必须要有一个出口
斐波那契数列:
1,1,2,3,5,8,13,21,…

1.实现一个递归函数,求斐波那契数列第n个数。
方式一
list1=[]
def digui(n):
    for i in range(n):
        if i ==1 or i==0:
            list1.append(1)
        else:
            list1.append(list1[i-1]+list1[i-2])
digui(5)
print(list1)
------------------------------------------
方式二
def func(n):
    if n==1 or n==2:
        return 1
    else:
        return func(n-1)+func(n-2)
list1=[]
for i in range(1,8):
    list1.append(func(i))
print(list1)

面向对象(一点)

类: Object,,一切皆物体(对象)。类是某一批对象的抽象,可以把类理解成某种概念;对象才是一个具体存在的实体, 一组具有相同属性和行为的对象的抽象。
对象::将具有相似属性和方法的对象总结抽象为类对象,可以定义相似的一些属性和方法,不同的实例对象去引用类对象的属性和方法,能减少代码的重复率。。创建对象:对象=类名()
属性:类属性是指定义在类的内部而且在方法的外部的属性,对象属性是指定义在方法的内部的属性,修改属性可以通过直接修改类,或者通过对象修改,但不会影响类
方法: 对象对于接受到的消息的一个响应,功能,函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值