用Python的turtle库做一个乱码程序【附源码】

功能介绍

爱装x的兄弟们可以拿去装x[狗头]

这个程序就是用turtle库来制作的,启动后会有乱码出现在窗口左上角 (全屏),背景为黑色,乱码为绿色。每行的字符数不定。话不多说,开始吧。

环境

环境为Python3.8及以上(官网反应有点慢),然后滑到最底下,点击Windows x86-64 executable installer(32位操作系统的点击Windows x86 executable installer)下载后打开安装包,勾选Add Python 3.8 to PATH后点击Install Now(不要点击下面那个,除非你的C盘一点东西都装不下了)开始安装。

开始编辑

搭建框架

首先,我们要先导入turtle库,并新建画布、画笔。

import turtle
turtle.done()	#done函数用来保证绘制完毕后不会马上退出

画布
然后,我们将画布设为黑色,将画笔设为绿色。

import turtle
turtle.bgcolor('#000000')	#将背景颜色设为黑色
turtle.pencolor('#00ff00')	#将笔的颜色设为绿色
turtle.done()	#done函数用来保证绘制完毕后不会马上退出

画布2
然后,我们因为使用画笔去写文字,所以说有画笔就很丑,所以我们要隐藏画笔并将画笔移到左上角。

import turtle
turtle.bgcolor('#000000')	#将背景颜色设为黑色
turtle.pencolor('#00ff00')	#将笔的颜色设为绿色
turtle.hideturtle()	#隐藏画笔
turtle.penup()	#将笔抬起来,这样才不会在画布上留下痕迹
turtle.goto(-950,475)	#将画笔移到左上角
turtle.pendown()	#放下画笔
turtle.done()	#done函数用来保证绘制完毕后不会马上退出

画布3
然后我们就要利用列表将字符一个一个输进去,并且用random随机显示。

import turtle,random
turtle.bgcolor('#000000')	#将背景颜色设为黑色
turtle.pencolor('#00ff00')	#将笔的颜色设为绿色
turtle.hideturtle()	#隐藏画笔
turtle.penup()	#将笔抬起来,这样才不会在画布上留下痕迹
turtle.goto(-950,475)	#将画笔移到左上角
turtle.pendown()	#放下画笔
string = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0','@','#','%','&','^','*','_',"'",'"']	#字符列表
num = random.randint(0,len(string)-1)	#随机抽取一个字符
turtle.write(string[num],font=('arial',10,'normal'))	#显示字符
turtle.done()	#done函数用来保证绘制完毕后不会马上退出

画布4
然后为了避免字符重叠,我们需要打印一个字符后往旁边挪一点

import turtle,random
turtle.bgcolor('#000000')	#将背景颜色设为黑色
turtle.pencolor('#00ff00')	#将笔的颜色设为绿色
turtle.hideturtle()	#隐藏画笔
turtle.penup()	#将笔抬起来,这样才不会在画布上留下痕迹
turtle.goto(-950,475)	#将画笔移到左上角
turtle.pendown()	#放下画笔
string = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0','@','#','%','&','^','*','_',"'",'"']	#字符列表
num = random.randint(0,len(string)-1)	#随机抽取一个字符
turtle.write(string[num],font=('arial',10,'normal'))	#显示字符
turtle.penup()	#抬笔
turtle.forward(13)	#向右边移13像素
turtle.pendown()	#放笔
num = random.randint(0,len(string)-1)	#随机抽取一个字符
turtle.write(string[num],font=('arial',10,'normal'))	#显示字符
turtle.done()	#done函数用来保证绘制完毕后不会马上退出

画布5
然后我们就要重复显示

import turtle,random
turtle.bgcolor('#000000')	#将背景颜色设为黑色
turtle.pencolor('#00ff00')	#将笔的颜色设为绿色
turtle.hideturtle()	#隐藏画笔
turtle.penup()	#将笔抬起来,这样才不会在画布上留下痕迹
turtle.goto(-950,475)	#将画笔移到左上角
turtle.pendown()	#放下画笔
string = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0','@','#','%','&','^','*','_',"'",'"']	#字符列表
while True:	#无限循环
	num = random.randint(0,len(string)-1)	#随机抽取一个字符
	turtle.write(string[num],font=('arial',10,'normal'))	#显示字符
	turtle.penup()	#抬笔
	turtle.forward(13)	#向右边移13像素
	turtle.pendown()	#放笔

画布6
但是这样字符就会超出画布,无法多行,我们来改一下

import turtle,random
turtle.bgcolor('#000000')	#将背景颜色设为黑色
turtle.pencolor('#00ff00')	#将笔的颜色设为绿色
turtle.hideturtle()	#隐藏画笔
turtle.penup()	#将笔抬起来,这样才不会在画布上留下痕迹
turtle.goto(-950,475)	#将画笔移到左上角
turtle.pendown()	#放下画笔
string = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0','@','#','%','&','^','*','_',"'",'"']	#字符列表
h = 475		#换行坐标
w = 0		#字符数
while True:	#无限循环
    for i in range(50):
        w += 1		#显示一个字字符数+1
        num = random.randint(0,len(string)-1)	#随机抽取一个字符
        turtle.write(string[num],font=('arial',10,'normal'))	#显示字符
        turtle.penup()	#抬笔
        turtle.forward(13)	#向右边移13像素
        turtle.pendown()	#放笔
        if w >= 50:		#如果一行字符数大于等于50的话,就换行
            w = 0		#重置字符数
            turtle.penup()		#抬笔
            h -= 20				#换行
            turtle.goto(-950,h)		#移动笔

画布7
但是大家可能觉得太齐了,所以,这下random库就起作用了。

import turtle,random
turtle.bgcolor('#000000')	#将背景颜色设为黑色
turtle.pencolor('#00ff00')	#将笔的颜色设为绿色
turtle.hideturtle()	#隐藏画笔
turtle.penup()	#将笔抬起来,这样才不会在画布上留下痕迹
turtle.goto(-950,475)	#将画笔移到左上角
turtle.pendown()	#放下画笔
string = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0','@','#','%','&','^','*','_',"'",'"']	#字符列表
h = 475		#换行坐标
w = 0		#字符数
while True:	#无限循环
    for i in range(70):
        w += 1		#显示一个字字符数+1
        num = random.randint(0,len(string)-1)	#随机抽取一个字符
        turtle.write(string[num],font=('arial',10,'normal'))	#显示字符
        turtle.penup()	#抬笔
        turtle.forward(13)	#向右边移13像素
        turtle.pendown()	#放笔
        if w >= random.randint(20,70):		#如果一行字符数大于等于20~70的话,就换行
            w = 0		#重置字符数
            turtle.penup()		#抬笔
            h -= 20				#换行
            turtle.goto(-950,h)		#移动笔

画布8
这样就好了,你就可以拿着这个程序装x去了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值