1.
Python中SQLite数据类型的相关知识:
NULL - 这是SQLite中的特殊值,用来表示一个字段没有值。
INTEGER - 用于存储整数值。尽管SQLite允许你在整数列中存储文本,但如果需要执行数值运算,最好确保数据是整数类型。
REAL - 用于存储浮点数(即实数)。与INTEGER类似,尽管可以存储文本,但最好确保用于数值计算。
TEXT - 用于存储文本字符串。可以是任何文本数据,包括字符串、二进制数据等。
BLOB - 用于存储二进制对象。可以用来存储图片、音频或其他非文本数据。
解题:
这里我们的INT没有缩写,一定要INTEGER才可以
2.
解题:
A:在 SQLite 中,SQL 语句不区分大小写。创建表格结构时,既可以使用大写字母,也可以使用小写字母,或者大小写混合。
B:在使用 SQLite 时,建立数据库连接和游标后,通常需要关闭游标和连接以释放资源。关闭游标和关闭连接的顺序是有要求的,应该先关闭游标,再关闭数据库连接。因为游标是依赖于数据库连接存在的,如果先关闭了数据库连接,游标就无法正常关闭,可能会导致资源泄漏或其他问题。
C:在 Python 中使用 sqlite3.connect() 建立数据库实例时,变量的命名方式遵循 Python 变量命名规则。变量名可以包含字母、数字和下划线,但不能以数字开头,且不能使用 Python 的关键字。
D:execute() 方法用于执行单条 SQL 语句,而 executemany() 方法用于批量执行相同结构的 SQL 语句,它接收一个 SQL 语句模板和一个参数序列,会将参数序列中的每个参数组合依次应用到 SQL 语句模板中执行,而不是用逗号分隔多条 SQL 语句。
3.
代码解释:
with open("t.txt","w") as t1: #以写的方式打开一个叫做t.txt的文件并且命名为t1 t1.write("姓名:") #在t1里面写入姓名: t1.write("性别:") #在t1里面写入性别:tips:
with open打开的文件会自己关闭不需要自己close
w是只写模式,会清空原文件
w+是可读可写,文件不存在则创建,存在则清空再写入
换行输出时要使用换行符\n
解题:
这里C选项没有进行换行处理所以实现不了上述的结果
4.
import sqlite3 # 导入sqlite3库 k = sqlite3.connect('题库.db') # 连接数据库 a = k.cursor() # 创建游标 a.execute('SELECT rowid, 题目, 答案 FROM tiku ORDER BY rowid') # 执行查询语句,在查询tiku ORDER这个表的rowid, 题目, 答案这些字段,按照rowid进行升序排列 for row in ______: # 填空处 print(f"{row[1]}{row[2]}") #f"..." 是 f-string(格式化字符串),{row[1]} 会被替换成题目的内容{row[2]} 会被替换成答案的内容tips:
游标对象是a,这里的a.execute(...)执行了查询,结果保存在游标对象a中
如何获取所有记录?游标对象有.fetchall()方法,返回所有记录的列表。
也可以循环直接迭代游标对象本身。
a.fetchmany()括号里面需填入size(具体数量)来指定数量,不能直接一次获取全部
k是连接对象,不存在.fetchmany()和.fetchall()这些方法
5.
tips:使用conn = sqlite3.connect('example.db')连接数据库时,如果example.db不存在,程序将新建数据库。
6.
解题:
A:f.readline()只读取第一行,输出第一行内容
B:f.readlines()[1]返回第二行的内容(索引从 0 开始),而不是第一行
C:使用open()打开文件后,如果没有手动调用close(),可能导致资源泄漏(除非程序立即结束或由垃圾回收关闭,但不安全)
D:with open(...) as f:会自动在代码块结束后调用close(),因此不需要手动f.close()
7.
代码解析
f=open('a.txt','w') #以写的方式打开a.txt文档 f.write('测试写入') #写入内容 f.flush() #强制将缓冲区中的数据立即写入磁盘文件解题:
A:用open方式打开的文件没有使用f.close()是错误的
B:r这种形式打开文件是只读无法写入
C:这种方式打开的会自己关闭文件,完全正确
D:结束时没有f.close()所以也是不对的
8.
解题:
未签到的同学学号记录在文件student.txt中,通过读取该文件即可查询未签到同学,已经签到的同学不用重新签到
9.
代码解析
import numpy as np # 导入 numpy 库,简写为 np arr = np.array([1, 2, 3, 4, 5]) # 创建一个包含 1,2,3,4,5 的一维数组 print(arr[::2].sum()) # 输出:从索引0开始,步长为2取元素,然后求和解题:
arr[::2]切片操作选取第0、2、4个元素(1,3,5),求和结果为9
10.
代码解析
import matplotlib.pyplot as p import numpy as np x= np.array([0,1,2,3,4,5]) p. (x,'o:r') p.show()注:这里的(x,'o:r')
'o:r'是绘图样式字符串:
'o'表示圆点标记':'表示虚线'r'表示红色
matplotlib.pyplot相关知识:
plot表示折线图/点线图
bar表示柱状图
scatter表示散点图
hist表示直方图
11.
代码解析:
arr = np.arange(6).reshape(2,3) #生成一个一维数组[0, 1, 2, 3, 4, 5],然后将一维数组转换为 2 行 3 列的二维数组 print(arr[:, ::-1]) #这是二维数组的切片,格式为 [行切片, 列切片],: 表示所有行(行不变)::-1 表示列方向从右向左取,步长为 -1(即整行倒序)解题一开始生成的是
[0,1,2,3,4,5]这个数组
然后重新塑性变成
[[0,1,2],
[3,4,5]]
最后就是切片
arr[:, ::-1]这个可以理解为行不变,列变成倒序
得到的结果就是
原始行:
[0, 1, 2]→ 倒序:[2, 1, 0]原始行:
[3, 4, 5]→ 倒序:[5, 4, 3]
最后得到
[[2 1 0]
[5 4 3]]
12.
代码解析
import matplotlib.pyplot as plt x=1;y1=2;y2=3 #定义三个标量数值 plt.figure(figsize=(8,4)) #创建一个宽 8 英寸、高 4 英寸的画布 plt.subplot(121) #121 表示:1 行、2 列、第 1 个子图,等同于 plt.subplot(1, 2, 1) plt.plot(x, y1) #plot() 期望接收序列(如列表、数组)或多个点的坐标 plt.subplot(122) #1 行、2 列、第 2 个子图 plt.hist(y2) #hist() 期望接收一组数据(列表或数组),用于统计频率分布 plt.show() #显示图形实际运行效果
左子图:空白(只有一个点且没有标记)
右子图:一个柱子,横坐标 3,纵坐标 1
结果如下
13.
tips:
创建对象的语法是:类名(参数1, 参数2, ...),如 Car("Toyota", "Corolla", 2025),
必须用变量接收,即 car = Car(...)
14.
代码解析
class Animal: #定义一个Animal的类 def sound(self): #定义sound方法 return "叫声" #返回参数 class Dog(Animal): #定义一个Dog的子类(Animal的子类),继承了父类的所有属性和方法 def sound(self): #定义sound方法 return "汪汪" a = Animal() #调用Animal类 d = Dog() #调用Dog类解题
这里的考察是子类是否会继承父类的时出现相同方法的继承性
子类Dog重写了父类的sound()方法,调用d.sound()时会优先使用子类的版本,输出"汪汪"
15.
解题:
需要使用 self.battery 才能访问实例属性,
赋值语句使用 = 而非 ==,
必须传入 percent 参数
A:错在定义方法时没有self
B:正确答案
C:没有用self.battery 才能访问实例属性
D:==是判断左右是否相等
16.
解题:
首先在类里面定义方法需要在括号写入(self)这里我们发现A,B不满足
其次是调用类里面的属性,需要用self.属性名调用
综合上述,c是正确答案
17.
在python中关于json的相关知识
| 方法 | 操作对象 | 方向 | 用途 |
| json.dump(obj,file) | 文件 | Python → JSON(写入文件) | 保存数据到文件 |
json.load(file) | 文件 | JSON → Python(读取文件) | 从文件加载数据 |
json.dumps(obj) | 字符串 | Python → JSON 字符串 | 网络传输、存数据库文本字段 |
json.loads(str) | 字符串 | JSON 字符串 → Python | 解析接收到的 JSON 字符串 |
总结:(记忆技巧)
出现s就是和字符串有关
dump是python变json
load是json变python
18.
代码解析
import csv #导入csv库 total_visitors = [] #创建空列表 with open('tourist_data.csv', 'r') as f: reader = csv.reader(f) #创建csv读取器,reader 是一个可迭代对象,每次迭代返回一行数据(列表形式) for row in reader: #遍历每一行 total = sum([int(num) for num in row[1:]]) #计算游客总数,从第二个元素开始按行累加 total_visitors.append(total) # 将每行的总和添加到列表 print(total_visitors) #输出结果这里涉及到一个绝对路径和相对路径的表达
tips:
19.
代码解析
scores = [[80, 85, 90], [75, 80, 88], [92, 95, 98]] average_scores = [] #创建空列表,用于存储每个学生的平均分 for i in range(len(scores)): #外层循环:遍历每个学生 total = 0 #初始化总分 for j in range(len(scores[i])): #内层循环:遍历该学生的每门成绩 total += scores[i][j] #累加该学生的所有成绩 avg = total / len(scores[i]) #计算平均值 average_scores.append(avg) #存储结果到空列表中 print(average_scores) #输出结果scores 是一个二维列表,包含三个子列表,每个子列表代表一个学生的成绩
average_scores 是一个空列表,用于存储每个学生的平均成绩。
外层循环 for i in range(len(scores)) 遍历每个学生(即 scores 的每个子列表)。
内层循环 for j in range(len(scores[i])) 遍历当前学生的所有成绩,并累加到 total。
计算平均成绩 avg = total / len(scores[i]),并将 avg 添加到 average_scores。
最后打印 average_scores。注意除是实除,需要保留小数
20.
解题:
关于csv文件的相关知识
CSV 文件可存储一维和二维数据,A 错误;
CSV 文件每一行数据通常包含相同数量的元素,以保证数据结构的一致性,B 正确;
CSV 文件扩展名一般为.csv,随意修改可能导致相关程序无法正确识别,C 错误;
CSV 文件数据之间常用逗号分隔,但也可以指定其他分隔符,D 错误 。
21.
关于tkinter的相关知识
pack 布局管理器会按照添加控件的顺序,默认从左到右、从上到下排列控件。
grid 布局是将控件放置在一个二维的网格中。
place 布局是通过指定控件的精确坐标来放置控件。
在tkinter不存在middle这种布局
22.
解题:
A:在 tkinter 中,tk.Tk()用于创建主窗口(即根窗口)。
B:
tk.Window()不存在于标准 tkinter 中。C:
tk.MainWindow()也不存在,主窗口类就是Tk。D:
tk.Frame()用于创建框架(容器),不是主窗口
23.
解题:
place()方法用来指定组件的绝对位置;
grid()方法是按照行、列的方式摆放组件;
pack()方法既可实现水平排列,也可实现垂直排列。
geometry() 方法可以以字符串的形式设置窗口的宽度、高度和位置。
24.
解题:
一维数据由对等关系的有序或者无序数据构成
25.
mainloop()方法启动了事件循环,这是任何Tkinter应用程序的主要事件循环。
它保持应用程序活动并响应各种GUI事件,例如按钮点击和键盘按键。
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
阅读本题题干,得到的就是
要用类的形式去写方法
和计算长方体的体积
参考程序: class Box(): #定义一个Box的类 def __init__(self,l,w,h): #初始化属性 self.l=l #长 self.w=w #宽 self.h=h #高 def a4(self): #定义一个表面积计算的方法 return float((self.l*self.w*2+self.l*self.h*2+self.w*self.h*2)/600) #这里计算的是表面积 def chang(self): # return (self.l+self.w)*4+self.h*4 #长方体各棱长的计算 a,b,c=input('输入箱子的长宽高(cm):').split() #用空格处理三个数据 a=float(a) b=float(b) c=float(c) d=Box(a,b,c) #调用类方法 print("共需要铁丝:%dcm,A4纸:%0.2f张。"%(d.chang(),d.a4())) #输出结果37.
通过阅读题干我们可以得知本题空白处要求我们
1.完成文件创建
2.读取文件
3.打印出来
4.求平均值
参考程序: # 写入学生信息到文件 with open('students.txt', 'w') as f: #以写的形式打开students.txt,有则清空原内容,无则创建 f.write("张三 20 85\n") #写入信息到文件中 f.write("李四 21 92\n") f.write("王五 19 78\n") # 读取文件内容并打印 print("学生信息:") with open('students.txt', 'r') as f: #读取刚刚那个文件的信息 students = f.readlines() #从文件中读取所有行,每行作为一个字符串元素,组成一个列表 total_score = 0 #初始化得分 count = 0 #初始化计数 for student in students: #把一行中的元素依次读取 print(student.strip()) #去掉字符串首尾的空白字符(主要是换行符) _, _, score = student.split() #分割元素与赋值,将一行字符串按空格分割成多个部分,然后只取第三部分(成绩),前两部分用下划线忽略 total_score += int(score) #把得分整数化,并做累加处理 count += 1 #计算学生总数 # 计算并打印平均成绩 average = total_score / count #求平均数 print(f"学生的平均成绩为:{average:.2f}") #输出平均成绩保留两位小数38.
通过阅读下述图片的操作和代码部分
我们可以大致得到我们要完成的操作是
首先是完成一个查询语句
然后把全部结果依次遍历
然后和输出提示语句
最后就是关闭数据库
下面的图片是参考答案和评分标准
这里是代码和注释部分
import sqlite3 # 连接数据库 conn = sqlite3.connect('gym.db') # 创建表,这里涉及了三个字段,(id,文本类型,主键非空),(名字,文本类型,非空),(日期,整型) conn.execute('''CREATE TABLE IF NOT EXISTS member (id TEXT PRIMARY KEY NOT NULL, name TEXT NOT NULL, days INTEGER);''') # 插入一条数据(这里的内容是对应着上面创建表格的字段插入的) conn.execute("INSERT INTO member VALUES('M001', '小红', 25)") #创建游标卡尺 cur = conn.cursor() # 查询剩余天数小于30天的会员 cur.execute("SELECT * FROM member WHERE days < 30 ") #把查询到的全部结果依次遍历,并且把对应的名字和天数按下面的格式输出 for row in cur.fetchall(): print("会员", row[1], "剩余天数不足,请尽快续费!(剩余",row[2], "天)") # 提交数据库的增删改查的结果 conn.commit() #关闭数据库 conn.close()文章到此也接近尾声了
创作不易,博主期待得到各位彦祖和亦非们的支持
有疑问欢迎留言哟
感谢您宝贵的时间