内容正文:
编写说明:安徽省普通高校对口招生专业理论和技能测试考试电子与信息大类《计算机编程基础—Python 语言考点双析卷》,依据《安徽省普通高校对口招生专业理论和技能测试考试纲要》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷。助力师生构建 “讲练结合” 的学习闭环,适用于高考复习教学。
本专辑第41、第42卷精准对标安徽省考纲,知识模块(四)面向对象程序设计基础:
1. 基本概念
2. Tkinter库
3. 面向对象程序设计
安徽省分类招生和对口招生考试 电子与信息大类
《计算机编程基础—Python 语言》考点双析卷 第41卷
面向对象程序设计(1) 老师讲解卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共10小题,每题3分,共30分)
1.在 wxPython 程序的基本结构中,app.MainLoop() 的作用是( )
A.创建应用程序实例 B.进入主事件处理循环
C.显示窗口 D.设置窗口标题
【答案】B
2.下列关于 wx.Panel 的描述中,正确的是( )
A.wx.Panel 是顶层窗口,不能容纳其他组件
B.wx.Panel 可以直接放入顶层窗口 wx.Frame 中解决布局问题
C.wx.Panel 不属于组件,不能容纳其他组件
D.wx.Panel 通过 sizer 进行布局管理
【答案】D
3.ListCtrl 组件显示数据时,数据来源是( )
A.从 CSV 文件读取 B.硬编码在程序中的列表
C.从数据库查询 D.通过网络API获取
【答案】A
4.在OnSearch方法中,如果找不到匹配的项,程序会执行 操作。( )
A.自动添加新项到列表中 B.清空搜索文本框
C.选中列表的第一项 D.显示"not found"提示信息
【答案】D
5.当用户双击列表项时,通过 方法获取被双击项的文本内容。( )
A.event.GetItem() B.event.GetValue()
C.event.GetText() D.event.GetString()
【答案】C
6.在wxPython中,将按钮点击事件绑定到处理函数的正确方法是( )
A.button.Bind(wx.EVT_BUTTON, self.OnPrint)
B.self.Bind(wx.EVT_BUTTON, self.OnPrint, button)
C.panel.Bind(wx.EVT_CLICK, self.OnPrint, button)
D.app.Bind(wx.EVT_BUTTON, self.OnPrint, button)
【答案】B
7.下面关于运算符重载的描述,正确的是( )
A.通过定义普通方法实现 B.使用@operator装饰器
C.重写双下划线方法如__add__ D.只能在父类中实现
【答案】C
8.在类方法中,参数self的作用是( )
A.引用父类对象 B.引用类自身
C.引用当前实例对象 D.引用模块对象
【答案】C
9.在子类中显式调用父类方法的方式是( )
A.ParentClass.method(self) B.super().method()
C.self.parent_method() D.A和B均可
【答案】D
10.在Python中,类与对象的关系描述正确的是( )
A.类是实例的具体化 B.对象是类的模板
C.类是模板,对象是具体值 D.对象是类的抽象
【答案】B
二、填空题(本大题共5小题,每题4分,共20分)
11.使用_________关键字可创建自定义类。
【答案】class
【详解】使用class关键字定义类。
12.Python 中 GUI 设计时,必须导入________库。
【答案】tkinter
【详解】Python 中 GUI 设计时,必须导入 tkinter 库。
13.封装、 ___________和多态被称为面向对象技术中的三大机制。
【答案】继承
【详解】面向对象的三大机制是封装、继承和多态。
14.类的__________用于描述对象的状态和特征,__________用于实现对象的行为和操作。
【答案】 属性 方法
15.创建类A(没有参数)之后,通过类创建一个实例对象B的方法为__________。
【答案】B=A( )
三、综合应用题(本大题共5小题,每题10分,共50分)
16.如图所示:窗口大小为300*300像素,三个标签和三个单行文本输入框。单击"转换"按钮,则在第三个单行文本输入框中得到对应的进制转换数。
【答案】from tkinter import *
root=Tk()
root.title('进制转换')
root.geometry('300x200')
def zh():
d,r = eval(e1.get()),eval(e2.get())
lst1=[]
lst2=[str(i) for i in range(10)] + ['A','B','C','D','E','F']
while d!=0:
d,ys=divmod(d,r)
lst1.append(lst2[ys])
lst1.reverse()
e3.delete(0,'end')
e3.insert(0,''.join(lst1))
Label(root,text="请输入一个十进制正整数:").pack()
e1=Entry(root)
e1.pack()
Label(root,text="请输入进制(2、8、16进制):").pack()
e2=Entry(root)
e2.pack()
Label(root,text="转换后的结果为:").pack()
e3=Entry(root)
e3.pack()
Button(root,text='转换',command=zh).pack()
root.mainloop()
17.设计一个倒计时的功能,实现在单行文本框中输入秒数后,单击"开始"按钮,开始倒计时,单行文本框中的秒数值跟着变化,直至到0,自动退出窗口界面。设计界面如下图所示(界面元素的大小、位置等属性不作硬性要求)。
【答案】from tkinter import *
root=Tk()
root.title('倒计时')
root.geometry('300x200')
t=None
flag=True
def ks():
global t,flag
if flag:
t=eval(e.get())
flag=False
root.after(1000,ks)
e.delete(0,'end')
if t==-1:
root.quit()
e.insert(0,t)
t -= 1
Label(root,text='输入倒计时秒数:').pack()
e=Entry(root)
e.pack()
Button(root,text='开始',command=ks).pack()
root.mainloop()
18.输入三边,单击"判断"按钮,判断三边能否构成三角形,如果能构成三角形则显示三角形面积,结果保留两位小数,否则显示此三边不能构成三角形。若已知三角形的三条边长分别为a,b,c则计算面积公式如下图所示:
【答案】import tkinter
import math
r=tkinter.Tk()
r.title("判断三角形")
def f():
a,b,c=eval(txt1.get()),eval(txt2.get()),eval(txt3.get())
if a>0 and b>0 and c>0 and a+b>c and b+c>a and a+c>b:
p=(a+b+c)/2
s = math.sqrt(p*(p-a)*(p-b)*(p-c))
lab4.config(text=f"三角形面积为: %.2f"%s)
else:
lab4.config(text="此三边不能形成三角形")
lab1=tkinter.Label(r,text="请输入第一条边:")
lab1.grid(row=0,column=0)
txt1=tkinter.Entry(r)
txt1.grid(row=0,column=1)
lab2=tkinter.Label(r,text="请输入第二条边:")
lab2.grid(row=1,column=0)
txt2=tkinter.Entry(r)
txt2.grid(row=1,column=1)
lab3=tkinter.Label(r,text="请输入第三条边:")
lab3.grid(row=2,column=0)
txt3=tkinter.Entry(r)
txt3.grid(row=2,column=1)
lab4=tkinter.Label(r,text="结果")
lab4.grid(row=3,column=1)
cmdl=tkinter.Button(r,text="判断",command=f)
cmdl.grid(row=4,column=1)
r.mainloop()
19.利用两个Listbox实现选择项的移动,左移和右移。初始界面如图1,先选中左框中的香蕉向右移为如图2,再选中右框中的榴莲左移为图3所示。
如图1 如图2
如图3
【答案】from tkinter import *
root=Tk()
root.title("喜欢吃的水果")
root.geometry("300x200")
LB = Listbox(root,width=17)
LB.grid(row=0,column=0,rowspan=2)
LB1 = Listbox(root,width=17)
LB1.grid(row=0,column=2,rowspan=2)
lst=["苹果","香蕉","橙子","火龙果"]
for i in lst:
LB.insert('end',i)
LB1.insert('end','榴莲')
def rg():
LB1.insert('end',LB.get(ACTIVE))
LB.delete(ACTIVE)
def lf():
LB.insert('end', LB1.get(ACTIVE))
LB1.delete(ACTIVE)
Button(root,text=">",command=rg).grid(row=0,column=1)
Button(root,text="<",command=lf).grid(row=1,column=1)
root.mainloop()
20.设计一个窗口,添加适当的组件,实现如图所示功能,将信息输出到控制台。年龄计算公式为:当前年份-出生年份(当前年份2025年)。
【答案】from tkinter import *
root=Tk()
root.title("用户注册")
root.geometry('300x200')
def tj():
dic={1:"男",2:"女"}
age = 2025-eval(e2.get()[:4])
print("您的姓名:",e1.get())
print("您的性别:",dic[var.get()])
print("您的出生年月日:",e2.get())
print("您的年龄:",age)
Label(root,text="姓名").grid(row=0,column=0)
e1=Entry()
e1.grid(row=0,column=1)
Label(root,text="性别").grid(row=1,column=0)
var=IntVar()
Radiobutton(text="男",variable=var,value=1).grid(row=1,column=1)
Radiobutton(text="女",variable=var,value=2).grid(row=1,column=2)
Label(root,text="出生年月").grid(row=2,column=0)
e2=Entry()
e2.grid(row=2,column=1)
Button(root,text="提交",command=tj).grid(row=3,column=1)
root.mainloop()
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$
编写说明:安徽省普通高校对口招生专业理论和技能测试考试电子与信息大类《计算机编程基础—Python 语言考点双析卷》,依据《安徽省普通高校对口招生专业理论和技能测试考试纲要》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷。助力师生构建 “讲练结合” 的学习闭环,适用于高考复习教学。
本专辑第41、第42卷精准对标安徽省考纲,知识模块(四)面向对象程序设计基础:
1. 基本概念
2. Tkinter库
3. 面向对象程序设计
安徽省分类招生和对口招生考试 电子与信息大类
《计算机编程基础—Python 语言》考点双析卷 第41卷
面向对象程序设计(1) 老师讲解卷
时间:45分钟 总分:100分
班级_______ 姓名_______ 学号_______ 成绩_______
一、单项选择题(本大题共10小题,每题3分,共30分)
1.在 wxPython 程序的基本结构中,app.MainLoop() 的作用是( )
A.创建应用程序实例 B.进入主事件处理循环
C.显示窗口 D.设置窗口标题
2.下列关于 wx.Panel 的描述中,正确的是( )
A.wx.Panel 是顶层窗口,不能容纳其他组件
B.wx.Panel 可以直接放入顶层窗口 wx.Frame 中解决布局问题
C.wx.Panel 不属于组件,不能容纳其他组件
D.wx.Panel 通过 sizer 进行布局管理
3.ListCtrl 组件显示数据时,数据来源是( )
A.从 CSV 文件读取 B.硬编码在程序中的列表
C.从数据库查询 D.通过网络API获取
4.在OnSearch方法中,如果找不到匹配的项,程序会执行 操作。( )
A.自动添加新项到列表中 B.清空搜索文本框
C.选中列表的第一项 D.显示"not found"提示信息
5.当用户双击列表项时,通过 方法获取被双击项的文本内容。( )
A.event.GetItem() B.event.GetValue()
C.event.GetText() D.event.GetString()
6.在wxPython中,将按钮点击事件绑定到处理函数的正确方法是( )
A.button.Bind(wx.EVT_BUTTON, self.OnPrint)
B.self.Bind(wx.EVT_BUTTON, self.OnPrint, button)
C.panel.Bind(wx.EVT_CLICK, self.OnPrint, button)
D.app.Bind(wx.EVT_BUTTON, self.OnPrint, button)
7.下面关于运算符重载的描述,正确的是( )
A.通过定义普通方法实现 B.使用@operator装饰器
C.重写双下划线方法如__add__ D.只能在父类中实现
8.在类方法中,参数self的作用是( )
A.引用父类对象 B.引用类自身
C.引用当前实例对象 D.引用模块对象
9.在子类中显式调用父类方法的方式是( )
A.ParentClass.method(self) B.super().method()
C.self.parent_method() D.A和B均可
10.在Python中,类与对象的关系描述正确的是( )
A.类是实例的具体化 B.对象是类的模板
C.类是模板,对象是具体值 D.对象是类的抽象
二、填空题(本大题共5小题,每题4分,共20分)
11.使用_________关键字可创建自定义类。
12.Python 中 GUI 设计时,必须导入________库。
13.封装、 ___________和多态被称为面向对象技术中的三大机制。
14.类的__________用于描述对象的状态和特征,__________用于实现对象的行为和操作。
15.创建类A(没有参数)之后,通过类创建一个实例对象B的方法为__________。
三、综合应用题(本大题共5小题,每题10分,共50分)
16.如图所示:窗口大小为300*300像素,三个标签和三个单行文本输入框。单击"转换"按钮,则在第三个单行文本输入框中得到对应的进制转换数。
17.设计一个倒计时的功能,实现在单行文本框中输入秒数后,单击"开始"按钮,开始倒计时,单行文本框中的秒数值跟着变化,直至到0,自动退出窗口界面。设计界面如下图所示(界面元素的大小、位置等属性不作硬性要求)。
18.输入三边,单击"判断"按钮,判断三边能否构成三角形,如果能构成三角形则显示三角形面积,结果保留两位小数,否则显示此三边不能构成三角形。若已知三角形的三条边长分别为a,b,c则计算面积公式如下图所示:
19.利用两个Listbox实现选择项的移动,左移和右移。初始界面如图1,先选中左框中的香蕉向右移为如图2,再选中右框中的榴莲左移为图3所示。
如图1 如图2
如图3
20.设计一个窗口,添加适当的组件,实现如图所示功能,将信息输出到控制台。年龄计算公式为:当前年份-出生年份(当前年份2025年)。
试卷第6页,共6页
试卷第5页,共6页
学科网(北京)股份有限公司
$