IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python笔记(四)--封装 -> 正文阅读

[Python知识库]python笔记(四)--封装

内置函数及切片

?字符串:“0”<“A”<“a”

# 最大值,最小值以及比较
a = [1, 2, 3]
# del a[1]
# # # print(a)
# del a[1]
# print(a)
print(max(a))
print(min(a))
print(len(a))
# 如果是字典比较的话,只针对key比较
t = {"a": "z", "b": "x", "c": "y"}
print(max(t))

# 字典不支持切片,字典没有索引,是通过键值对存在的
print([0, 1, 2, 3, 4][1:3])
print((0, 1, 2, 3, 4)[1:3])

?in 在对字典操作时,判断的是字典的键,

in和 not in 被称为成员运算符

# 运算符
# 列表合并,重复,判断存在
print([1, 2] + [3, 4])
print(["hello"] * 3)
print(4 in [1, 2, 3])
print("----------------")

# 字符串合并,重复,判断存在
print("hello " + "python")
print("hello " * 3)
print("hello" in "hello python")

print("----------------")
# 元组合并,重复,判断存在
print((2, 3, 4) + (5, 6))
print(("python " * 3))
print(3 in (3, 4, 5))

结果:
[1, 2, 3, 4]
['hello', 'hello', 'hello']
False
----------------
----------------
hello python
hello hello hello 
True
----------------
(2, 3, 4, 5, 6)
python python python 
True
# extend方法和加号合并看起来一样,
# 但是加号是产生一个新的列表,extend方法是在原有列表上面添加
list = [1, 2]
list.extend([3, 4])
print(list)
#append方法
list1 = [3,4]
list1.append(0)
print(list1)
list1.append([6,7])
print(list1)

结果不同:
[1, 2, 3, 4]
[3, 4, 0]
[3, 4, 0, [6, 7]]

完整的for循环语法

for num in [1, 2, 3]:
    print(num)
    if num == 2:
        break
else:
    # 如果循环体内部使用了break退出了循环,
    # else下方代码就不会被执行
    print("执行")
print("结束")

结果:
1
2
结束

for ? aa ? in? ? ? xx: -----else:

应用场景,只有在迭代遍历嵌套的数据类型时或者需要判断某一字典中是否存在特定的值,

如果存在,提示并退出循环,

不存在,循环体结束后,得到统一的提示

# 判断某一字典中是否存在指定的值,存在
students = [
    {"name": "小红"},
    {"name": "小明"}
]
find_name = "小hua"
for stu in students:
    print(stu)
    # 如果找到就退出循环,不再遍历
    if stu["name"] == find_name:
        print("找到了%s" % find_name)
        break
# 没找到就使用else
# 本题中如果在if下面加else,每次都会输出没找到,
# 但是在for下面加else,在循环搜索输出列表后才输出没找到
else:
    print("抱歉哦,没找到%s" % find_name)
print("循环结束")

结果:
{'name': '小红'}
{'name': '小明'}
抱歉哦,没找到小hua
循环结束

python封装例子:摆放家具

需求

1.房子(House)有户型、总面积和家具名称列表,新房子没有任何的家具

2.家具(Houseltem) 有名字和占地面积,其中
席梦思(bed)占地4平米
衣柜(chest)占地2平米
餐桌(table)占地1.5平米

3.将以上三件家具添加到房子中

4.打印房子时,要求输出:户型、总面积、剩余面积、家具名称列表
?

# 摆放家具
class HouseItem:
    def __init__(self, name, area):
        self.name = name
        self.area = area

    def __str__(self):
        return "[%s] 占地 %.2f" % (self.name, self.area)


class House:

    def __init__(self, house_type, area):
        self.area = area
        self.house_type = house_type

        # 剩余面积
        self.free_area = area
        # 家具名称列表
        self.item_list = []

    def add_item(self, item):
        print("将%s添加到房子中" % item)

        # 家具面积
        if item.area > self.free_area:
            print("%s面积太大,不能添加" % item)
            return

            # 将家具添加到列表中
        self.item_list.append(item.name)
        self.free_area -= item.area

    def __str__(self):
        return "户型: %s\n总面积:%.2f[剩余:%.2f]" \
               "\n家具名称列表:%s" % (self.house_type,
                                self.area, self.free_area, self.item_list)


# 创建家具
bed = HouseItem("席梦思", 4)
chest = HouseItem("衣柜", 2)
table = HouseItem("餐桌", 1.5)
print(bed)
print(chest)
print(table)

# 创建房子对象
my_house = House("两室一厅", 60)

my_house.add_item(bed)
my_house.add_item(chest)
my_house.add_item(table)
print(my_house)

python封装例子:土兵突击

需求

1.士兵许三多有一把AK47

2.士兵可以开火
3.枪能够发射子弹
4.枪装填装填子弹--增加子弹数量

# 一个对象的属性可以是另外一个类创建的对象
class Gun:
    def __init__(self, model):
        # 枪的型号
        self.model = model
        # 子弹数量
        self.bullet_count = 0

    def add_bullet(self, count):
        self.bullet_count += count

    def __str__(self):
        return "这次拿的枪是[%s]" % self.model

    def shoot(self):
        # 判断子弹数量
        if self.bullet_count <= 0:
            print("[%s]没有子弹了" % self.model)
            return

            # 2发射子弹,-1
        self.bullet_count -= 1

        # 3 提示发射信息
        print("[%s]突突突----[%d]" % (self.model, self.bullet_count))


class Soldier:
    def __init__(self, name):
        self.name = name
        self.gun = None

    def __str__(self):
        return

    def fire(self):
        # 判断士兵有枪
        if self.gun is None:
            print("[%s]没有枪,无法上战场" % self.name)
            return
        print("拿着冲啊")

        # 让枪装填子弹
        self.gun.add_bullet(50)

        # 发射子弹
        self.gun.shoot()


ak47 = Gun("AK47")
# ak47.add_bullet(50)
# ak47.shoot()

xusanduo = Soldier("许三多")
xusanduo.gun = ak47
xusanduo.fire()
print(xusanduo.gun)

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-06-29 19:00:05  更:2022-06-29 19:01:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 11:30:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码