Python学习笔记之基础练习

这篇博客分享了三个Python编程练习:1. 设计一个乌龟吃鱼的游戏,涉及随机移动和体能管理;2. 实现图书管理系统,具备借阅和查询功能;3. 构建停车场管理系统,涵盖车辆的添加、查询、编辑、删除及统计功能。通过这些练习,可以提升Python编程基础和问题解决能力。
摘要由CSDN通过智能技术生成

第一题:

        游戏规则:
        1. 游戏背景为10*10;
        2. 游戏会自动生成1个乌龟和10条鱼;
        3. 它们移动方向随机;
        4. 乌龟最大移动能力为2; [-2,-1,1,2]
        5. 鱼最大移动能力为1; [-1,1]
        6. 当移动到场景边界, 自动反方向移动;
        7. 乌龟初始化体能为100<200为上限>;每移动一次消耗体能1;
        8. 当乌龟和鱼的坐标重合, 代表乌龟吃掉鱼, 体能增加20;

        9. 乌龟无体力或者鱼吃光, 游戏结束;

import random

class BaseAmil(object):
    def __init__(self):
        self.x = random.randint(0, 9)
        self.y = random.randint(0, 9)

    def is_vaild(self, point):
        if point < 0 :
            return 0-point
        elif point>9:
            return 9 - (point-9)
        return point

class Turtle(BaseAmil):
    def __init__(self):
        super(Turtle,self).__init__()
        self.power = 100
    def move(self):
        move_skill = [-1, 1, 0, -2, 2]
        new_x = self.x + random.choice(move_skill)
        new_y = self.y + random.choice(move_skill)
        self.x = self.is_vaild(new_x)
        self.y = self.is_vaild(new_y)
        self.power -= 1
    def eat(self):
        self.power +=20
        # 乌龟体能上限为200
        if self.power >=200:
            self.power =200
class Fish(BaseAmil):

    def move(self):
        move_skill = [-1, 0, 1]
        new_x = self.x + random.choice(move_skill)  # 1
        new_y = self.y + random.choice(move_skill)  # 12

        self.x = self.is_vaild(new_x)
        self.y = self.is_vaild(new_y)

def main():
    t1 = Turtle()  #生成一个乌龟对象
    fishs = [Fish() for i in range(10)]
    while True:
        if t1.power < 0:
            print('乌龟死翘桥!Game Over....')
            break
        elif len(fishs)==0:
            print('鱼被乌龟吃完了!Game Over')
            break
        else:
            t1.move()
            for fish in fishs:
                fish.move()
                #通过判断两个坐标是否相等 来判断乌龟是否吃鱼
                if t1.x == fish.x and t1.y == fish.y:
                    t1.eat()
                    #将当前这条鱼从列表中删除
                    fishs.remove(fish)
                    print('鱼被吃掉!,乌龟体能为:%s'%(t1.power))

if __name__ == '__main__':
    main()

第二题:

        简单实现一个图书管理系统,每本书都有自己的属性,书名,作者,位置,是否借出(每一类书只有一本)。

        方法有可以查找指定书籍是否已经借出,图书馆所有书的信息浏览,借出书籍,归还书籍。

class Book(object):
    def __init__(self, name, author, state, bookIndex):
        self.name = name
        self.author = author
        #0表示已经借出,1表示没有借出
        self.state = state
        self.bookIndex = bookIndex

    def __str__(self):
        return '书籍名称《%s》 作者:%s 状态:%s 位置:%s'%(self.name, self.author, self.state, self.bookIndex )

class BookManage(object):
    books = dict()

    def init(self):
        self.books['python']=Book('python', 'Guido', 1, "INS888")
        self.books['java'] = Book('java', 'Guido', 1, "INS888")
        self.books['C/C++'] = Book('C/C++', 'Guido', 1, "INS888")
    # def __str__(self):
    #     return '书籍名称《%s》 作者:%s 状态:%s 位置:%s'%(self.books)

    def addBook(self):
        name = input('书名:')
        self.books[name]=Book(name,input('作者:'),1,input('书籍位置:'))
        print('添加图书%s成功'%(name))

    def borrowBook(self):
        name 
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值