image

编辑人: 长安花落尽

calendar2025-05-29

message0

visits11

2024月12月Python六级实操答案及解析

一、简答题

1、36.登陆情况
编写一段程序,记录用户的登陆情况。已知程序目录下建立了文件1.txt,第一行内容为:admin,第二行内容为:123abc。运行以下程序几次后,打开1.txt,其内容如图所示,请补全代码。
import datetime
import shutil
\# /data 目录为共享目录,只读
\# ./目录为用户沙盒目录可写
shutil.copyfile('/data/1.txt', "./1.txt")
with open('1.txt','r+') as f:
a=f.readline()
b=f.readline()
c= ①
d= ②
if ③ :
now = datetime.datetime.now()
f.write('\n')
f.write(str(now))
f.write('登陆成功')
print('登陆成功')
else:
now = datetime.datetime.now()
f.write('\n')
f.write(str(now))
f.write('尝试登陆失败。')
f.write('\n用户名:')
f.write(str(c))
f.write('密码:')
f.write(str(d))
print('登陆失败')
f.close()

解析:

根据题目描述,程序需要从文件"1.txt"中读取用户名和密码,然后与已知的用户名和密码进行比较,判断登录是否成功。已知文件的第一行是用户名,第二行是密码,接下来的代码读取了这两行并存储在变量a和b中。接下来的代码中需要再次读取两行数据(即输入的用户名和密码),需要填写到①和②的位置。根据题目要求,判断登录是否成功的条件应该是输入的用户名和密码与文件中的用户名和密码一致,因此需要填写③为if a == “admin” and b == “123abc”:。如果登录成功,程序将在文件中写入当前时间并写入"登陆成功",否则写入当前时间并写入尝试登录失败的信息以及输入的用户名和密码。最后关闭文件。

2、37.学生数据库
设计一个SQLite数据库应用,实现以下功能:
创建一个名为students的表,该表具有id(主键,自增)、name、age和grade四个字段。
①插入5条学生记录。
②修改一个学生的年龄。
③删除一个学生记录。
④查询所有学生的信息。
请根据要求,补全代码。(本题无需运行通过,写入代码即可)


import sqlite3
\# 连接到SQLite数据库(如果数据库不存在,则会创建一个新的数据库)
conn = sqlite3.connect('students.db')
cursor = ①

\# 创建students表
cursor.execute('''CREATE TABLE IF NOT EXISTS students (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER,
grade TEXT)
''')

\# 插入5条学生记录
students = [
('Alice', 20, 'A'),
('Bob', 22, 'B'),
('Charlie', 19, 'C'),
('David', 21, 'A'),
('Eva', 23, 'B')
]
cursor.executemany('''INSERT INTO students (name, age, grade) VALUES (?, ?, ?)
''', ② )
\# 修改一个学生的年龄(例如修改id为2的学生的年龄为24)
cursor.execute("UPDATE students SET age = 24 WHERE id = 2")
\# 删除一个学生记录(例如删除id为3的学生)
cursor.execute("DELETE FROM students WHERE id = 3")

\# 查询所有学生信息
cursor.execute('SELECT * FROM students')
print("所有学生信息:")
for row in ④ :
print(row)
\# 关闭数据库连接
conn.close()

解析:

首先,我们需要创建一个SQLite数据库连接,并获取一个游标对象用于执行SQL语句。在代码中,①处应填写通过连接对象conn获取游标的语句,即conn.cursor()

接下来,我们定义了一个包含多个学生信息的列表students,并需要在②处使用executemany方法插入多条记录。因此,②处应填写students

对于修改学生年龄的操作,代码中已经给出了示例语句,无需补充。

在删除学生记录的代码中,已经提供了示例语句,同样无需补充。

最后,我们需要执行查询所有学生信息的SQL语句,并通过循环打印出查询结果。在④处,我们需要使用游标对象cursor执行查询语句,并使用循环遍历查询结果。因此,④处应填写cursor

综上,完整的代码应该如下:

import sqlite3

# 连接到SQLite数据库(如果数据库不存在,则会创建一个新的数据库)
conn = sqlite3.connect('students.db')
cursor = conn.cursor()  # 获取游标对象

# 创建students表
cursor.execute('''CREATE TABLE IF NOT EXISTS students (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER,
grade TEXT)
''')

# 插入5条学生记录
students = [
    ('Alice', 20, 'A'),
    ('Bob', 22, 'B'),
    ('Charlie', 19, 'C'),
    ('David', 21, 'A'),
    ('Eva', 23, 'B')
]
cursor.executemany('''INSERT INTO students (name, age, grade) VALUES (?, ?, ?)''', students)
# 修改一个学生的年龄(例如修改id为2的学生的年龄为24)
cursor.execute("UPDATE students SET age = 24 WHERE id = 2")
# 删除一个学生记录(例如删除id为3的学生)
cursor.execute("DELETE FROM students WHERE id = 3")

# 查询所有学生信息
cursor.execute('SELECT * FROM students')
print("所有学生信息:")
for row in cursor:  # 遍历查询结果
    print(row)

# 关闭数据库连接
conn.close()

3、38.图书管理系统
创建一个简单的图书管理系统,来帮助图书馆管理他们的图书收藏。系统中的主要对象是图书(Book)和图书馆(Library)。每本图书有书名(title)和作者(author)这两个属性,以及一个显示图书信息的方法。图书馆有一个收藏图书的列表,以及添加图书和显示所有图书信息的方法。
在这个系统中,你需要:
(1)创建一个名为Book的类,它包含初始化方法__init__,接受书名和作者作为参数,并分配给实例变量。它还包含一个名为display_info的方法,用于打印书名和作者的信息。
(2)创建一个名为Library的类,它有一个名为books的实例变量,初始化为空列表。这个类还包含两个方法:add_book(接受一个Book实例并将其添加到集合中)和display_books(打印图书馆中所有图书的信息)。
请根据描述完成代码:
class Book:
def __init__(self, title, author):
self.title = title
self.author = ①
def display_info(self):
print(f"Title: {self.title}, Author: {self.author}")
class Library:
def __init__(self):
self.books = []
def add_book(self, book):
② .append(book)
def display_books(self):
for book in ③ :
book. ④ ()
\# 示例代码
book1 = Book("Python Programming", "John Doe")
book2 = Book("Learning OOP in Python", "Jane Doe")
lib = Library()
lib.add_book(book1)
lib.add_book(book2)
lib.display_books()

解析:

根据题目描述,我们需要完成一个简单的图书管理系统的代码。

对于Book类,我们需要定义两个方法:__init__和display_info。在__init__方法中,我们需要接受书名和作者作为参数,并分配给实例变量。display_info方法用于打印书名和作者的信息。根据题目描述和Python的语法规则,我们可以完成Book类的代码如下:

class Book:
    def __init__(self, title, author):
        self.title = title
        self.author = author   # 这里填写author

    def display_info(self):
        print(f"Title: {self.title}, Author: {self.author}")

对于Library类,我们需要定义一个books的实例变量来存储图书的列表,以及两个方法:add_book和display_books。add_book方法用于接受一个Book实例并将其添加到集合中,display_books方法用于打印图书馆中所有图书的信息。根据题目描述和Python的语法规则,我们可以完成Library类的代码如下:

class Library:
    def __init__(self):
        self.books = []   # 初始化books为一个空列表

    def add_book(self, book):
        self.books.append(book)   # 将book添加到books列表中

    def display_books(self):
        for book in self.books:   # 遍历books列表中的每一本书
            book.display_info()   # 调用每本书的display_info方法来打印信息

最后,我们按照示例代码的格式,创建了两个Book对象并添加到一个Library对象中,然后调用display_books方法来显示图书馆中的所有图书信息。

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2024月12月Python六级实操答案及解析

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share