python列表入门演示幻灯片.pyw_python无标题栏窗口_python半透明窗口

 

用Python制作的幻灯片类型的作品,用来教Python的列表入门的, 以下是完整源代码。

本程序需要sprites模块支持,安装方法为在命令提示符下输入以下命令安装:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple sprites --upgrade

  1 """
  2    第六课 列表入门
  3 """
  4 from sprites import *
  5 
  6 s = '第六课 列表入门'
  7 screen = Screen()
  8 screen.bgcolor('blue')
  9 screen.titlebar(False)
 10 root = screen._root              # 窗口对象
 11 root.wm_attributes('-alpha',0.7) # 设置窗口为全透明(0到1.0)
 12 screen.setup(800,700)
 13 
 14 # 下面的代码让窗口可以拖动.
 15 oldx = 0
 16 oldy = 0
 17 def startmove(event):
 18     global oldx,oldy
 19     oldx = event.x
 20     oldy = event.y
 21 def stopmove(event):
 22     global oldx,oldy
 23     oldx = 0
 24     oldy = 0        
 25 def movewindow(event):
 26     global oldx,oldy     
 27     dx = event.x - oldx
 28     dy = event.y - oldy
 29     root.move(dx,dy)
 30 screen.cv.bind("<ButtonPress-2>", startmove)
 31 screen.cv.bind("<ButtonRelease-2>", stopmove)
 32 screen.cv.bind("<B2-Motion>",movewindow)
 33 
 34 
 35 ft = ('楷体',38,'bold')
 36 t = Sprite(visible=False,pos=(-500,0))
 37 t.color('magenta')
 38 clock = Clock()
 39 for x in range(110):
 40     t.clear()
 41     t.write(s,align='center',font=ft)
 42     t.wait()
 43     t.fd(5)
 44     clock.tick(60)
 45 
 46 m1 = Mouse()          # 鼠标左键
 47 while not m1.down():screen.update()
 48 
 49 for x in range(50):
 50     t.clear()
 51     t.write(s,align='center',font=ft)
 52     t.wait()
 53     t.fd(10)
 54     clock.tick(60)
 55     
 56 #以下是显示学习的内容段
 57 studycontent = """
 58 主要学习内容
 59 
 60 1、列表的概念与定义列表
 61 
 62 2、列表的索引
 63 
 64 3、列表数据的可变性
 65 
 66 4、append和len命令
 67 
 68 5、颜色列表
 69 
 70 6、练习与作业
 71 """
 72 t.color('white')
 73 t.clear()
 74 t.sety(-260)              # 这里修改菜单的显示y坐标
 75 ft = ('楷体',24,'bold')
 76 s = studycontent
 77 while not m1.down():screen.update()
 78 #  下面的代码显示主菜单
 79 for x in range(110):
 80     t.clear()
 81     t.write(s,align='center',font=ft)
 82     t.wait()
 83     t.bk(5)
 84     clock.tick(60)
 85 
 86 screen.listen()
 87 
 88 def slow_write(t,string):
 89     """
 90        t:角色,string:要显示的字
 91        本函数慢慢的显示字。
 92     """
 93     string = string.split('\n') # 换成列表     
 94     oldxy = t.position()   # 记录老的坐标
 95     t.goto(-340,310)       # 到新的坐标
 96     for line in string:    # 每一行字
 97         for char in line:     # 每一个字符
 98             t.write(char,align='center',font=ft)
 99             t.wait(0.2)
100             cd = len(bytes(char,'gb2312'))
101             if cd == 1:
102                 t.addx(20)
103             else:
104                 t.addx(30)
105         t.setx(-336)
106         t.addy(-50)
107     t.goto(oldxy)
108      
109 s1 = """
110 1、列表的概念与定义列表
111 列表是以中括号封闭的,以逗号隔开的,有顺序的,
112 可变数据集合,英文名为list。
113 定义一个空列表可以直接输入[],也可以用list命令,
114 如list()会生成一个空列表。
115 例如,x = [32,76,1024],就定义了一个列表,
116 它存储了三个整型数据。
117 列表中的数据的类型也可以是浮点数、布尔数据、
118 字符串数据甚至另一个列表。用type查看列表的
119 结果为<class 'list'>。
120 """
121 def press1():
122     t.clear()
123     slow_write(t,s1)
124     while not m1.down():screen.update()
125     t.clear()
126     t.write(s,align='center',font=ft)    
127 screen.onkeypress(press1,'1')
128 
129 
130 s2 = """
131 2、列表的索引
132 
133 和字符串一样,列表中的数据也有索引,
134 要访问列表中的每个数据的方法和字符串一样。
135 从左到右数,索引号是从0到最后一个数据的索引号。
136 从右到左数则是从-1到第一个数据的索引号。
137 和字符串一样,如果通过超出范围的索引号来
138 访问列表中的数据,也会发生索引错误。
139 """
140 def press2():
141     t.clear()
142     slow_write(t,s2)
143     while not m1.down():screen.update()
144     t.clear()
145     t.write(s,align='center',font=ft)    
146 screen.onkeypress(press2,'2')
147 
148 
149 s3 = """
150 3、列表数据的可变性
151 
152 我们可以向列表中添加数据,删除数据,也可以直接
153 修改列表中的某个数据,列表是可变的!
154 如,x=[32,76,1024],那么让x[0]=255是可以的,
155 甚至可以让x[0]='风火轮编程'也是没有问题的。
156 """
157 def press3():
158     t.clear()
159     slow_write(t,s3)
160     while not m1.down():screen.update()
161     t.clear()
162     t.write(s,align='center',font=ft)    
163 screen.onkeypress(press3,'3')
164 
165 
166 s4 = """
167 4、append和len命令
168 
169 如果要向列表末尾添加数据,那么可以用append命令。
170 用法:列表名称.append(数据)。假设有名为cs的列表。
171 它的值为['red','orange'],那么cs.append('yellow')
172 会向这个列表的末尾添加'yellow'这个字符串。
173 列表还有其它的一些命令,在此不做讲解。
174 如果要统计列表中数据的数量,可以用len命令。
175 假设有名为x的列表,len(x)则会返回x列表中的
176 数据的数量。
177 """
178 def press4():
179     t.clear()
180     slow_write(t,s4)
181     while not m1.down():screen.update()
182     t.clear()
183     t.write(s,align='center',font=ft)    
184 screen.onkeypress(press4,'4')
185 
186 
187 s5 = """
188 5、颜色列表
189 
190 我们可以定义一个列表,在这个列表中都是颜色单词。
191 可以把它取名为colors。以下是定义颜色表的代码:
192 colors=['red','orange','yellow',
193 'green','cyan','blue','purple']
194 """
195 def press5():
196     t.clear()
197     slow_write(t,s5)
198     while not m1.down():screen.update()
199     t.clear()
200     t.write(s,align='center',font=ft)    
201 screen.onkeypress(press5,'5')
202 
203 s6 = """
204 6、练习与作业
205 
206 ① 定义一个叫animals的列表,里面有些动物的名称。
207 然后用append命令添加一些数据进去。最后打印出
208 这个列表中的数据的数量。
209 ② 用list命令不仅可以新建一个空列表,也能在小
210 括号里写上一个字符串,看看这样做会返回什么结果。
211 """
212 def press6():
213     t.clear()
214     slow_write(t,s6)
215     while not m1.down():screen.update()
216     t.clear()
217     t.write(s,align='center',font=ft)    
218 screen.onkeypress(press6,'6')
219  
220 
221 byebye = """
222 下次再见!
223 """
224 def pressq():
225     t.clear()
226     t.color('cyan')
227     t.home()
228     t.write(byebye,align='center',font=('宋体',38,'bold'))
229     while not m1.down():screen.update()
230     screen.bye()    
231 screen.onkeypress(pressq,'q')
232 
233 
234 screen.mainloop()

 

posted on 2020-05-11 11:21  李兴球  阅读(400)  评论(0编辑  收藏  举报