学习python,北京尚学堂,第61课到第90课的个人的总结

61课continue

用于结束本次循环,进入下一次。

62else语句

while语句和for语句自带一个else语句

如果循环没有被break终结,则则执行else

63循环代码优化

其他连接字符用join,插入删除在列表尾部,

64zip并行迭代

zip()对多个数列迭代,就是将列表变成表格,在最短数列用完以后停止。

65推导式创建序列

为了减少代码

列表,【表达式 for item in 可迭代对象】可以【表达式 for item in 可迭代对象 if 条件判断】

y=[x for x in range(5) if x%2==0]
print(y)

字典,{健:值 for 表达式 in 迭代对象},类似列表,也可以加if,for

print()
my_text="i love you,i love you very much"
char_count={c:my_text.count(c) for c in my_text}    #字典式增加字典
print(char_count)

char_count1={}
for c in my_text:
    char_count1[c]=my_text.count(c)     #普通增加字典
print(char_count1)

集合推导式,集合本质是单个的字典

生成器推导式,生成器推导式,因为是小括号,所以有生成器特性,只能使用一次且不能打印。

#生成器推导式(元组)
b=(x for x in range(10) if x%3==0)
print(b)
for x in b:
    if x%6==0:
        print(x)
for x in b:
    if x%6==0:
        print(x)

66用循环绘制棋盘同心圆

练习成功

67函数定义调用

def 函数名(参数,列表):

        函数

形式参数不需要声明类型,实参需要。

68参数,文档字符串

用三个单引号,'''文档说明'''解释函数,不会执行。

调用help(函数名._doc_)打印输出解释

69返回值详解

结束函数后返回值,为空默认None

如果需要多个返回值,使用列表,元组等将其保存。return[a,b,c]

可以通过函数返回值空结束函数下面的执行

70函数也是对象

内存是,堆和栈两部分

71局部全局变量

函数以外定义,函数内定义,想要在函数内改变全局变量,增加global 关键字声明

72全局变量个局部效率

局部效率高,在循环时在循环外定义全局变量

73参数的传递

传递可变对象,其实是对可变对象的引用,没有生成新的地址

74传递不可变对象

 传递时还是引用,但是当赋值时,会创建一个新变量。

75浅拷贝,和深层拷贝,导入copy模块。

浅,copy()只是拷贝引用个体,如果修改引用也原参数修改,添加则不会。

深,deepcopy()将个体和下级都拷贝,

76参数传递,不可变对象

传递不可变对象里包含子对象可变,则元组内可变对象可被修改。

77参数类型

位置参数,默认值参数,命名参数,可变参数

78可变参数,强制命名参数

可变参数是可变数量的参数,*param是将参数放到元组,**param是将参数放到字典。

在带星号的元组参数之后,输入新的参数,必须强制命名参数。

79lambda表达式匿名函数

lambda 参数:简单表达式,

多个匿名表达式做参数,传入参数时应该用数列g【0123456】表示函数数列,再传入参数。函数也是对象。

80eval函数用法

将字符串当成有效表达式求值返回计算结果

s=“print(1)”

eval(s)

等于将“      ”中字符串编程可执行语句

还可以d=eval(“a+b”,(元组)),表示d=a+b

81递归函数

递归调用函数形式一致,内存为如图,不停增加栈,直到满。

82递归实例

#递归阶乘
def text02(n):
    if n==0:
        return 1
    else:
        return n*text02(n-1)

print(text02(5))

83 嵌套函数

在函数内部的函数,内部函数只能在内部定义,内部调用

可以用来数据封装,避免重复代码,闭包

84nonlocal global关键字

nonloca声明外层局部变量,如果想在外部使用内部变量,加函数声明。

global全局变量,同理

85LEGB规则

用于嵌套函数查找

86面向对象

设计者思维,

87 对象进化故事

88类的定义

类是摸具,对象是饼干,

类的使用,相当于函数的集合,在使用函数之前要先说明类

class Student:

    def __init__(self,name,score):
        self.name=name
        self.score=score

    def say_score(self):    #self必须为第一个参数
        print('{0}的分数是:{1}'.format(self.name,self.score))

s1=Student('hyh','18')
s1.say_score()

结果:hyh的分数是:18

内存分析,这个类中参数self的作用是储存后两个参数,相当于函数有一个储存参数的地址,名字是self。

89构造函数_init_()

90实例属性,内存

如果生成s2,则在堆中另开劈空间。

但是新开辟的空间不包含s1后添加的age对象,只有初始对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值