ホームページ  >  記事  >  バックエンド開発  >  クールな関数を実装するための 10 行の Python コード

クールな関数を実装するための 10 行の Python コード

WBOY
WBOY転載
2023-04-12 14:43:031846ブラウズ

クールな関数を実装するための 10 行の Python コード

1. QR コードの生成

QR コードは二次元バーコードとも呼ばれ、一般的な二次元コードは QR コードです。QR の正式名称は Quick です。応答。ここ数年、モバイル デバイスで非常に人気のあるコーディング方法であり、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()

さらに、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/linuxmi/linuxmi.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()

以上で、生成されたワード クラウドは次のようになります:

クールな関数を実装するための 10 行の Python コード

これらの 10 行のコードを読んでください。 :

  • 行 1 ~ 3 は、描画ライブラリ matplotlib、ワード クラウド生成ライブラリ wordcloud、jieba の単語セグメンテーション ライブラリをそれぞれインポートします;
  • 行 4 は、ローカル ファイルを読み取ります。 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 つはパドルハブ モデル ライブラリです:

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

次に、バッチ カットアウトを実装するために必要なコードは 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})# 抠图

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

コードを記述する前に、入力ボックスの座標を手動で取得する必要があります:

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 行を超えるコードであり、ハイエンドではありません。

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

Tesseract を使用して画像内のテキストを識別できます。Python での実装は非常に簡単ですが、初期段階でファイルをダウンロードして環境変数を構成するのは手間がかかります。少し面倒なので、この記事では次のコードのみを示します:

import pytesseract
from PIL import Image
img = Image.open('text.jpg')
text = pytesseract.image_to_string(img)
print(text)

ここで、text は認識されたテキストです。精度に満足できない場合は、Baidu のユニバーサル テキスト インターフェイスを使用することもできます。

8. シンプルなミニゲーム

いくつかの小さな例から始めると非常に効率的だと感じます。

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 までご連絡ください。