python 小案例

1、生成随机验证码

介绍:验证码是由数字和字母组成的

import random
from PIL import Image, ImageDraw, ImageFont, ImageFilter

(1)首先要生成字母和数字

字母:先找到字母的ASCII码,在进行转换为char类型

def rndChar():
    return chr(random.randint(65, 90))

数字:先找到数字的ASCII码,在进行转换为str类型

def rndNum():
    return str(random.randint(0, 9))

(2)随机生成颜色

颜色的阈值都是可以调节的

# 随机颜色1(背景颜色):
def rndColor():
    return (random.randint(30, 255),
            random.randint(30, 255),
            random.randint(30, 255))


# 随机颜色2(数字或字母颜色):
def rndColor2():
    return (random.randint(0, 127),
            random.randint(0, 127),
            random.randint(0, 127))

 (3)创建一个画板

# 240 x 60:
width = 60 * 4
height = 60

image = Image.new('RGB', (width, height), (255, 255, 255))

# 创建Font对象:
font = ImageFont.truetype(font="pillow_data/ARIALN.TTF", size=36)

# 创建Draw对象:
draw = ImageDraw.Draw(image)

 (4)填充背景色并随机填入数字或字母

# 填充每个像素:
for x in range(width):
    for y in range(height):
        draw.point((x, y), fill=rndColor())

# 输出文字:
for t in range(4):
    if random.randint(1, 10) > 5:
        draw.text((60 * t + 10, 10), rndChar(), font=font, fill=rndColor2())
    else:
        draw.text((60 * t + 10, 10), rndNum(), font=font, fill=rndColor2())

 (5)进行模糊显示

# 模糊
image = image.filter(ImageFilter.BLUR)

image.show()

 

2、图片九宫格

from PIL import Image,ImageDraw

# 读取图片
img = Image.open(r"D:\VCR PICTURE\薇尔莉特.jpg")

# 将图片填充为正方形
img = img.resize((400, 400))

# 切割成九宫格
img_draw = ImageDraw.Draw(img)
w,h = img.size

# 画线
hline1 = round(h / 3)
wline1 = round(w / 3)
hline2 = round(h / 3) * 2
wline2 = round(w / 3) * 2

img_draw.line([hline1, 0, hline1, h], fill="white", width=6)
img_draw.line([hline2, 0, hline2, h], fill="white", width=6)
img_draw.line([0, wline1, w, wline1], fill="white", width=6)
img_draw.line([0, wline2, w, wline2], fill="white", width=6)

# 保存图片
img.save(r"D:\VCR PICTURE\薇尔莉特_new.jpg")

# 显示图片
img.show()

   

3、逆放gif

from PIL import Image, ImageSequence

img = Image.open(r'D:\VCR PICTURE\yellow_face.gif')

frames = []
for frame in ImageSequence.Iterator(img):
    frames.append(frame.copy())

frames.reverse()
frames[0].save(r"D:\VCR PICTURE\yellow_face_reverse.gif", save_all=True, append_images=frames)

正序 逆序

4、背单词

(1)创建列表存放单词

import random as t

# 创建单词序列
words = ("easy", "difficult", "answer", "continue")
zi = ("容易", "困难", "回答", "继续")
hanzi = {"easy": "容易", "difficult": "困难",
         "answer": "回答", "continue": "继续", "blue": "蓝色"}
yin = {"容易": "easy", "困难": "difficult",
       "回答": "answer", "继续": "continue", "蓝色": "blue"}

 (2)英转汉

def English_to_Chinese():
    num = 0
    score = 0
    iscontinue = "y"
    while iscontinue == "y" or iscontinue == "Y":
        word = t.choice(words)
        print("随机生成在单词:"+word)
        guess = input("输入汉语: ").strip()  # 防止用户误操作录入空白
        while guess != hanzi[word]:
            print("对不起,不正确。")
            num = num + 1
            print('——>正确率:%.2f' % (score/(num+score)))
            guess = input("继续输入:").strip()
        if guess == hanzi[word]:
            print("真棒!答对了!!")
            score = score+1
            print('——>正确率:%.2f' % (score/(num+score)))
        print("*" * 30)
        iscontinue = input("是否继续(Y/N):")

 (3)汉转英

def Chinese_to_English():
    num = 0
    score = 0
    iscontinue = "y"
    while iscontinue == "y" or iscontinue == "Y":
        hz = t.choice(zi)
        print("随机生成在汉语:"+hz)
        guess = input("输入English: ").strip()
        while guess != yin[hz]:
            print("对不起,不正确。")
            num = num + 1
            print('——>正确率:%.2f' % (score/(num+score)))
            guess = input("继续输入:").strip()
        if guess == yin[hz]:
            print("真棒!答对了!!")
            score = score+1
            print('——>正确率:%.2f' % (score/(num+score)))
        print("*"*30)
        iscontinue = input("是否继续(Y/N):")

 (4)查看所有单词

def show_word():
    print("************************")
    for i in range(len(words)):
        print(words[i], "\t", zi[i])
    print("************************")
    input("按任意键结束查看: ")

(5)菜单栏

def mean():
    print("""
                    欢迎来到背单词
        根据English回答汉语或者根据汉语回答English
        -------------------------------------------
                    1.English——>汉语     
                    2.汉语——>English
                    3.单词列表
                    4.退出系统""")

 (6)主函数

if __name__ == "__main__":
    while True:
        mean()
        num = eval(input("选择需要进行的操作(1、2、3、4):"))
        if 1 == num:
            English_to_Chinese()
        elif 2 == num:
            Chinese_to_English()
        elif 3 == num:
            show_word()
        elif 4 == num:
            exit()
        else:
            print("输入格式错误,重新输入!!!")

5、重命名文件

import os

def rename(pwd, new_filename):
    # 先把原有的文件进行乱命名,防止在正式命名时发生错误
    num = 1
    zero_num = 3
    os.chdir(pwd)
    for filename in os.listdir(pwd):
        # 找到文件的后缀,与文件分进行分割
        position = filename.find(".")
        os.rename(filename, '0' * zero_num + str(num) + filename[position:])
        num += 1
        if num == 10 or num == 100 or num == 1000:
            zero_num -= 1

    # 正式重命名
    num = 1
    zero_num = 3
    for filename in os.listdir(pwd):
        position = filename.find(".")
        os.rename(filename, new_filename + "_" + '0' * zero_num + str(num) + filename[position:])
        num += 1
        if num == 10 or num == 100 or num == 1000 or num == 10000:
            zero_num -= 1


if __name__ == "__main__":
    pwd = input("请输入文件地址:")
    new_filename = input("请输入新的文件名:")
    rename(pwd, new_filename)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牧锦程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值