密かにPythonを学び、みんなに衝撃を与えたい(4日目)

ここに写真の説明を挿入

タイトルは気分を害するものではありませんが、この広告は楽しいと思います
。よろしければ上記のマインドマップをご覧ください。とにかくあまり学ぶことができません。

序文

予備レビュー: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グループを作成しましたが、興味のある友人は次のことを知ることができます。これはどのようなグループですか。

グループを介したポータル:ポータル

ここに写真の説明を挿入
ここに写真の説明を挿入

おすすめ

転載: blog.csdn.net/qq_43762191/article/details/109195441