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("下載完畢!")

效果如下:

個別項目講解鏈接附上:

二行代碼實現專屬動態二維碼

二十行代碼實現井字棋盤

二十五行代碼實現圖片轉字符畫

三十行代碼爬取百度任意圖片

 

覺得有用記得點贊關注喲!

同時你也可以關注我的微信公衆號“灰狼洞主”,回覆 “Python筆記”獲取Python從入門到精通筆記分享和常用函數方法速查手冊

大灰狼期待與你一同進步!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章