这是Python字典的popitem()方法效果演示程序,收录在我的精灵宝典里。程序运行后会有一个字典显示在窗口内,按空格键它会弹出一对键值对。
这是程序运行结果:

讲解网址是: https://www.douyin.com/discover?modal_id=7079023292513914143
下面是所有代码,想捡漏赶快复制代码,万一有一天我改变主意了呢?
"""
字典弹弹弹.py
Python字典的popitem()效果演示程序
本程序需要sprites和gameturtle模块运行,请用cmd打开管理员窗口,
输入pip install sprites和pip install gameturtle进行安装.
"""
from time import sleep
from random import randint
from gameturtle import single2multitext
from sprites import Sprite,txt3image,Key,Screen
screen = Screen()
screen.setup(660,660)
screen.title('字典弹弹弹_字典的popitem()效果演示程序by李兴球')
ftb = ('黑体',64,'normal')
ftm = ('黑体',34,'normal')
fts = ('黑体',16,'normal')
sleep(1.3)
kv = Sprite('blank')# kv不仅用来写文字,下面还会通过切换造型显示弹出去的键值对
kv.color('orange')
kv.goto(-250,230)
kv.write('字',align='center',font=ftb)
sleep(0.5)
kv.goto(250,230)
kv.write('典',align='center',font=ftb)
sleep(0.5)
kv.goto(0,-200)
kv.write('弹 弹 弹',align='center',font=ftm)
sleep(0.5)
kv.goto(0,-240)
kv.write('字典.popitem()效果演示程序',align='center',font=fts)
sleep(0.5)
kv.goto(0,-270)
kv.write('作者:李兴球',align='center',font=fts)
sleep(0.5)
kv.goto(0,-300)
kv.write('基于Python海龟模块的创作',align='center',font=fts)
sleep(0.5)
colors = {'red':'红','orange':'橙','yellow':'黄','green':'绿', 'cyan':'青',
'blue':'蓝','purple':'紫','black':'黑','white':'白','gray':'灰'}
s = single2multitext(str(colors),58) # 单行变多行,每行58字
s = "colors = " + s
txt3image(s,'res/zd.png') # s变成图像
zd = Sprite('res/zd.png') # 把文本转换成的图像,再包装成角色叫zd
# 出场就来一个抖动效果
for _ in range(randint(12,24)):
zd.addx(randint(-5,5))
sleep(0.01)
zd.addy(randint(-5,5))
sleep(0.01)
zd.home()
spacekey = Key('space') # 新建按键,空格键
screen.listen() # 监听按键检测
while colors: # 当colors非空时
# 写提示语
kv.shape('blank')
kv.sety(150)
kv.write('请按空格键',align='center',font=('',16)) # 写上提示
while not spacekey.downup():screen.update()# 没按空格键时不断刷新屏幕
kv.clear() # 按了空格键后清除所写的
kv.sety(0) # 设定它的y坐标为0
# 抖动效果
for _ in range(randint(6,10)):
zd.addx(randint(-5,5))
sleep(0.01)
zd.addy(randint(-5,5))
sleep(0.01)
zd.home()
# 按空格键后弹出一对键值对,注意字典数据变少,所以要重新设定zd的造型
key,value = colors.popitem() # 弹出键值对
s = single2multitext(str(colors),58) # 字典单行变多行
s = "colors = " + s
txt3image(s,f'res/zd{key}_{value}.png') # 多行文本转图像
zd.shape(f'res/zd{key}_{value}.png') # 重设为此造型
# 弹出去的键值对,组成元组,转换成图像,再包装成角色,滑行出去
s = "colors.popitem() 返回: ('" + str(key) + "','" + str(value) + "')" # 弹出去的文本
txt3image(s,f'res/poped{key}_{value}.png') # 把s转成图像
kv.shape(f'res/poped{key}_{value}.png') # 把kv的造型设为这个图
kv.slide((0,150)) # 滑行到0,150
kv.wait(2) # 等待2秒
kv.slide((0,550),1000) # 1秒内滑出去
screen.mainloop()
