目次
all or any
bashlotlib
collections
dir
emoji
from __future__ import
geogy
howdoi
inspect
Jedi
列表(list)推导式
map
newspaper3k
Operator overloading
pprint
Queue
__repr__
sh
Type hints
uuid
Virtual environments
wikipedia
xkcd
YAML
zip
ホームページ バックエンド開発 Python チュートリアル まとめて整理してみよう! Python実践スキルまとめ

まとめて整理してみよう! Python実践スキルまとめ

Mar 07, 2022 pm 05:10 PM
python

この記事では、python に関する関連知識を提供します。主に、すべてまたは任意の、bashlotlib、コレクションなどを含む 24 の非常に実践的な Python 開発スキルをまとめています。お役に立てば幸いです。皆さん役に立ちます。

まとめて整理してみよう! Python実践スキルまとめ

推奨学習: python チュートリアル

Python を学習する過程で、多くの友人は、「私はとても多くのことを学んだ」と思うかもしれません。たくさんありますが、一般的に使用され実用的なものはどれですか?作業効率を上げるにはどうすればよいでしょうか?

今日は、非常に役立つ Python の実践スキルを 24 個まとめました。友達に役立つことを願っています。 Huan 収集、学習、いいね、サポートへようこそ。記事の最後には技術交流グループが記載されています。

ここでは、これらのテクニックの一部を A ~ Z で始まる形式で共有し、これらの方法を簡単に紹介します。興味がある場合は、公式 Web サイトを確認してください。 Documentation~

all or any

Python 言語が非常に人気がある理由の 1 つは、非常に読みやすく、表現力豊かな。

人々はよく、Python は 実行可能な擬似コード であると冗談を言います。このようなコードを作成できる場合、それに異論を唱えるのは困難です。

x = [True, True, False]if any(x):
    print("至少有一个True")if all(x):
    print("全是True")if any(x) and not all(x):
    print("至少一个True和一个False")
ログイン後にコピー

bashlotlib

コンソールでグラフィックスを描画することを考えたことはありますか?

Bashlotlib は、コマンド ライン (大まかな環境) でデータをプロットするのに役立つ Python ライブラリです。

# 模块安装
pip install bashplotlib
# 绘制实例
import numpy as np
from bashplotlib.histpgram import plot_hist
arr = np.ramdom.normal(size=1000, loc=0, scale=1)
plot_hist(arr, bincount=50)
ログイン後にコピー

collections

Python には優れたデフォルトのデータ型がいくつかありますが、それらが期待どおりに動作しない場合があります。

幸いなことに、Python 標準ライブラリには collections モジュール**[1]** が用意されています。この便利なアドオンにより、さらに多くのデータ型が提供されます。

from collections import OrderedDict, Counter
# 记住键的添加顺序!
x = OrderedDict(a=1, b=2, c=3)
# 统计每个字符出现的频率
y = Counter("Hello World!")
ログイン後にコピー

dir

Python オブジェクトの内部を調べて、どのようなプロパティがあるかを確認する方法を考えたことはありますか?コマンド ラインで、次のように入力します。

dir() 
dir("Hello World") 
dir(dir)
ログイン後にコピー

これは、Python を対話的に実行して、作業しているオブジェクトやモジュールを動的に探索するときに非常に便利な機能です。 **関数****[2]** の詳細については、こちらをご覧ください。

emoji

emoji**[3]** は、日本の無線通信で使用される視覚的な感情記号です。テキストとは、文字、笑いを表すスマイリーフェイス、食べ物を表すケーキなど、さまざまな表現に使用できます。中国本土では、絵文字は通常「小さな黄色い顔」または単に絵文字と呼ばれます。

# 安装模块
pip install emoji
# 做个尝试
from emoji import emojize
print(emojize(":thumbs_up:"))
ログイン後にコピー

from __future__ import

Python の人気の結果の 1 つは、常に新しいバージョンが開発されていることです。新しいバージョンは、バージョンが古い場合を除き、新機能を意味します。

でも心配しないでください。 __future__ モジュール ****[4]** を使用すると、Python の将来のバージョンに機能をインポートできます。それは文字通りタイムトラベルか魔法か何かのようなものです。

from __future__ import print_function
print("Hello World!")
ログイン後にコピー

geogy

地理は、ほとんどのプログラマーにとって難しい分野です。地理情報を入手したり、地図を描いたりする際にも、さまざまな問題に遭遇することがあります。 **geopy モジュール****[5]** を使用すると、地理関連のコンテンツが非常に簡単になります。

pip install geopy
ログイン後にコピー

これは、さまざまなジオコーディング サービスの API を抽象化することで機能します。これを使用すると、場所の完全な番地、緯度、経度、さらには標高を取得できます。

便利な遠隔授業もあります。 2 つの位置間の距離を好みの測定単位で計算します。

from geopy import GoogleV3
place = "221b Baker Street, London"
location = GoogleV3().geocode(place)
print(location.address)
print(location.location)
ログイン後にコピー

howdoi

ターミナル プログラミングを使用する場合、問題が発生した後、StackOverflow で答えを検索し、ターミナルに戻ってプログラミングを続行します。このとき、以前に見つけた解決策を覚えていないことがあります。このとき、StackOverflow を再度確認する必要がありますが、ターミナルから離れたくない場合は、この便利なコマンド ライン ツールを使用する必要がありますどうやって****[6 ]

pip install howdoi
ログイン後にコピー

どんな質問があっても、質問することができ、最善を尽くして答えてくれます。

howdoi vertical align css
howdoi for loop in java
howdoi undo commits in git
ログイン後にコピー

ただし、注意してください。StackOverflow の上位の回答からコードがスクレイピングされます。常に最も有用な情報が提供されるとは限りません...

howdoi exit vim
ログイン後にコピー

inspect

Python の **inspect モジュール****[7]** は理解するのに最適です舞台裏で何が起こっているのか。独自のメソッドを呼び出すこともできます。

次のコード例inspect.getsource()は、独自のソース コードを出力するために使用されます。 inspect.getmodule() 定義されているモジュールを出力するためにも使用されます。

コードの最後の行では、独自の行番号が出力されます。

import inspect
print(inspect.getsource(inspect.getsource))
print(inspect.getmodule(inspect.getmodule))
print(inspect.currentframe().f_lineno)
ログイン後にコピー

もちろん、これらの簡単な使用法とは別に、検査モジュールはコードが何を行っているかを理解するのに役立ちます。これを使用して自己文書化コードを作成することもできます。

Jedi

Jedi ライブラリは、オートコンプリートおよびコード分析ライブラリです。これにより、コードの記述がより速く、より効率的になります。

独自の IDE を開発している場合を除き、Jedi **[8]** をエディター プラグインとして使用することに興味があるかもしれません。幸いなことに、これはすでにたくさんあります。

**kwargs

在学习任何语言时,都会有许多里程碑。使用 Python 并理解神秘的**kwargs语法可能算作一个重要的里程碑。

字典对象前面的双星号****kwargs****[9]**允许你将该字典的内容作为命名参数传递给函数。

字典的键是参数名称,值是传递给函数的值。你甚至不需要调用它kwargs

dictionary = {"a": 1, "b": 2}def someFunction(a, b):
    print(a + b)
    return# 这些做同样的事情:someFunction(**dictionary)someFunction(a=1, b=2)
ログイン後にコピー

当你想编写可以处理未预先定义的命名参数的函数时,这很有用。

列表(list)推导式

关于 Python 编程,我最喜欢的事情之一是它的列表推导式****[10]

这些表达式可以很容易地编写非常顺畅的代码,几乎与自然语言一样。

numbers = [1,2,3,4,5,6,7]
evens = [x for x in numbers if x % 2 is 0]
odds = [y for y in numbers if y not in evens]
cities = ['London', 'Dublin', 'Oslo']

def visit(city):
    print("Welcome to "+city)
    
for city in cities:
    visit(city)
ログイン後にコピー

map

Python 通过许多内置功能支持函数式编程。最有用的map()功能之一是函数——尤其是与**lambda 函数****[11]**结合使用时。

x = [1, 2, 3] 
y = map(lambda x : x + 1, x)
# 打印出 [2,3,4]
print(list(y))
ログイン後にコピー

在上面的示例中,map()将一个简单的 lambda 函数应用于x. 它返回一个映射对象,该对象可以转换为一些可迭代对象,例如列表或元组。

newspaper3k

如果你还没有看过它,那么准备好被Python newspaper module [12]模块震撼到。它使你可以从一系列领先的国际出版物中检索新闻文章和相关的元数据。你可以检索图像、文本和作者姓名。它甚至有一些内置的 NLP 功能**[13]**。

因此,如果你正在考虑在下一个项目中使用 BeautifulSoup 或其他一些 DIY 网页抓取库,使用本模块可以为你自己节省不少时间和精力。

pip install newspaper3k
ログイン後にコピー

Operator overloading

Python 提供对**运算符重载的****[14]**支持,这是让你听起来像一个合法的计算机科学家的术语之一。

这实际上是一个简单的概念。有没有想过为什么 Python 允许你使用+运算符来添加数字以及连接字符串?这就是操作符重载的作用。

你可以定义以自己的特定方式使用 Python 的标准运算符符号的对象。并且你可以在与你正在使用的对象相关的上下文中使用它们。

class Thing:
    def __init__(self, value):
        self.__value = value
    def __gt__(self, other):
        return self.__value > other.__value
    def __lt__(self, other):
        return self.__value < other.__value
something = Thing(100)
nothing = Thing(0)
# True
something > nothing
# False
something < nothing
# Error
something + nothing
ログイン後にコピー

pprint

Python 的默认print函数完成了它的工作。但是如果尝试使用print函数打印出任何大的嵌套对象,其结果相当难看。这个标准库的漂亮打印模块**pprint****[15]**可以以易于阅读的格式打印出复杂的结构化对象。

这算是任何使用非平凡数据结构的 Python 开发人员的必备品。

import requests
import pprint
url = &#39;https://randomuser.me/api/?results=1&#39;
users = requests.get(url).json()
pprint.pprint(users)
ログイン後にコピー

Queue

Python 标准库的 Queue 模块实现支持多线程。这个模块让你实现队列数据结构。这些是允许你根据特定规则添加和检索条目的数据结构。

“先进先出”(FIFO)队列让你可以按添加顺序检索对象。“后进先出”(LIFO) 队列让你可以首先访问最近添加的对象。

最后,优先队列让你可以根据对象的排序顺序检索对象。

这是一个如何在 Python 中使用队列**Queue****[16]**进行多线程编程的示例。

__repr__

在 Python 中定义类或对象时,提供一种将该对象表示为字符串的“官方”方式很有用。例如:

>>> file = open('file.txt', 'r') 
>>> print(file) 
<open file &#39;file.txt&#39;, mode &#39;r&#39; at 0x10d30aaf0>
ログイン後にコピー

这使得调试代码更加容易。将其添加到你的类定义中,如下所示:

class someClass: 
    def __repr__(self): 
        return "<some description here>"
someInstance = someClass()
# 打印 <some description here>
print(someInstance)
ログイン後にコピー

sh

Python 是一种很棒的脚本语言。有时使用标准的 os 和 subprocess 库可能有点头疼。

该**SH库****[17]**让你可以像调用普通函数一样调用任何程序——对于自动化工作流和任务非常有用。

import sh
sh.pwd()
sh.mkdir('new_folder')
sh.touch('new_file.txt')
sh.whoami()
sh.echo('This is great!')
ログイン後にコピー

Type hints

Python 是一种动态类型语言。定义变量、函数、类等时不需要指定数据类型。这允许快速的开发时间。但是,没有什么比由简单的输入问题引起的运行时错误更烦人的了。

Python 3.5**[18]** 开始,你可以选择在定义函数时提供类型提示。

def addTwo(x : Int) -> Int:
    return x +
ログイン後にコピー

你还可以定义类型别名。

from typing import List
Vector = List[float]
Matrix = List[Vector]
def addMatrix(a : Matrix, b : Matrix) -> Matrix:
  result = []
  for i,row in enumerate(a):
    result_row =[]
    for j, col in enumerate(row):
      result_row += [a[i][j] + b[i][j]]
    result += [result_row]
  return result
x = [[1.0, 0.0], [0.0, 1.0]]
y = [[2.0, 1.0], [0.0, -2.0]]
z = addMatrix(x, y)
ログイン後にコピー

尽管不是强制性的,但类型注释可以使你的代码更易于理解。

它们还允许你使用类型检查工具,在运行前捕获那些杂散的 TypeError。如果你正在处理大型、复杂的项目,这是很有用的!

uuid

通过Python 标准库的 uuid 模块**[19]**生成通用唯一 ID(或“UUID”)的一种快速简便的方法。

import uuid
user_id = uuid.uuid4()
print(user_id)
ログイン後にコピー

这将创建一个随机的 128 位数字,该数字几乎肯定是唯一的。事实上,可以生成超过 2¹²² 种可能的 UUID。这超过了五个十进制 (或 5,000,000,000,000,000,000,000,000,000,000,000,000)。

在给定的集合中发现重复的概率极低。即使有一万亿个 UUID,重复存在的可能性也远低于十亿分之一。

Virtual environments

你可能同时在多个 Python 项目上工作。不幸的是,有时两个项目将依赖于相同依赖项的不同版本。你在你的系统上安装了什么?

幸运的是,Python支持对 虚拟环境**[20]** 的让你可以两全其美。从命令行:

python -m venv my-project 
source my-project/bin/activate 
pip install all-the-modules
ログイン後にコピー

现在,你可以在同一台机器上运行 Python 的独立版本和安装。

wikipedia

维基百科有一个很棒的 API,它允许用户以编程方式访问无与伦比的完全免费的知识和信息。在**wikipedia模块****[21]**使访问该API非常方便。

import wikipedia
result = wikipedia.page('freeCodeCamp')
print(result.summary)
for link in result.links:
    print(link)
ログイン後にコピー

和真实站点一样,该模块提供了多语言支持、页面消歧、随机页面检索,甚至还有一个donate()方法。

xkcd

幽默是 Python 语言的一个关键特征,它是以英国喜剧小品剧**Python飞行马戏团****[22]**命名的。Python 的许多官方文档都引用了该节目最著名的草图。不过,Python 的幽默并不仅限于文档。试试运行下面的行:

import antigravity
ログイン後にコピー

YAML

YAML**[23]**指的是 “ 非标记语言” 。它是一种数据格式化语言,是 JSON 的超集。

与 JSON 不同,它可以存储更复杂的对象并引用它自己的元素。你还可以编写注释,使其特别适合编写配置文件。该**PyYAML模块****[24]**可让你使用YAML使用Python。

安装并然后导入到你的项目中:

pip install pyyamlimport yaml
ログイン後にコピー

PyYAML 允许你存储任何数据类型的 Python 对象,以及任何用户定义类的实例。

zip

压轴出场的也是很棒的一个模块。你曾经遇到过需要从两个列表中形成字典吗?

keys = ['a', 'b', 'c']
vals = [1, 2, 3]
zipped = dict(zip(keys, vals))
ログイン後にコピー

zip()内置函数需要一系列可迭代的对象,并返回一个元组列表中。每个元组按位置索引对输入对象的元素进行分组。

你还可以通过调用对象来“解压缩”对象*zip()

Python 是一种非常多样化且发展良好的语言,因此肯定会有许多我没有考虑的功能。如果你想了解更多的python模块,可以参考awesome-python****[25]

 推荐学习:python学习教程

以上がまとめて整理してみよう! Python実践スキルまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

mysqlは支払う必要がありますか mysqlは支払う必要がありますか Apr 08, 2025 pm 05:36 PM

MySQLには、無料のコミュニティバージョンと有料エンタープライズバージョンがあります。コミュニティバージョンは無料で使用および変更できますが、サポートは制限されており、安定性要件が低く、技術的な能力が強いアプリケーションに適しています。 Enterprise Editionは、安定した信頼性の高い高性能データベースを必要とするアプリケーションに対する包括的な商業サポートを提供し、サポートの支払いを喜んでいます。バージョンを選択する際に考慮される要因には、アプリケーションの重要性、予算編成、技術スキルが含まれます。完璧なオプションはなく、最も適切なオプションのみであり、特定の状況に応じて慎重に選択する必要があります。

hadidb:pythonの軽量で水平方向にスケーラブルなデータベース hadidb:pythonの軽量で水平方向にスケーラブルなデータベース Apr 08, 2025 pm 06:12 PM

hadidb:軽量で高レベルのスケーラブルなPythonデータベースHadIDB(HadIDB)は、Pythonで記述された軽量データベースで、スケーラビリティが高くなっています。 PIPインストールを使用してHADIDBをインストールする:PIPINSTALLHADIDBユーザー管理CREATEユーザー:CREATEUSER()メソッド新しいユーザーを作成します。 Authentication()メソッドは、ユーザーのIDを認証します。 fromhadidb.operationimportuseruser_obj = user( "admin"、 "admin")user_obj。

MongoDBデータベースパスワードを表示するNAVICATの方法 MongoDBデータベースパスワードを表示するNAVICATの方法 Apr 08, 2025 pm 09:39 PM

Hash値として保存されているため、Navicatを介してMongoDBパスワードを直接表示することは不可能です。紛失したパスワードを取得する方法:1。パスワードのリセット。 2。構成ファイルを確認します(ハッシュ値が含まれる場合があります)。 3.コードを確認します(パスワードをハードコードできます)。

mysqlはインターネットが必要ですか? mysqlはインターネットが必要ですか? Apr 08, 2025 pm 02:18 PM

MySQLは、基本的なデータストレージと管理のためにネットワーク接続なしで実行できます。ただし、他のシステムとのやり取り、リモートアクセス、または複製やクラスタリングなどの高度な機能を使用するには、ネットワーク接続が必要です。さらに、セキュリティ対策(ファイアウォールなど)、パフォーマンスの最適化(適切なネットワーク接続を選択)、およびデータバックアップは、インターネットに接続するために重要です。

MySQLワークベンチはMariadBに接続できますか MySQLワークベンチはMariadBに接続できますか Apr 08, 2025 pm 02:33 PM

MySQLワークベンチは、構成が正しい場合、MariadBに接続できます。最初にコネクタタイプとして「mariadb」を選択します。接続構成では、ホスト、ポート、ユーザー、パスワード、およびデータベースを正しく設定します。接続をテストするときは、ユーザー名とパスワードが正しいかどうか、ポート番号が正しいかどうか、ファイアウォールが接続を許可するかどうか、データベースが存在するかどうか、MariadBサービスが開始されていることを確認してください。高度な使用法では、接続プーリングテクノロジーを使用してパフォーマンスを最適化します。一般的なエラーには、不十分な権限、ネットワーク接続の問題などが含まれます。エラーをデバッグするときは、エラー情報を慎重に分析し、デバッグツールを使用します。ネットワーク構成を最適化すると、パフォーマンスが向上する可能性があります

高負荷アプリケーションのMySQLパフォーマンスを最適化する方法は? 高負荷アプリケーションのMySQLパフォーマンスを最適化する方法は? Apr 08, 2025 pm 06:03 PM

MySQLデータベースパフォーマンス最適化ガイドリソース集約型アプリケーションでは、MySQLデータベースが重要な役割を果たし、大規模なトランザクションの管理を担当しています。ただし、アプリケーションのスケールが拡大すると、データベースパフォーマンスのボトルネックが制約になることがよくあります。この記事では、一連の効果的なMySQLパフォーマンス最適化戦略を検討して、アプリケーションが高負荷の下で効率的で応答性の高いままであることを保証します。実際のケースを組み合わせて、インデックス作成、クエリ最適化、データベース設計、キャッシュなどの詳細な主要なテクノロジーを説明します。 1.データベースアーキテクチャの設計と最適化されたデータベースアーキテクチャは、MySQLパフォーマンスの最適化の基礎です。いくつかのコア原則は次のとおりです。適切なデータ型を選択し、ニーズを満たす最小のデータ型を選択すると、ストレージスペースを節約するだけでなく、データ処理速度を向上させることもできます。

MySQLを解く方法は、ローカルホストに接続できません MySQLを解く方法は、ローカルホストに接続できません Apr 08, 2025 pm 02:24 PM

MySQL接続は、次の理由が原因である可能性があります。MySQLサービスは開始されず、ファイアウォールは接続をインターセプトし、ポート番号が間違っています。ユーザー名またはパスワードが間違っています。My.cnfのリスニングアドレスは不適切に構成されています。トラブルシューティング手順には以下が含まれます。 2.ファイアウォール設定を調整して、MySQLがポート3306をリッスンできるようにします。 3.ポート番号が実際のポート番号と一致していることを確認します。 4.ユーザー名とパスワードが正しいかどうかを確認します。 5. my.cnfのバインドアドレス設定が正しいことを確認してください。

Amazon AthenaでAWS接着クローラーの使用方法 Amazon AthenaでAWS接着クローラーの使用方法 Apr 09, 2025 pm 03:09 PM

データの専門家として、さまざまなソースから大量のデータを処理する必要があります。これは、データ管理と分析に課題をもたらす可能性があります。幸いなことに、AWS GlueとAmazon Athenaの2つのAWSサービスが役立ちます。

See all articles