A07_元组与错误提示_Python教学视频

这是风火轮编程Python初级教程的第七课,下面是用python制作的学习大纲。

李兴球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资源。)

关于李兴球

李兴球的博客是Python创意编程原创博客
此条目发表在python, sprites, turtle, 视频教程分类目录,贴了, , , , , , , , 标签。将固定链接加入收藏夹。