ホームページ  >  記事  >  バックエンド開発  >  10 行の Python コードでどんな素晴らしいことができるでしょうか?

10 行の Python コードでどんな素晴らしいことができるでしょうか?

WBOY
WBOY転載
2023-05-04 19:58:051318ブラウズ

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()

コードを実行すると、プロジェクト A の 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. ワードクラウドの生成

ワードクラウドとは、ワードクラウドとも呼ばれ、テキストデータ中に出現頻度が高くキーワードを構成する「キーワード」を視覚的に目立つように表示したものです。単語のレンダリングは雲のようなカラー画像を形成するため、テキストデータの主な意味が一目で理解できます。

しかし、古いプログラマーとして、私は今でもコードを使用して独自のワード クラウドを生成するのが好きです。それは複雑ですか? 長い時間がかかりますか? 多くのテキストでさまざまな方法が紹介されていますが、実際には 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()

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

10 行の Python コードでどんな素晴らしいことができるでしょうか?

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

  • 1 行目から 3 行目は、jieba の描画ライブラリ matplotlib、ワード クラウド生成ライブラリ wordcloud、およびワード セグメンテーション ライブラリをそれぞれインポートします。
  • 4 行目はローカル ファイルの読み取りです。コードで使用されているテキストは、この公開アカウントの「老操の目から見た研究開発管理に関する 2 つまたは 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 つはパドルハブ モデル ライブラリです:

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 をインストールし、コードの記述を開始しました。

##パドルハブをハブとしてインポート# モデルをロード module = Hub.Module(name='pyramidbox_lite_mobile_mask')# 画像リスト image_list = ['face.jpg']# 画像辞書を取得 input_dict = {'image':image_list} # Maskの有無を確認 module.face_detection(data=input_dict)

上記手順を実行すると、プロジェクト直下にdetection_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 のユニバーサル テキスト インターフェイスを使用することもできます。

八、简单的小游戏

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

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