Python简单又好玩的项目推荐!【持续更新】
时间:2022-07-25
本文章向大家介绍Python简单又好玩的项目推荐!【持续更新】,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Hello!大家好哇!我是努力赚钱买生发水的灰小猿!
最近在做Python项目开发的时候愣是发现了好多好玩的小项目,并且都是代码量较少容易上手的,所以今天就来和小伙伴分享一些Python从一行代码到三十行代码都有哪些好玩的项目。之后大灰狼也会在这里持续更新更多好玩的项目。
一行代码实现心形图案
print('n'.join([''.join([('lovelovelove'[(x-y)%12]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in range(-30,30)])for y in range(15,-15,-1)]))
效果如下:
二行代码制作专属动态二维码
from MyQR import myqr
myqr.run(words='https://hao.360.com/',picture='Sources/gakki.gif',save_name='qr4.png',colorized=True)
效果如下:
四行代码生成专属词云:
from wordcloud import WordCloud
cy = WordCloud() # 创建词云对象
cy.generate('HuiXiaoYuan look forward to making progress with you') # 生成词云
cy.to_file('cy.png') # 保存词云
效果如下:
五行代码绘制多边形线条:
import turtle
t = turtle.Pen()
for x in range(360):
t.forward(x)
t.left(59)
效果如下:
十行代码绘制太阳花:
from turtle import *
color('red', 'yellow')
begin_fill()
while True:
forward(200)
left(170)
if abs(pos()) < 1:
break
end_fill()
done()
效果如下:
二十行代码实现井字棋游戏
checkerboard = {'top-L': ' ', 'top-M': ' ', 'top-R': ' ',
'mid-L': ' ', 'mid-M': ' ', 'mid-R': ' ',
'low-L': ' ', 'low-M': ' ', 'low-R': ' '}
def printBoard(replace):
print(checkerboard['top-L'] + '|' + checkerboard['top-M'] + '|' + checkerboard['top-R'])
print('——' + '+' + '——')
print(checkerboard['mid-L'] + '|' + checkerboard['mid-M'] + '|' + checkerboard['mid-R'])
print('——' + '+' + '——')
print(checkerboard['low-L'] + '|' + checkerboard['low-M'] + '|' + checkerboard['low-R'])
turn = 'X'
for i in range(9):
printBoard(checkerboard)
print("现在请" + turn + "出棋,请输入您的位置:")
move = input()
checkerboard[move] = turn
if turn == 'X':
turn = 'O'
else:turn = 'X'
if i == 8:
print("游戏结束,平棋!")
效果如下:
二十五行代码图片转字符画
from PIL import Image
IMG = 't01b2a945701805d7f1.jpg' #设置图片文件
WIDTH = 150 #设置字符画的宽
HEIGHT = 80 #设置字符画的高
OUTPUT = 'output5.txt' #设置存放字符画的文本文件
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]?-_+~<>i!lI;:,"^`'. ") #设置显示的字符集
def get_char(r,g,b,alpha = 256):
if alpha == 0:
return ' '
length = len(ascii_char)
gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
unit = (255.0 + 1)/length
return ascii_char[int(gray/unit)]
if __name__ == '__main__':
im = Image.open(IMG)
im = im.resize((WIDTH,HEIGHT), Image.NEAREST)
txt = ""
for i in range(HEIGHT):
for j in range(WIDTH):
txt += get_char(*im.getpixel((j,i)))
txt += 'n'
print(txt)
with open(OUTPUT,'w') as f:
f.write(txt)
效果如下:
三十行代码爬取任意百度图片
import requests
import re
import time
url = "http://image.baidu.com/search/index?tn=baiduimage&word=皮卡丘"
urls = requests.get(url) # 打开链接
urltext = urls.text # 获取链接全部文本
urlre = re.compile('"objURL":"(.*?)"', re.S) # 书写正则表达式
urllist = urlre.findall(urltext) # 通过正则进行匹配
with open("1.txt", "w") as txt: # 将匹配到的链接写入文件
for i in urllist:
txt.write(i + "n")
i = 0
# 循环遍历列表并下载图片
for urlimg in urllist:
time.sleep(3) # 程序休眠三秒
img = requests.get(urlimg, timeout = 5).content # 以二进制形式打开图片链接
if img:
with open(str(i) + ".jpg", "wb") as imgs: # 新建一个jpg文件,以二进制写入
print("正在下载第%s张图片 %s" % (str(i+1), urlimg))
imgs.write(img) #将图片写入
i += 1
if i == 3: #为了避免无限下载,在这里设定下载图片为3张
break
else:
print("下载失败!")
print("下载完毕!")
效果如下:
个别项目讲解链接附上:
觉得有用记得点赞关注哟!
- OpenCV和SVM分类器在自动驾驶中的车辆检测
- Hive Tunning(三) 最佳实践
- ambari删除脚本
- sqoop 常用命令整理(一)
- hbase 学习(十三)集群间备份原理
- hbase 学习(十二)非mapreduce生成Hfile,然后导入hbase当中
- RavenDb学习(六)查询补充特性
- hbase源码系列(一)Balancer 负载均衡
- OpenCV在车道线查找中的使用
- hbase源码系列(十五)终结篇&Scan续集-->如何查询出来下一个KeyValue
- mac系统下安装、启动、停止mongodb
- 100个Numpy练习【1】
- 100个Numpy练习【2】
- 100个Numpy练习【3】
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法