这是风火轮编程Python初级教程的第七课,下面是用python制作的学习大纲。
用Python制作的幻灯片类型的作品,用来教Python元组启蒙的,还要学习几个常见的错误类型,以下是完整源代码。
本程序需要sprites模块支持,安装方法为在命令提示符下输入以下命令安装:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple sprites –upgrade
""" 第七课 元组与错误提示 """ from sprites import * s = '第七课 元组与错误提示' screen = Screen() screen.bgcolor('blue') screen.titlebar(False) root = screen._root # 窗口对象 root.wm_attributes('-alpha',0.7) # 设置窗口为全透明(0到1.0) screen.setup(800,700) # 下面的代码让窗口可以拖动. oldx = 0 oldy = 0 def startmove(event): global oldx,oldy oldx = event.x oldy = event.y def stopmove(event): global oldx,oldy oldx = 0 oldy = 0 def movewindow(event): global oldx,oldy dx = event.x - oldx dy = event.y - oldy root.move(dx,dy) screen.cv.bind("", startmove) screen.cv.bind("", stopmove) screen.cv.bind("",movewindow) # 下面的代码按方向箭头则窗口能上下左右移动 screen.onkeypress(lambda:root.move(10),'Right') screen.onkeypress(lambda:root.move(-10),'Left') screen.onkeypress(lambda:root.move(0,-10),'Up') screen.onkeypress(lambda:root.move(0,10),'Down') screen.listen() ft = ('楷体',38,'bold') t = Sprite(visible=False,pos=(-500,0)) t.color('magenta') clock = Clock() for x in range(110): t.clear() t.write(s,align='center',font=ft) t.wait() t.fd(5) clock.tick(60) m1 = Mouse() # 鼠标左键 while not m1.down():screen.update() for x in range(50): t.clear() t.write(s,align='center',font=ft) t.wait() t.fd(10) clock.tick(60) #以下是显示学习的内容段 studycontent = """ 主要学习内容 1、元组的概念 2、元组的索引 3、语法错误 4、名字错误 5、类型错误 6、索引错误 7、练习与作业 """ t.color('white') t.clear() t.sety(-260) # 这里修改菜单的显示y坐标 ft = ('楷体',24,'bold') s = studycontent while not m1.down():screen.update() # 下面的代码显示主菜单 for x in range(110): t.clear() t.write(s,align='center',font=ft) t.wait() t.bk(5) clock.tick(60) def slow_write(t,string): """ t:角色,string:要显示的字 本函数慢慢的显示字。 """ string = string.split('\n') # 换成列表 oldxy = t.position() # 记录老的坐标 t.goto(-340,310) # 到新的坐标 for line in string: # 每一行字 for char in line: # 每一个字符 t.write(char,align='center',font=ft) t.wait(0.2) cd = len(bytes(char,'gb2312')) if cd == 1: t.addx(20) else: t.addx(30) t.setx(-336) t.addy(-50) t.goto(oldxy) s1 = """ 1、元组的概念 元组是以小括号封闭的,以逗号隔开的,有顺序的, 不可变的数据集合。英文名为tuple。 它是一种固定的组合,一旦元组中的数据确定了, 那么我们就不能往里面添加,删除与修改数据。 定义一个空元组可以直接输入(),也可以用tuple命令, 如xy=tuple()会返回一个名为xy的空元组。 新建一个只有一个数据的元组,要在这个数据后面加逗号。 如,(3,)是一个只有一个数据的元组。 type查看元组的结果为<class 'tuple'> """ def press1(): t.clear() slow_write(t,s1) while not m1.down():screen.update() t.clear() t.write(s,align='center',font=ft) screen.onkeypress(press1,'1') s2 = """ 2、元组的索引 元组和列表一样,要访问元组中的每个数据 也是通过索引号进行的。 假设有一个元组叫cors=(32,76),那么我们可 以通过cors[0]访问它的第一个数据, 通过cors[-1]访问它的最后一个数据, 但是不能给它们赋值。 如果试图修改cors[0]的值,那么就会显示类型错误。 即cors[0]=77这样的式子是会出错的。 """ def press2(): t.clear() slow_write(t,s2) while not m1.down():screen.update() t.clear() t.write(s,align='center',font=ft) screen.onkeypress(press2,'2') s3 = """ 3、语法错误 当我们输入代码的时候,不小心可能会出现了语法方面 的错误。Python就会显示语法错误。 如输入print(32),那么就会出错语法错误。它的英文 提示字符串为: SyntaxError: invalid character in identifier 这个错误是由于前半部分小括号输入错误,应该输入 半角小括号。 """ def press3(): t.clear() slow_write(t,s3) while not m1.down():screen.update() t.clear() t.write(s,align='center',font=ft) screen.onkeypress(press3,'3') s4 = """ 4、名字错误 当我们使用了一个没有定义的‘变量’时,就会出现 这个错误。假设并没有叫x的变量,当用print打印它 时就会显示以下的字符。 NameError: name 'x' is not defined 意思是名字错误:名字'x'没有被定义。 """ def press4(): t.clear() slow_write(t,s4) while not m1.down():screen.update() t.clear() t.write(s,align='center',font=ft) screen.onkeypress(press4,'4') s5 = """ 5、类型错误 当某种数据不支持某种操作时,就会出现类型错误。 典型的如,元组不支持修改数据。 那么试图修改它里面的数据的时候就会现出类型错误。 假设有一个元组叫colors,它的值如下所示: ('red','bule','cyan'), 那么输入colors[1]='black'就会显示类型错误。 英文为: TypeError: 'tuple' object does not support item assignment 上面的意思是类型错误:‘元组’对象不支持项目赋值。 """ def press5(): t.clear() slow_write(t,s5) while not m1.down():screen.update() t.clear() t.write(s,align='center',font=ft) screen.onkeypress(press5,'5') s6 = """ 6、索引错误 当使用超出范围的索引号时,就会出现这个错误。 假设有颜色表为: colors=['red','bule','cyan'],由于colors列表 最大的索引号为2,那么打印colors[5]的时候就会 出现索引错误。它的英文提示为: IndexError: list index out of range 意思就是索引错误:列表索引超出范围。 """ def press6(): t.clear() slow_write(t,s6) while not m1.down():screen.update() t.clear() t.write(s,align='center',font=ft) screen.onkeypress(press6,'6') s7 = """ 7、练习与作业 ① 说出列表和元组的区别。 ② ('abcd')这个数据是什么类型? ③ 把总结的四种类型提示里的英文单词放在一个元组中。 ④ tuple命令不仅能新建空元组,也能在它的小括号里 加上字符串或列表。尝试下面的用法: tuple('风火轮编程')和 tuple([32,76,8])。 说说tuple这个时候起了什么作用? """ def press7(): t.clear() slow_write(t,s7) while not m1.down():screen.update() t.clear() t.write(s,align='center',font=ft) screen.onkeypress(press7,'7') byebye = """ 下次再见! """ def pressq(): t.clear() t.color('cyan') t.home() t.write(byebye,align='center',font=('宋体',38,'bold')) while not m1.down():screen.update() screen.bye() screen.onkeypress(pressq,'q') screen.mainloop()
以下是付费内容,包括播放视频、思维导图、python源代码及素材等等。
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)