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

(3)汉转英

def Chinese_to_English():num = 0score = 0iscontinue = "y"while iscontinue == "y" or iscontinue == "Y":hz = t.choice(zi)print("随机生成在汉语:"+hz)guess = input("输入English: ").strip()while guess != yin[hz]:print("对不起,不正确。")num = num + 1print('——>正确率:%.2f' % (score/(num+score)))guess = input("继续输入:").strip()if guess == yin[hz]:print("真棒!答对了!!")score = score+1print('——>正确率:%.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.汉语——>English3.单词列表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 osdef rename(pwd, new_filename):# 先把原有的文件进行乱命名,防止在正式命名时发生错误num = 1zero_num = 3os.chdir(pwd)for filename in os.listdir(pwd):# 找到文件的后缀,与文件分进行分割position = filename.find(".")os.rename(filename, '0' * zero_num + str(num) + filename[position:])num += 1if num == 10 or num == 100 or num == 1000:zero_num -= 1# 正式重命名num = 1zero_num = 3for filename in os.listdir(pwd):position = filename.find(".")os.rename(filename, new_filename + "_" + '0' * zero_num + str(num) + filename[position:])num += 1if num == 10 or num == 100 or num == 1000 or num == 10000:zero_num -= 1if __name__ == "__main__":pwd = input("请输入文件地址:")new_filename = input("请输入新的文件名:")rename(pwd, new_filename)

python 小案例相关推荐

  1. python编程例子-几个Python小案例,爱上Python编程!

    原标题:几个Python小案例,爱上Python编程! Python是一种面向对象的解释型编程语言,源代码与解释器CPython遵守GPL协议,Python语法简洁清晰. 语法简洁清晰,那么我们用少量 ...

  2. Python小案例(六)通过熵权法计算指标权重

    Python小案例(六)通过熵权法计算指标权重 在日常业务中,产品运营需要综合多个指标进行判断,如果没有目标变量进行监督训练的话,很难人为地判断哪个指标更好,综合起来哪个类别更优秀. 这里介绍一种基于 ...

  3. python编程案例-几个Python小案例,爱上Python编程!

    原标题:几个Python小案例,爱上Python编程! Python是一种面向对象的解释型编程语言,源代码与解释器CPython遵守GPL协议,Python语法简洁清晰. 语法简洁清晰,那么我们用少量 ...

  4. 用python计算个人所得税税率表,Python 小案例 计算个人所得税

    Python 小案例 计算个人所得税 Python 小案例 计算个人所得税 #coding=utf-8 monthMoney=input("请输入月收入:") ds=3500 #扣 ...

  5. 【一天一个Python小案例】RGB图转简笔画

    [一天一个Python小案例]RGB图转简笔画 import scipy.ndimage import numpy as np import matplotlib.pyplot as pltdef g ...

  6. Python小案例(一)非结构化文本数据处理

    Python小案例(一)非结构化文本数据处理 日常业务需求中,仅凭SQL一招鲜是没法吃遍天的,这个时候就需要更为强大的Python进行支持了.这个系列主要分享一些Python小案例,都是根据笔者日常工 ...

  7. python10的因数_十五道Python小案例,学会这些,Python基础已过关!

    十五道Python的小案例,不知道各位都会了多少! 一.猜数字 1到4能组成多少个互不相同且不重复数字的三位数?分别是? 分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉 ...

  8. python输入10个数字排序案例_介绍十个Python小案例,新手入门就在这里

    今天给大家分享十个Python入门级别的小案例. 案例一:排列组合 要求: 将4个数字可能组成的所有互不相同且无重复数字的排列组合列出. 分析: 排列就好了 代码: 案例二:阶梯求和 要求: 企业实行 ...

  9. python求15的因数_十五道Python小案例,学会这些,Python基础已过关!

    十五道Python的小案例,不知道各位都会了多少! 一.猜数字 1到4能组成多少个互不相同且不重复数字的三位数?分别是? 分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉 ...

  10. 16、Python小案例

    第5章 列表与元组 5.6 小案例 5.6.1 案例一 5.6.2 案例二 5.6 小案例 5.6.1 案例一 在某比赛中,共有5位评委给选手打分.计算选手得分时,去掉最高分与最低分,然后求其平均值, ...

最新文章

  1. 送你一份不正经的深度学习简述(附论文)
  2. 当前最佳的YOLOv4是如何炼成的?细数那些Tricks
  3. C# 数据库连接笔记
  4. Linux下Chrome/Chromium窗口边框有白线
  5. JQuery UI - droppable (转载)
  6. wget指定目录下载以及其它的使用方式
  7. navicat mysql server has gone away_Navicat中MySQL server has gone away错误怎么办【转载】
  8. ubuntu 18.04安装php 7,如何在Ubuntu 18.04和16.04上安装PHP(7.3,7.2和7.0)?
  9. 2021-06-20 表单详解
  10. 毕业论文封面LaTeX模板
  11. html增值税申报表,关于调整增值税纳税申报有关事项的公告
  12. 支付宝当面付扫码支付支付后不回调_新开支付宝不满90天当面付收款第二天到账怎么办?如何实现秒到而不是冻结的来看看吧!...
  13. 怎么访问vmware虚拟机IIS网站
  14. petalinux设计——使用petalinux定制linux系统
  15. 游侠更新仙剑全系列免CD补丁(支持WIN7 SP1)【转载】
  16. NUCLE0 STM32L476RGT6开发板的资料整理
  17. git push --set-upstream origin wangxiao
  18. 谁说大象不能跳舞——《读书笔记》
  19. ③企业虚拟化Kvm 管理、kvm高级命令、磁盘格式转换、挂载磁盘、第三篇
  20. English trip V1 - 3.What Would you Like? Teacher:Lamb Key: would like to

热门文章

  1. [理解需求变更之一]说说需求变更的必然
  2. android 判断服务是否正在运行,Android 判断某个服务(service)是否运行
  3. Linux先发送条件变量,linux 条件变量 浅谈Linux条件变量的使用
  4. 4位格雷码的顺序编码_八位格雷码转换器.doc
  5. 传输层端口号的范围是多少?被分为哪两部分_第三章, 传输层
  6. 仪征技师学院计算机,技师学院2019年下半年江苏省大学英语、大学计算机统考工作圆满结束...
  7. otl_stream查询返回数据_Hive查询的18种方式,你都学会了吗?
  8. centerpython_centeros下安装python3
  9. mysql group by 查询慢_MySQL慢查询优化(线上案例调优)
  10. 计算机不属于发明保护客体,如何判断两种类型的计算机程序发明能否成为专利保护客体?...