day:39 总结(三)python

'''
1. Python的基本数据类型有哪些?哪些是可变和不可变的基本数据类型
基本数据类型:==》六大基本数据类型
Number数字型 ==》int、float
String字符型
Tuple元组
List列表
Dict字典
Set集合

布尔型

可变的基本数据类型:在定义好之后里面的元素还可以发生变化的==》列表、字典、集合
不可变的基本数据类型:==》数字型、字符型、元组

数据结构==》元组、列表、字典、集合

2. Python中元组,列表,字典怎么创建,有什么区别?
1) 元组是以小括号()定义的,元组是不可变的基本数据类型
2) 列表是以中括号[]定义的,列表是可变的基本数据类型,里面有很多的函数比如append、extend、insert
3)字典是以大括号{}定义的,字典是可变的基本数据类型,里面的数据是以key:vaule键值对的格式显示的
4)元组的处理速度会比列表快,安全性比列表也要高
5)元组可以作为字典的键,列表不可以

3. Python怎么自定义函数
通过def关键字定义




'''
# # 创建元组
# tuple1 = (1,2,3,"dcs56")
#
# # 创建列表
# list1 = [1,2,3,"dcs56"]
#
# # 创建字典
# dict1 = {"name":"zhangsan","age":18}


# Python自定义函数
# def func1(): # ()里面是参数列表
#     print("这是一个自定义函数")
#
#
# # 调用函数的第一种方式
# # func1()
#
# # 调用函数的第二种方式
# if __name__ == '__main__':  # name是指当前的模块名,main是指当前被运行的模块名
#     func1()                 # main的作用:main函数是主函数,只能在当前模块里面被调用,是为了防止其他模块调用


# 单个参数
# def func2(name):  # name称为形式参数(形参)
#     print(name+",你好")
#
# func2("张三")  # 张三称为实际参数(实参)

# 多个参数
# def func3(name,sex): # name,sex称为形式参数(形参)
#     print("姓名:"+name+",性别:"+sex)
#
# func3("张三","男")   # "张三","男"称为实际参数(实参)

# 默认值参数
# def func4(name,age="18"):   # age="18"称为默认参数
#     print(name,age)
#
# func4("张三","20")

'''
单个参数 ==》参数列表当中如果只有1个形参,那么就需要传1个实参
多个参数 ==》有3个形式参数,就必须要传3个实际参数,不然执行会报错
默认参数 ==》当有形式参数和默认参数的时候,默认参数放在形式参数的后面,默认参数如果不传参,就是使用默认值,如果传入实参原有的默认值就会被覆盖
可变长元组 ==》在接收实际参数的时候需要在参数列表前面输入一个*号
可变长字典 ==》在接收实际参数的时候需要在参数列表前面输入两个*号
同时存在可变长元组和可变长字典的时候 ==》可变长字典要在最后面

'''


# 类和对象中都有哪些变量和方法
'''
类的概念:描述具有相同属性和行为的对象的集合
类是一个泛指,一个模板 ==》人类
属性:在Python里面叫变量 ==》1个脑袋,2只眼睛
行为:在Python里面叫方法 ==》吃饭、睡觉、打游戏
对象:是一个实际存在的例子 ==》张三
对象是根据类创建的,创建对象的过程可以称为实例化,创建出来的对象可以称为实例
类的所有属性和方法都是对象的==》体现在对象可以直接调用类方法和类变量

'''

# 类分为新式类和经典类
# class People1(object): # ==》新式类
# class People2: #==》经典类

class People:
    head = 1  # 这是一个类变量
    def __init__(self,name,age):  # 这是一个构造方法
        self.name = name   # self.name就是实例变量,实例变量是绑定在对象身上的,name,age就是形式参数
        self.__age = age   # self.__age就是私有变量 ==》私有变量只能在类的内部调用,外部不能调用

    def play(self):
        '''
        这是一个实例方法,绑定在对象身上的,可以通过self在实例方法中自由传递
        带有self的都是实例方法,self.name这种实例变量在实例方法中是可以直接引用的
        :return:
        '''
        print(self.name+"喜欢打游戏")

    # 这个@符号称为装饰器
    # 装饰器的作用:在不改变原有方法或函数的功能的基础上,为其增加新的功能
    # 常见的装饰器有:@classmethod、@staticmethod、@data、@ddt、@unpack、@property
    @classmethod
    def func1(cls):
        # 类方法是绑定在类身上的,可以通过cls在类方法中自由传递
        print("我是一个类方法")
    @staticmethod
    def func2():
        print("我是一个静态方法")

    @property
    def func3(self):
        print("这是一个可以把函数变为属性的装饰器")

    def __func4(self): # 私有方法前面会加双下划线,私有方法只能在类的内部调用
        print("我是一个私有方法")

    def func5(self):
        # 单独定义一个实例方法,把__func4()这个私有方法的结果返回回去 ==》这里体现了Python里面的三大特性之一:封装
        # Python的三大特性:封装、继承、多态
        return self.__func4()

    def func6(self):
        # 单独定义一个实例方法,把self.__age这个私有变量的结果返回回去 ==》这里体现了Python里面的三大特性之一:封装
        return self.__age


p1 = People("张三",18)  # P1就是根据类创建出来的对象,People就是类,People()匿名对象,张三就是实际参数
# p1.play()  # 对象调用实例方法


4. 类和对象中都有哪些变量和方法?
# 类和对象调用实例方法、类方法、静态方法、私有方法 
#
People.play(p1) # 类调用实例方法,注意必须要传一个对象
#
p1.play() # 对象调用实例方法 # People.func1() # 类调用类方法
#
p1.func1() # 对象调用类方法 # People.func2() # 类调用静态方法
#
p1.func2() # 对象调用静态方法 # People.func5(p1) # 类调用私有方法(实际调用的还是实例方法)
#
p1.func5() # 对象调用私有方法(实际调用的还是实例方法) # 类和对象调用类变量、实例变量、私有变量
#
print(People.head) # 类调用类变量 # print(p1.head) # 对象调用类变量
#
print(People.name) # 类调用实例变量会报错,AttributeError: type object 'People' has no attribute 'name'

print(p1.name) # 对象调用实例变量

print(People.func6(p1)) # 类调用私有变量(实际调用的还是实例方法)

print(p1.func6()) # 对象调用私有变量

 

作业

1、冒泡排序算法


2、99乘法表

 

posted @ 2025-04-09 15:08  君庭  阅读(9)  评论(0)    收藏  举报