ホームページ  >  記事  >  バックエンド開発  >  10 行の Python コードでどのような興味深いことが実現できるでしょうか?

10 行の Python コードでどのような興味深いことが実現できるでしょうか?

PHPz
PHPz転載
2023-05-07 09:07:071435ブラウズ

10 行以内のコードでどのような興味深い機能を実現できるかを見てみましょう。

1. QR コードの生成

QR コードは二次元バーコードとも呼ばれ、一般的な二次元コードは QR コードです。QR の正式名称はクイック レスポンスです。近年人気のモバイルデバイス。人気のコーディング方法であり、QR コードの生成も非常に簡単です。Python では、MyQR モジュールを通じて QR コードを生成できます。QR コードを生成するには、2 行のコードのみが必要です。まず MyQR モジュールをインストールします。ここでは国内ソースのダウンロードを選択します:

pip install qrcode

インストールが完了したら、コードの記述を開始できます:

import qrcode

text = input(输入文字或URL:)
# 设置URL必须添加http://
img =qrcode.make(text)
img.save()
#保存图片至本地目录,可以设定路径
img.show()

コードを実行すると、QR コードが表示されます。プロジェクトの下で生成されます。もちろん、QR コードを強化することもできます。

まず MyQR モジュールをインストールしましょう

pip installmyqr
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 は動画にも対応しています。

2. ワード クラウドの生成

ワード クラウドはワード クラウドとも呼ばれ、テキスト データに頻繁に出現する「キーワード」を視覚的に目立つように表示し、キーワードのレンダリングを形成します。のようなカラー絵が形成されており、テキストデータの主な意味が一目で理解できます。

しかし、古いプログラマーとして、私は今でもコードを使用して独自のワード クラウドを生成するのが好きです。長い時間がかかりますか?多くのテキストでさまざまな方法が紹介されていますが、実際に必要な Python コードは 10 行だけです。

最初に必要なライブラリをインストールします

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 行は、コード内のローカル ファイルを読み込みます。使用されるテキストは「Two」です。または老曹の目から見た研究開発管理に関する 3 つのこと」をこの公開アカウントで述べています。

5 ~ 6 行目、jieba を使用して単語を分割し、単語分割の結果をスペースで区切ります。

7 行目、単語分割後のテキストのワード クラウドを生成します。

8 行目から 10 行目では、pyplot を使用してワード クラウド図を表示します。

これが私が Python を好む理由の 1 つであり、シンプルで明確です。

3. バッチ カットアウト

カットアウトの実装には、Baidu Feipiao の深層学習ツール paddlepaddle の助けが必要です。バッチ カットアウトをすばやく実装するには、2 つのモジュールをインストールする必要があります。第 1 章 1 つは PaddlePaddle です:

python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple

、もう 1 つは paddlehub モデル ライブラリです:

pip install -i https://mirror.baidu.com/pypi/simple paddlehub

詳しいインストール情報については、PaddlePaddle の公式 Web サイトを参照してください: https://www.paddlepaddle.org.cn/

次に、バッチ カットアウトを実現するには 5 行のコードだけが必要です:

import os, paddlehub as hub
humanseg = hub.Module(name='deeplabv3p_xception65_humanseg')# 加载模型
path = 'D:/CodeField/Workplace/PythonWorkplace/GrapImage/'# 文件目录
files = [path + i for i in os.listdir(path)]# 获取文件列表
results = humanseg.segmentation(data={'image':files})# 抠图

カットアウトの効果は次のとおりです:

十行 Python 代码能实现哪些有趣功能?

左側は次のとおりです。が元の画像、右側が黄色の背景で塗りつぶされた切り抜き画像です。

4. テキスト感情認識

パドルパドルの登場により、自然言語処理は非常にシンプルになりました。テキスト感情認識を実現するには、PaddlePaddle と Paddlehub もインストールする必要があります。具体的なインストールについては、パート 3 を参照してください。次に、コード部分が来ます:

import paddlehub as hub
senta = hub.Module(name='senta_lstm')# 加载模型
sentence = [# 准备要识别的语句
'你真美', '你真丑', '我好难过', '我不开心', '这个游戏好好玩', '什么垃圾游戏',
]
results = senta.sentiment_classify(data={text:sentence})# 情绪识别
# 输出识别结果
for result in results:
print(result)

認識結果は辞書リストです:

{'text': '你真美', 'sentiment_label': 1, 'sentiment_key': 'positive', 'positive_probs': 0.9602, 'negative_probs': 0.0398}
{'text': '你真丑', 'sentiment_label': 0, 'sentiment_key': 'negative', 'positive_probs': 0.0033, 'negative_probs': 0.9967}
{'text': '我好难过', 'sentiment_label': 1, 'sentiment_key': 'positive', 'positive_probs': 0.5324, 'negative_probs': 0.4676}
{'text': '我不开心', 'sentiment_label': 0, 'sentiment_key': 'negative', 'positive_probs': 0.1936, 'negative_probs': 0.8064}
{'text': '这个游戏好好玩', 'sentiment_label': 1, 'sentiment_key': 'positive', 'positive_probs': 0.9933, 'negative_probs': 0.0067}
{'text': '什么垃圾游戏', 'sentiment_label': 0, 'sentiment_key': 'negative', 'positive_probs': 0.0108, 'negative_probs': 0.9892}

センチメントキー フィールドには感情情報が含まれています。詳細な分析については、「Python 自然言語処理には 5 行のコードのみが必要」を参照してください。 。

5. マスクを着用しているかどうかを確認する

これも 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)

上記プログラムを実行すると、プロジェクト配下に detect_result フォルダーが生成され、その中に認識結果が次のように表示されます。 6. 単純な情報爆撃

Python 入力デバイスを制御する方法はたくさんありますが、win32 モジュールや Pynput モジュールを使用できます。単純なループ操作を通じて情報爆弾の効果を実現できます。pynput を例にとると、最初にモジュールをインストールする必要があります:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pynput
十行 Python 代码能实现哪些有趣功能? コードを記述する前に、入力ボックスの座標を手動で取得する必要があります:

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 を使用する前に、トランペットにメッセージを送信する効果は次のとおりです。

7. 画像内のテキストを識別します

Tesseract を使用して、次のことができます。画像内のテキストを識別します。Python での実装は非常に簡単ですが、初期段階でのファイルのダウンロードと環境変数の設定は少し面倒なので、この記事ではコードのみを示します。
import pytesseract
from PIL import Image
img = Image.open('text.jpg')
text = pytesseract.image_to_string(img)
print(text)

其中text就是识别出来的文本。如果对准确率不满意的话,还可以使用百度的通用文字接口。

八、简单的小游戏

从一些小例子入门感觉效率很高。

import random
print(1-100数字猜谜游戏!)
num = random.randint(1,100)
guess =guess

i = 0
while guess != num:
i += 1
guess = int(input(请输入你猜的数字:))

if guess == num:
print(恭喜,你猜对了!)
elif guess < num:
print(你猜的数小了...)
else:
print(你猜的数大了...)

print(你总共猜了%d %i + 次)

猜数小案例当着练练手。

以上代码,大家可以敲一下非常有趣,也很适合小白入手。

以上が10 行の Python コードでどのような興味深いことが実現できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。