Python基础——考核回顾与本周学习

前言

一、文件基本操作

open与close

打开文件:使用 open() 函数,该函数会返回一个文件对象

对已打开文件做读/写操作:借助对应的函数实现

关闭文件:完成对文件的操作之后,使用 close() 函数关闭文件
必用的open()函数用于打开文件

f = open('文件名','r',encoding='utf-8')

有open也肯定要有close吧,close()函数是来关闭文件的

f = open('文件名', 'r', encoding='utf-8')
da = f.read()
data = eval(da)
f.close()

还有一种可以自动关闭的

 with open('数据储存.txt', 'a+', encoding='utf-8') as f:

with……as

读数据 read

使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中的所有数据

#读:read方法,读取指定的字符,开始时定位在文件头部,每执行一次向后移动指定字符数
f = open("test.txt","r")
content = f.read(5) #一次读五个字符
print(content)
print('-'*30)
content = f.read()
print(content)
f.close()

读数据readlines与readline

就像read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性的读取,并且返回的是一个列表,其中每一行的数据为一个元素
readline是读取一行的数据

二、面向对象

1.类的创建与继承

先创建一个book类
(1)设置getter和setter方法用于获取和设置类中的name变量的值;
(2)equals方法,当且仅当书名(name)和出版社(publisher)均相等时,即为同一本书。
(3)toString方法,返回书名(name)和出版社(publisher)的信息,样式如下:
“书名:Java程序设计,出版社:清华大学出版社

class Book:
    def __init__(self, name, publisher):
        self.__name = name
        self.__publisher = publisher

    def getter(self):

        return self.__name

    def setter(self, name):

        self.__name = name

    def equals(self, other):
        '''
            判断两者是否相等
        '''
        # 只有当and 两端的都为True的时候 返回True
        return self.__name == other.__name and self.__publisher == other.__publisher

    def toString(self):

        return f'书名:{self.__name},出版社:{self.__publisher}'

2、馆藏图书类(CollectionBook),继承自Book类
成员变量:
图书编号(bNo)str类型
所在书库(stacks)str类型


class CollectionBook(Book):
    def __init__(self, name, publisher, bNo, stacks, isBorrow):
        '''

        :param name: 书名
        :param publisher: 出版社
        :param bNo: 编号
        :param stacks: 类别
        :param isBorrow: 借阅状态
        '''
        super().__init__(name, publisher)
        self.__bNo = bNo
        self.__stacks = stacks
        self.__isBorrow = isBorrow

2.重点操作

是否借阅(isBorrow)boolean类型 图书状态为已借阅时,值为true。
(1)实现borrow方法 借阅图书
如果图书状态为已借阅,则输出“对不起,该图书已借阅”,否则,修改该图书状态为已借阅,输出“借阅成功”
(2)实现revert方法 归还图书
如果图书状态是可借阅状态,输出“该图书已归还”, 否则,修改图书借阅状态为未借阅,并输出“还书成功”


    def borrow(self):
        # 根据借阅状判断进行不同的操作
        if self.__isBorrow:
            print("对不起,该图书已借阅")
        else:
            print('借阅成功')
            self.__isBorrow = True

    def revert(self):
        # 根据借阅状判断进行不同的操作
        if self.__isBorrow:
            print("还书成功")
            self.__isBorrow = False
        else:
            print('该图书已归还')

用main方法来验证,通过键盘输入整数,输入0,则对book1进行借阅,输入1,则对book1进行归还操作


if __name__ == '__main__':
    book1 = CollectionBook(name="国超自传", publisher="清华出版社", bNo='1000', stacks='名人自传', isBorrow=False)
    book2 = CollectionBook(name="国超自传", publisher="清华出版社", bNo='1000', stacks='名人自传', isBorrow=False)
    print(book1.toString())
    print(book1.toString())
    print(book1.equals(book2))
    # 输入0表示借阅,输入1表示还书
    n = input()
    if n == '0':
        book2.borrow()
    elif n == '1':
        book2.revert()

输入0表示借阅操作,输入1表示归还操作

总结

经过这一次的考核,对面向对象有了更加深刻的理解,这一周也学到了好多知识,我会好好复习之前的知识,多加练习,继续努力

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值