用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,oldyoldx = event.xoldy = event.y
def stopmove(event):global oldx,oldyoldx = 0oldy = 0
def movewindow(event):global oldx,oldy     dx = event.x - oldxdy = event.y - oldyroot.move(dx,dy)
screen.cv.bind("<ButtonPress-2>", startmove)
screen.cv.bind("<ButtonRelease-2>", stopmove)
screen.cv.bind("<B2-Motion>",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源代码,请打开李兴球博客www.lixingqiu.com

python元组启蒙半透明窗口无标题窗口tkinter相关推荐

  1. MFC修改窗口无标题和标题信息,修改执执行文件图标

    一.创建MFC后 窗口显示的是 无标题-工程名 修改方法在网上看到了几种,下面介绍下比较简单的一种: 1.在MianFrame.c文件中找到这个函数 BOOL CMainFrame::PreCreat ...

  2. Perform 浮动工具栏 无标题窗口的移动

    //浮动工具栏  { 窗体是否要隐藏,重要的是要判断是否在操作中, 通过窗体的Active属性,可以确定窗体是否具有焦点. 在窗体有焦点时,该窗体正在被操作, 这时需要完全显示在屏幕当中: 如果窗体没 ...

  3. QT实现可移动和改变尺寸的无边框窗口

    2019独角兽企业重金招聘Python工程师标准>>> 实现QT无边框窗口的拖动,尺寸改变.需要的时候从该类继承,派生类需要定义为QWidget. 头文件: #ifndef SIZE ...

  4. C# 系统应用之无标题窗体移动的两种方法

    在做项目界面设计中,常常为了美观需要设置窗体属性"FormBorderStyle"(窗体边框和标题栏外观)为None无标题窗口.此时隐藏标题的窗口怎样实现移动呢?我根据自己的项目从 ...

  5. c语言mfc窗口跳到下个窗口,MFC停靠窗口实现(CDockablePane)

    工作中编写MFC界面程序时用到了停靠窗口,为了避免之后用到时再去查询,这里记录下. 步骤 1.定义一个继承自CDockablePane的类 Class CDockableTest : public C ...

  6. python利用pyside2创建文件夹选择框,文件选择框(无小窗口)

    python利用pyside2创建文件夹选择框,文件选择框(无小窗口) 文件夹选择框 文件选择框 文件多选框 之前利用win32ui创建文件选择窗口非常好用,但是想使用文件夹选择窗口发现行不通.利用t ...

  7. 易语言 取无标题的窗口中编辑框句柄

    这是一个无标题的窗口: 如果要向该运行中的程序窗口编辑框中发送消息,就得先取到编辑框的窗口句柄.才能进一步操作. 那要如何才能取到该窗口句柄呢? 解决办法: 一个运行中的程序,虽然没有窗口标题,但是在 ...

  8. python只读打开文件,python如何使用只读、不显示窗口的方式打开ppt文件

    下面的python代码通过win32com打开ppt文件,默认情况下powerpoint的窗口会打开显示ppt文件内容,如果不希望powerpint显示,可以在Presentations.Open的方 ...

  9. QT窗口:透明与半透明、不规则异形窗口、控件透明与半透明、不规则异形按钮

    目录 1.不规则异形窗口和控件的代码原理 2.主窗口全透明 3.主窗口半透明(以白里透红为例) 4.不规则异形窗口 5.不规则异形按钮 6.使用样式表实现透明与半透明 1.不规则异形窗口和控件的代码原 ...

最新文章

  1. 高级特性-多线程,GUI
  2. 当客户说“你们的价格太高了”
  3. plSQL复制数据的方法
  4. android 调用本地第三方应用软件,如qq、微信、微博和视频播放器等
  5. [SCOI2014]方伯伯的OJ
  6. MyBatis 源码解读-settingsAsProperties()
  7. debugging Auto Layout:Logical Errors
  8. 洛谷 P4503 [CTSC2014]企鹅QQ 解题报告
  9. 如何安装boost库
  10. python制作一个桌面小工具
  11. 有向图强连通分支的Tarjan算法讲解 + HDU 1269 连通图 Tarjan 结题报告
  12. Python之Numpy的基础及进阶函数(图文)
  13. 如何在古董级IPAD上修改植物大战僵尸游戏金币
  14. Tensorflow深度学习网络应用——英特尔神经计算棒编译
  15. CorAl – Are the point clouds Correctly Aligned?
  16. memory management 蓝屏win10,要怎么解决这个蓝屏问题
  17. Mac Os OBS 直播 使用手机做摄像头并美颜
  18. VM虚拟机(VMware)设置外网连接
  19. 英雄联盟手游登录注册地与服务器不匹配,英雄联盟手游提示Unable to login地区不支持怎么解决 地区不支持解决方法_手心游戏...
  20. 关于apk软件的加固加壳和签名打包

热门文章

  1. caffe lmdb数据集的制作
  2. Netty权威指南带目录完整版.pdf
  3. 记 2016 中国国际信息通信展
  4. Java 自定义导出excel
  5. Anaconda与python对应版本的对照
  6. 如何确保分布式敏捷项目早死早超生?
  7. 4 海思Hi3518E实例代码分析
  8. 学习数据科学需要了解一些什么,什么是学习统计学最好的方法呢?
  9. 电机振动噪声——定子模态仿真
  10. 单细胞分析实录(7): 差异表达分析/细胞类型注释