Python 小项目实战了解一下?

最近无论是北方还是南方都迎来了强冷空气的袭击,北风呼呼吹,我所在的城市这两天则可随处溜冰,城市道路结冰橙色预警,全省交通到处管制、小学幼儿园停课休息;上班路上的行人则是小心翼翼怕摔跤;老家韭菜坪的风景更美,给大家来带张照片感受感受:

韭菜坪雪景1

韭菜坪雪景2

言归正传,今天的文章来点有趣的小项目实战,希望给繁忙工作中的朋友们减减压,也给这个严冬增添几分暖色;详细项目请见后文。

用 Python 画彩虹线

用 Python turtle 画个转圈圈的彩虹线,实现思路如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 导入 turtle 包
import turtle
# 打开画笔
q = turtle.Pen()
# 设置背景颜色
turtle.bgcolor("white")
sides = 7

# 设置彩虹线
colors =["red","orange","yellow","green","cyan","blue","purple"]
for x in range(360):
     q.pencolor(colors[x % sides])
     q.forward(x*3 / sides+x)
     q.left(360 / sides+1)
     q.width(x * sides/200)

实现结果如下: 彩虹图

用 Python 实现有趣的图片转字符游戏

实现思路如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#用 Python 实现图片转字符
from PIL import Image
import os

#设置参数输入像素的灰度值
def g2s(gray):
    pixel_str='''$#%@&MNBEFRWYLIkbtj?*984532menocvzst{}[]1|()<>=+~-;:i^"'. '''
    length=len(pixel_str)
    # 字符之间的灰度区间
    plus=255/length
    # str_gray表示字符所代表的灰度值
    str_gray=0
    for i in range(length):
        str_gray = str_gray + plus
        if gray <=str_gray:
            return pixel_str[i]

def img2str(img_path,save_path,num=0):
    txt_path=os.path.join(save_path,'img.txt')
    f=open(txt_path,'w')
    f.write('')
    # 因为此目录有可能已有内容,所以先清空
    f.close()
    # a表示在文件的末尾添加
    f=open(txt_path,'a')

    # 因为有些图片尺寸过于大,所以添加了一个修改大小的功能
    im=Image.open(img_path)
    if num==0:
        pass
    else:
        im=im.resize( ( int(im.size[0]/num),int(im.size[1]/num) ) )

    # 直接将图片转换成灰度模式
    im=im.convert('L')
    for y in range(im.size[1]):
        for x in range(im.size[0]):
            s=g2s(im.getpixel((x,y)))
            f.write(s)
        f.write('\n')
    f.close()

if __name__=='__main__':
    img2str(r'test.jpg', r'D:\Python_test', 4)

测试图片:

实现效果如下:

总结

今天的文章主要是使用 Python 实现小项目减减压,希望对大家有所帮助!

示例代码 Python 小项目实战了解一下?

Python Geek Tech wechat
欢迎订阅 Python 技术,这里分享关于 Python 的一切。