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()