学习python第八天(纯小白版)

文章目录

1.递归函数
2.使用递归计算阶乘(factorial)
3.嵌套函数(内部函数)
4.nonlocal关键字
5LEGB规则
6.面向对象编程(将数据和操作数据相关封装)
7.对象的进化
8.类的定义
9.构造函数__init__()
10.实例属性

前言:没事就多练练题,没坏处


1.递归函数

自己调用自己的函数,在函数体内部直接或间接的自己调用自己。

 代码段:

def skt01(n):
    print("skt01:",n)
    if n==1:
        print("over")
    else:
        skt01(n-1)      #不能skt01()

    print("skt01*****",n)

def skt02():
    print("skt02")
skt01(4)

2.使用递归计算阶乘(factorial)

 

 代码段:

def factorial(n):
    if n==1:
        return 1
    else:
        return n*factorial(n-1)
result = factorial(5)       #分形几何
print(result)

3.嵌套函数(内部函数)

#测试定义
def outer():
    print("outer running")
    def inner01():
        print("inner running")
    inner01()
outer()     #不能调用inner01,外部看不见,外部无法看不见内部函数
#可以降低代码重复率

4.nonlocal关键字

nonlocal用来声明外部的局部变量  global 用来声明全局变量
b = 100
def outer():
    a = 10
    def inner():
        nonlocal  a
        print("inner:",a) #声明外部函数的局部变量
        b = 20

        global  b      #声明全局变量
        b = 1000

    inner()
    print("outer a:", a)
outer()
print("a:",a)

5LEGB规则

Local-->Enclosed-->Global-->Built in

 代码段:

str("")
#str = "global str"
def outer():
    #str = "outer"
    def inner():
        str = "inner"
        print(str)
    inner()
outer()

6.面向对象编程(将数据和操作数据相关封装)

python支持面向过程、面向对象、函数编程等多种编程范式
1.面向对象和面向过程区别
2.面向过程更加关注的是“程序的逻辑流程”,是一种“执行者”思维,适合编写小规模的程序
3.面向对象更加关注的是“软件中对象之间的关系”,是一种“设计者”思维,适合编写大规模的程序

7.对象的进化

处理数据的方式和逻辑变复杂,进化出了”对象“

8.类的定义

1.代码是用类来组织的,是靠对象实现了,”类“也是对象
2.可以将对象比作一个”蛋糕“,类就是制造蛋糕的”模具“

经典类的操作

#经典类的操作
class Student:      #类名一般首字母大写,多个单词采用驼峰原则
    def __init__(self,name,score):  #self必须位于第一个参数
        self.name = name
        self.score = score

    def say_score(self):   #self必须位于第一个参数
        print("{0}的分数是:{1}".format(self.name,self.score))
s1 = Student("汤小天",90)  #通过类名来构造函数
s1.say_score()

9.构造函数__init__()

要点
1.名称固定,必须为:__init__()
2.第一个参数固定,必须为:self。self指的就是刚刚创建好的实例对象。
3.构造函数通常用来初始化实例对象的实例属性
4.通过”类名(参数列表)“来调用构造函数。调用后,将创建好的对象返回给相应的变量
5,__init__()方法:初始创建好的对象,初始化指的是:”给实例属性赋值“
6.__init__()方法:用于创建对象,但我们一般无需重定义该方法。

10.实例属性

实例属性是从属于实例对象的属性,也称为”实例变量“。

总结:我发现学习这些块知识点还是不够的,还是需要练习算法,每天练个几道题,接下来可能会往这方面练习。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值