第7单元 第6练 command属性处理单击事件《程序设计基础-Python》(高教版)一课一练

2026-02-02
| 2份
| 8页
| 41人阅读
| 1人下载

内容正文:

编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《程序设计基础-Pyhton》(高等教育出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。 本卷是《程序设计基础-Python》(高等教育出版社)一课一练的第七单元GUI界面设计的第6练,内容涵盖第七单元command属性处理单击事件相关内容。 《程序设计基础-Python》(高等教育出版社)第6练 第7单元 GUI界面设计 子任务六 command属性处理单击事件 1、 单项选择题(本题共3小题) 1. 下列控件中,不能通过 command 属性绑定单击事件的是(  ) A. Button   B. Radiobutton   C. Label   D. Menu 2. 下列代码中,单击“+1”按钮后,Label显示的数字在原有基础上加1的是(  ) A. from tkinter import * root = Tk() num = 0 def add():     num += 1     lb["text"] = num lb = Label(root, text=num) btn = Button(root, text="+1", command=add) lb.pack() btn.pack() root.mainloop() B. from tkinter import * root = Tk() def add():     num = int(lb["text"]) + 1     lb["text"] = num lb = Label(root, text="0") btn = Button(root, text="+1", command=add) lb.pack() btn.pack() root.mainloop()  C. from tkinter import * root = Tk() def add():     lb["text"] = int(lb["text"]) + 1 lb = Label(root, text="0") btn = Button(root, text="+1", command=add()) lb.pack() btn.pack() root.mainloop()  D. from tkinter import * root = Tk() def add(num):     num += 1     lb["text"] = num lb = Label(root, text="0") btn = Button(root, text="+1", command=lambda: add(int(lb["text"]))) lb.pack() btn.pack() root.mainloop() 3. 关于 command 属性绑定函数的说法,正确的是(  ) A. 绑定的函数必须有返回值,否则 command 无法触发 B. 绑定多个函数时,需用 lambda 表达式包装 C.  command 绑定的函数只能在控件单击时触发,无法手动调用 D. 同一控件的 command 属性只能绑定一个函数,无法绑定多个 二、判断题(本题共3小题) 1.  command 属性绑定函数时,若函数需要参数,必须使用 lambda 表达式将其包装为无参数函数。(  ) 2. Radiobutton控件的 command 属性在控件被选中时触发,而Button控件的 command 在单击时触发。(  ) 3. 若 command 属性绑定的函数名后加了括号,则函数会在控件创建时立即执行,而非单击时执行。(  ) 三、简答题(本题共2小题) 1. 简述command属性使用方法。 2. 简述 command 属性绑定函数的两种常见错误及解决方法。 四、编程题(本题共2小题) 1. 编写代码创建一个窗口,包含1个Label控件和2个Button控件。要求:① 单击“单击我”按钮时,Label文本变为“按钮已单击!”;② 单击“关闭窗口”按钮时,关闭整个窗口;③ 所有控件用pack方式放置,间距为10像素。效果如图所示: 2. 编写代码创建一个窗口,包含3个Radiobutton控件、1个Label控件和1个Button控件。要求:① 3个Radiobutton为一组,无默认选中;② 单击“确认选择”按钮时,若已选中某个Radiobutton,Label文本变为“您选择的编程语言:***”;若未选中,Label文本变为“请先选择编程语言!”;③ 所有控件用grid布局,Label在(0,0)跨3列,Radiobutton在(1,0)、(1,1)、(1,2),Button在(2,0)跨3列。 效果如图: 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $ 编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《程序设计基础-Pyhton》(高等教育出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。 本卷是《程序设计基础-Python》(高等教育出版社)一课一练的第七单元GUI界面设计的第6练,内容涵盖第七单元command属性处理单击事件相关内容。 《程序设计基础-Python》(高等教育出版社)第6练 第7单元 GUI界面设计 子任务六 command属性处理单击事件 1、 单项选择题(本题共3小题) 1. 下列控件中,不能通过 command 属性绑定单击事件的是(  ) A. Button   B. Radiobutton   C. Label   D. Menu 【答案】C 【解析】“能够定义command的常见控件有:Button、Menu、Radiobutton控件”,Label控件无 command 属性,无法直接绑定单击事件,故答案为C。 2. 下列代码中,单击“+1”按钮后,Label显示的数字在原有基础上加1的是(  ) A. from tkinter import * root = Tk() num = 0 def add():     num += 1     lb["text"] = num lb = Label(root, text=num) btn = Button(root, text="+1", command=add) lb.pack() btn.pack() root.mainloop() B. from tkinter import * root = Tk() def add():     num = int(lb["text"]) + 1     lb["text"] = num lb = Label(root, text="0") btn = Button(root, text="+1", command=add) lb.pack() btn.pack() root.mainloop()  C. from tkinter import * root = Tk() def add():     lb["text"] = int(lb["text"]) + 1 lb = Label(root, text="0") btn = Button(root, text="+1", command=add()) lb.pack() btn.pack() root.mainloop()  D. from tkinter import * root = Tk() def add(num):     num += 1     lb["text"] = num lb = Label(root, text="0") btn = Button(root, text="+1", command=lambda: add(int(lb["text"]))) lb.pack() btn.pack() root.mainloop() 【答案】B 【解析】command 绑定函数时:① 函数默认无参数,带参数需用lambda;② 函数名后不能加括号。A中 num 是局部变量,修改不生效;C中 command=add() 直接执行函数,初始为1;D中 add 函数修改的是参数 num ,不影响Label;B中通过 lb["text"] 获取/修改Label文本,正确,故答案为B。 3. 关于 command 属性绑定函数的说法,正确的是(  ) A. 绑定的函数必须有返回值,否则 command 无法触发 B. 绑定多个函数时,需用 lambda 表达式包装 C.  command 绑定的函数只能在控件单击时触发,无法手动调用 D. 同一控件的 command 属性只能绑定一个函数,无法绑定多个 【答案】B 【解析】command 绑定的函数无需返回值;同一控件的 command 可通过lambda绑定多个函数;绑定的函数可手动调用,C错误,故答案为B。 二、判断题(本题共3小题) 1.  command 属性绑定函数时,若函数需要参数,必须使用 lambda 表达式将其包装为无参数函数。(  ) 【答案】正确 【解析】command 调用函数时默认无参数,若函数需参数,需用 lambda 表达式,故正确。 2. Radiobutton控件的 command 属性在控件被选中时触发,而Button控件的 command 在单击时触发。(  ) 【答案】正确 【解析】Button的 command 在单击时触发,Radiobutton的 command 在选中该控件时触发,故正确。 3. 若 command 属性绑定的函数名后加了括号,则函数会在控件创建时立即执行,而非单击时执行。(  ) 【答案】正确 【解析】command 需绑定“函数名”,加括号会使函数在赋值时直接执行,单击控件时无反应,故正确。 三、简答题(本题共2小题) 1. 简述command属性使用方法。 【答案】 command属性使用方法 def 函数名称(): 代码块 widget=Button(master,command=函数名称,...) 当单击按钮控件的时候,Python就会调用该函数。 2. 简述 command 属性绑定函数的两种常见错误及解决方法。 【答案】① 错误1:函数名后加括号,导致函数在控件创建时立即执行,单击控件无反应;解决方法:绑定函数时仅写函数名,不加括号。 ② 错误2:函数需要参数,但直接绑定,导致报错;解决方法:用 lambda 表达式包装为无参数函数、,将参数传入函数。 四、编程题(本题共2小题) 1. 编写代码创建一个窗口,包含1个Label控件和2个Button控件。要求:① 单击“单击我”按钮时,Label文本变为“按钮已单击!”;② 单击“关闭窗口”按钮时,关闭整个窗口;③ 所有控件用pack方式放置,间距为10像素。效果如图所示: 【答案】 from tkinter import * root = Tk() root.title("Button命令示例") root.geometry("300x200") #单击按钮触发的函数 def click_btn():     lb["text"] = "按钮已单击!" #关闭窗口的函数 def close_window():     root.destroy()  # 销毁窗口,关闭应用 Label控件 lb = Label(root, text="您还未单击按钮") lb.pack(pady=10) Button控件 click_btn = Button(root, text="单击我", command=click_btn) click_btn.pack(pady=10) close_btn = Button(root, text="关闭窗口", command=close_window) close_btn.pack(pady=10) root.mainloop() 2. 编写代码创建一个窗口,包含3个Radiobutton控件、1个Label控件和1个Button控件。要求:① 3个Radiobutton为一组,无默认选中;② 单击“确认选择”按钮时,若已选中某个Radiobutton,Label文本变为“您选择的编程语言:***”;若未选中,Label文本变为“请先选择编程语言!”;③ 所有控件用grid布局,Label在(0,0)跨3列,Radiobutton在(1,0)、(1,1)、(1,2),Button在(2,0)跨3列。 效果如图: 【答案】 from tkinter import * root = Tk() root.title("语言选择") root.geometry("400x180") #定义变量绑定Radiobutton lang_var = StringVar() #确认选择的函数 def confirm():     selected = lang_var.get()     if selected:         lang_lb["text"] = f"您选择的编程语言:{selected}"     else:         lang_lb["text"] = "请先选择编程语言!" Label控件 lang_lb = Label(root, text="请选择编程语言") lang_lb.grid(row=0, column=0, columnspan=3, padx=10, pady=10) #Radiobutton控件 py_rbtn = Radiobutton(root, text="Python", variable=lang_var, value="Python") py_rbtn.grid(row=1, column=0, padx=10, pady=10) java_rbtn = Radiobutton(root, text="Java", variable=lang_var, value="Java") java_rbtn.grid(row=1, column=1, padx=10, pady=10) c_rbtn = Radiobutton(root, text="C++", variable=lang_var, value="C++") c_rbtn.grid(row=1, column=2, padx=10, pady=10) #确认按钮 confirm_btn = Button(root, text="确认选择", command=confirm) confirm_btn.grid(row=2, column=0, columnspan=3, padx=10, pady=10) root.mainloop() 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $

资源预览图

第7单元 第6练  command属性处理单击事件《程序设计基础-Python》(高教版)一课一练
1
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。