タイトルは気分を害するものではありませんが、この広告は楽しいと思います
。よろしければ上記のマインドマップをご覧ください。とにかくあまり学ぶことができません。
記事ディレクトリ
序文
予備レビュー:Pythonを密かに学び、みんなを驚かせたい(3日目)
上記の記事では、Pythonの基本的な知識、主にファイルに対するPythonの読み取りと書き込みの操作について説明しました。これは、単語の数が毎回比較的少ないためかもしれません。自分で開けるのは少し恥ずかしかったです。
しかし、それはまた、ファイルの読み取りと書き込みが前の2つの記事よりも少し難しいためです。
それで、今日、Pythonを「雑誌」モジュールにするものを見てみましょう!基本に不慣れな方は基礎を固めることができますが、結局のところ、地上での建設は非常に危険です。
本系列文默认各位有一定的C或C++基础,因为我是学了点C++的皮毛之后入手的Python,这里也要感谢齐锋学长送来的支持。
本系列文默认各位会百度,学习‘模块’这个模块的话,还是建议大家有自己的编辑器和编译器的,上一篇已经给大家做了推荐啦?
我要的不多,点个关注就好啦
然后呢,本系列的目录嘛,说实话我个人比较倾向于那两本 Primer Plus,所以就跟着它们的目录结构吧。
本系列也会着重培养各位的自主动手能力,毕竟我不可能把所有知识点都给你讲到,所以自己解决需求的能力就尤为重要,所以我在文中埋得坑请不要把它们看成坑,那是我留给你们的锻炼机会,请各显神通,自行解决。
さて、トピックに移りましょう。
モジュールとは何ですか?
他の高レベルの言語を学んだ場合は、C / C ++ソースファイルの先頭に、引用符で囲まれたヘッダーファイルである「include」が通常たくさんあることをご存知でしょう。ヘッダーファイルにはいくつかのクラスと関数があります。 、変数など、これらを使用したい場合は、事前にステートメントを作成する必要があります。
このように、それは本当にスペースが不足しています。
メンバー、ファイル、チャットレコードを含むQQグループがあるとします。これらを取得して使用する場合、グループに参加する必要がありますか?
これがモジュールを破棄する理由です。モジュールにはクラス、関数、変数があります。これらを使用する場合は、モジュールをインポートする必要があります。
このようにすると、はるかにスムーズになります。
えーと、いつも何かが足りないと感じています。はい、モジュールをスキャンして一瞥しましょう。理解したくありません。おそらく中身はわかっています。
以下は、ランダムモジュールでのインターセプトです。
from warnings import warn as _warn
from types import MethodType as _MethodType, BuiltinMethodType as _BuiltinMethodType
from math import log as _log, exp as _exp, pi as _pi, e as _e, ceil as _ceil
from math import sqrt as _sqrt, acos as _acos, cos as _cos, sin as _sin
from os import urandom as _urandom
from _collections_abc import Set as _Set, Sequence as _Sequence
from hashlib import sha512 as _sha512
import _random
__all__ = ["Random","seed","random","uniform","randint","choice","sample",
"randrange","shuffle","normalvariate","lognormvariate",
"expovariate","vonmisesvariate","gammavariate","triangular",
"gauss","betavariate","paretovariate","weibullvariate",
"getstate","setstate", "getrandbits",
"SystemRandom"]
NV_MAGICCONST = 4 * _exp(-0.5)/_sqrt(2.0)
TWOPI = 2.0*_pi
LOG4 = _log(4.0)
SG_MAGICCONST = 1.0 + _log(4.5)
BPF = 53 # Number of bits in a float
RECIP_BPF = 2**-BPF
class Random(_random.Random):
VERSION = 3 # used by getstate/setstate
def __init__(self, x=None):
self.seed(x)
self.gauss_next = None
def seed(self, a=None, version=2):
if a is None:
try:
# Seed with enough bytes to span the 19937 bit
# state space for the Mersenne Twister
a = int.from_bytes(_urandom(2500), 'big')
except NotImplementedError:
import time
a = int(time.time() * 256) # use fractional seconds
if version == 2:
if isinstance(a, (str, bytes, bytearray)):
if isinstance(a, str):
a = a.encode()
a += _sha512(a).digest()
a = int.from_bytes(a, 'big')
super().seed(a)
self.gauss_next = None
……
最初に、一連のパッケージ(import ...、今理解していなくても構いません)、いくつかの変数、そして関数を含むクラスを調整したことがわかります。
さて、多分一目で、続けましょう
変数を定義するには割り当てステートメントが必要であり、関数をカプセル化するにはdefステートメントが必要であり、クラスをカプセル化するにはクラスステートメントが必要ですが、モジュールをカプセル化するためにステートメントは必要ありません。
ステートメントが使用されない理由は、個々のPythonコードファイル(拡張子が.pyのファイル)が個別のモジュールであるためです。
これを理解するのは難しくありません。
モジュールをカプセル化する目的は、再利用するためにプログラムコードとデータを保存することでもあります。クラスや関数にカプセル化されている場合、主に自分で呼び出すのが便利ですが、モジュールはカプセル化されているため、自分で使用できるだけでなく、ファイル形式を他の人と簡単に共有できます。
参加して、独自のモジュールをインポートしてください
なんと言っても、他にも何千ものモジュールがありますが、将来は自分でモジュールを書く必要があるので、勉強するときは自分で書いたモジュールを使うほうが簡単です。
ステップ1:新しいモジュールを作成する
図の順序に従って新しいモジュールを作成し、コードを記述します。
ステップ2:モジュールを呼び出す
さて、これは非常にシンプルな小さな栗です。
モジュールのさまざまなメソッドを呼び出します。
前の記事と同様に、ファイルを開く方法は2つあり、1つはファイルを直接開く方法、もう1つはエイリアスを使用する方法です。モジュールを呼び出す方法もいくつかあります。
最初のタイプの直接インポートはすでに確認されていますが、ここでもう少し説明します。モジュール名が長すぎる場合は、エイリアスを使用できます。
たとえばimport test
、テストが少し長いと思われる場合は、後で使用するのは不便です。これはimport test as t
実行できますが、後でしか使用できません。 tはそのモジュールを参照するために使用されますが、testは使用できなくなり、トップパッケージになっています。
from ... import ...から呼び出される2番目のメソッド、
このメソッド、または上記の例では、テストでtest3クラスを使用したいのですが、他のクラスは必要ありません。それでは、なぜ他のすべてをインポートする必要があるのでしょうか。大きすぎませんか?現時点では、この方法を使用して正確な位置決めを行うことができます。
写真を見てください:
これは典型的な間違った書き方です:正確な位置がわかったので、前に大きなプールに巻き込まれないでください
これは、特定のパーツのみがインポートされ、インポートされていない残りのパーツがアプリケーションのパーツにインポートされるかどうかのテストです。競合します。
これは検証結果です。
これはエイリアスの使用であり、引き続き使用できます。
ここでもう1つ、複数のモジュールをインポートする場合はどうでしょうか。可能です。コンマを使用して異なるモジュールを区切ります。上に移動して、自分で試してください。
if __name__ == '__main__'
Pythonや他の多くのプログラミング言語の場合、プログラムにはエントリポイントが必要です。
Pythonでは、特定のpyファイルを実行しているときに、プログラムを開始できます---このpyファイルはプログラムのエントリポイントです。
ただし、プログラムを形成するためのpyファイルがたくさんある場合:
特定のpyファイルがプログラムのエントリポイントであることを[指定]するために、次のようなコードをpyファイルに書き込むことができます。
# 【文件:xx.py】
代码块 ①……
if __name__ == '__main__':
代码块 ②……
この文の意味は次のとおりです。
ここでは、[もし名前==「メイン」] Pythonのシミュレーションのプログラムエントリに相当します。Python自体はそのような記述を規定していません。プログラマーがコンセンサスに達するのはコーディングの習慣です。
Excelチャートを操作するためのcsvモジュール
まず第一に、これが他の誰かのモジュールを使用していることを明確に知る必要があります。第二に、私たちが達成したい機能がExcelテーブルの簡単な操作であることだけを知っています。
したがって、順序は次のようになります。
どのモジュールを使用しますか?
このモジュールの機能は何ですか?
これらの特定の機能を使用するにはどうすればよいですか?
さて、使用します。
どのモジュールが必要ですか?
これは実際には扱いやすいですが、扱いが非常に難しいこともあります。
扱いが簡単な場合は、Du Niangに聞いてください。
はい、1回の検索ですべてを見つけることができます。
言うのは簡単ではありません、あなたは以前の経験の多くを見つけることができません、あなたは尋ねなければなりません。
たとえば、今日はcsvモジュールを使用しています。これは使いやすいためです。
このモジュールには何が含まれていますか?
そうすれば、この問題は簡単に処理できます。英語が大丈夫だと感じた場合、または英語を練習したい場合は、公式Webサイトが最新バージョンに更新されているため、公式Webサイトにアクセスできます。
中国語の翻訳版。最新版を見つけるのがあまり効果的でない場合があります。
冗談ですが、中国語版には
Pythonマニュアル(公式中国語版)もあります
OK、csvモジュール(検索ボックス付き)が見つかりました:CSV
興味のある方は中国語と英語で読むことができます。お急ぎの場合はサンプルコードをご覧ください。
csvモジュールを使用する
まず、テーブルを作成します。
次に、ファイルを開くのと同じように、このテーブルを開きます。ファイル操作に慣れていない場合は、このレビューに戻ることができます
。Pythonを密かに学びたい(3)
読んだ
import csv
with open('test.csv', newline = '', encoding = 'GBK') as f:
#参数encoding = 'utf-8'防止出现乱码
reader = csv.reader(f)
#使用csv的reader()方法,创建一个reader对象
for row in reader:
print(row)
書く
まず、writer(または他の名前)という名前の変数を使用してインスタンスを作成します。作成方法はwriter = csv.writer(x)です。次に、writer.writerow(list)を使用して、行リストの内容をcsvファイルに書き込むことができます。
import csv
with open('test.csv','a', newline='',encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(['6', '小黑', '65', '82', '86'])
writer.writerow(['7', '小红', '78', '64', '31'])
この時点で、最も基本的なcsvテーブルの読み取りと入力の方法を学習しました。
今日のタスク:
複数のcsvファイルを1つのcsvファイルにマージしてみましょう。これは言うのは難しくなく、単純と言うのはそれほど直感的ではありません。
次の記事でコードを説明します。
その後、平均して3〜4日で一連の「Pythonを秘密裏に学ぶ」を更新しますので、ご安心ください。すべてが予定通りに行われます。
次の記事は実践的な記事です。最近の学習内容を最初から復習していきます。もっと練習していきます。
私は円を描きました、私たちの小さな円にみんなを歓迎します
私はPythonQ&Aグループを作成しましたが、興味のある友人は次のことを知ることができます。これはどのようなグループですか。
グループを介したポータル:ポータル