Python 言語の基礎 - Python 構文の機能

Python 構文の機能

Python を学習するには、コメント規則、コードのインデント、コーディング標準などの文法的特徴を理解する必要があります。Pythonを学習する際に最初に理解する必要がある文法的特徴について、以下で詳しく紹介します。

Python 構文機能のマインド マップ

1. 注意事項

Python には通常、単一行コメント複数行コメントファイル エンコーディング宣言コメントの 3 種類のコメントがあります。

1.1 定義

コメント: プログラムコード内のプログラムコードを説明するテキスト。

機能: コメントはプログラムではなく、実行することはできませんが、プログラム コードの機能を他の人が理解できるように説明するだけであり、プログラムの可読性を大幅に向上させることができます。

注は、中国の教科書にある古詩の注に似ています。これによると、いわゆるコメントとは、プログラマーがコードを読みやすくするために、マークされたテキストをコードに追加することです。コメントの内容はPythonインタプリタでは無視され、実行結果には反映されません。

1.2 単一行コメント

Python では、単一行コメントの記号として # を使用します。記号 # から改行の終わりまで、それ以降のすべての内容はコメントの内容とみなされ、Python コンパイラーによって無視されます。

構文は次のとおりです。

# 这是单行注释!

単一行のコメントは、コメント化するコードの前の行、またはコメント化するコードの右側に配置できます。たとえば、以下の両方の形式の注釈は正しいです。

最初の形式:

# 要求输入身高,单位为(m),如 1.70
height = float(input("请输入您的身高。单位为(m):"))

2 番目の形式:

height = float(input("请输入您的身高。单位为(m):"))	# 要求输入身高,单位为(m),如 1.70

上記の 2 つの形式のコードの実行結果を図 2.1 に示します。

図2.1 実行結果

図2.1 実行結果

コメントを追加する場合は、意味のあるものでなければなりません。つまり、コメントはコードの役割を完全に反映できるものでなければなりません。たとえば、図 2.2 の注釈は冗長な注釈です。図 2.3 に示すようにこれをコメントに変更すると、コードが何を行うのかが非常に明確になります。

図 2.2 冗長ノート

図 2.2 冗長ノート

図 2.3 推奨ノート
図 2.3 推奨ノート

単一行のコメントはコード内のどこにでも使用できますが、キーワードと識別子を分離することはできません。たとえば、次のコード コメントは正しくありません。

height = float(# 要求输入身高 input("请输入您的身高。单位为(m):"))

IDLE 開発環境では、メイン メニューで [形式] -> [領域のコメントアウト] メニュー項目を選択することで、選択したコードをコメント アウトできます (ショートカット キー Alt + 3 を直接使用することもできます)。また、[形式] -> [領域] を使用することもできます。メイン メニューの [領域をコメントアウト] メニュー項目 (ショートカット キー Alt + 4 を直接使用することもできます) で、追加された 1 行コメントをキャンセルします。

Pycharm や Idea などのツールを使用している場合は、ショートカット キー Ctrl + / ) を使用して、選択したコードまたは単一行のコードをコメント アウトまたはコメント解除できます。

1.2 複数行のコメント

Python では、複数行のコメント マーカーは 1 つもありませんが、一対の三重引用符 (つまり、'''...''' または """...""") で囲まれます。任意のステートメントを入力してください。 コンテンツはコメントとみなされます。このようなコードの場合、インタプリタによって無視されます。このようなコードは複数行で記述できるため、複数行のコメントとしても機能します。

構文形式は次のとおりです。

'''
注释内容 1
注释内容 2
注释内容 3
……
'''

また

"""
注释内容 1
注释内容 2
注释内容 3
……
"""

コメントとして三重引用符を使用する場合は、三重引用符がペアで表示される必要があることに注意してください。三重引用符の半分だけが書かれ​​ている場合、プログラムの実行中に、三重引用符で囲まれた文字列リテラルのスキャン中に **EOF というプロンプトが表示されます * * エラー。

複数行コメントは通常、著作権、関数、その他の情報を Python ファイル、モジュール、クラス、または関数に追加するために使用されます。たとえば、次のコードは複数行のコメントを使用して、著作権、機能、変更ログなどの情報を Python ファイルに追加します。

'''
@ Date:2023.02.04
@ Created:雾
@ Version:1.0
@ Description:根据身高、体重计算并返回其 BMI 指数
'''

三重引用符 ''...'' または ''...'''' がステートメント内に出現する場合、それはコメントではなく文字列であるため、区別する必要があります。たとえば、図 2.4 のコードは複数行のコメントですが、図 2.5 のコードは文字列です。

図 2.4 三重引用符は複数行のコメントです

図 2.4 三重引用符は複数行のコメントです

図 2.5 文字列としての三重引用符
図 2.5 文字列としての三重引用符

1.3 ファイルエンコーディング宣言の注意事項

Python 3 では、デフォルトのファイル エンコーディングは UTF-8 です。このエンコーディングは、中国語を含む世界中のほとんどの言語の文字をサポートします。デフォルトのエンコーディングを使用したくない場合は、ファイルの最初の行でファイルのエンコーディングを宣言する必要があります。つまり、ファイル エンコーディングを使用してコメントを宣言する必要があります。

構文形式は次のとおりです。

# -*-coding:编码 -*-

また

# coding=编码

上記の構文では、エンコーディングはファイルで使用される文字エンコーディング タイプであり、GBK が使用されている場合は、gbk または cp936 に設定されます。

たとえば、指定されたエンコードが GBK の場合、次の中国語のコメントを使用できます。

# -*-coding:gbk -*-

上記のコードでは、「-*-」には特別な効果はなく、見た目を美しくするためにのみ追加されています。したがって、上記のコードは「#coding:gbk」に置き換えることもできます。

さらに、次のコードも正しい中国語のコメントです。

# coding = gbk

2. コードのインデント

Python は、他の設計言語 (Java や C 言語など) のようにコード ブロックを区切るために中括弧 "{}" を使用しませんが、コード間のレベルを区別するためにコードのインデントとコロン ":" を使用します。

インデントはスペースまたは Tab キーを使用して実行できます。このうち、通常、スペースを使用する場合はスペース4個分、タブキーを使用する場合はタブキー1個分のインデント量となります。通常、インデントにはスペースバーを使用することをお勧めします。

Python では、クラス定義、関数定義、フロー制御ステートメント、例外処理ステートメントでは、行末のコロンと次の行のインデントがコード ブロックの始まりを表し、インデントの終わりが終了を表します。コードブロックの 。

たとえば、次のコードのインデントは正しいインデントです。

def find_max_subarray(array):
    """

    :param array: 含有 n 个元素的数组
    :return: 三种情况中,元素和最大的数组就是整个数组的最大子数组
    """
    if len(array) <= 1:
        return array, array[0]  # 当数组元素小于等于 1 时,直接返回
    left_part = array[0:int(len(array) / 2)]  # 将数组分割为两部分
    right_part = array[int(len(array) / 2):len(array)]
    left_sub_array, left_max = find_max_subarray(left_part)  # 递归求取左半部分最大子数组
    right_sub_array, right_max = find_max_subarray(right_part)  # 递归求取右半部分最大子数组
    crossing_sub_array, crossing_max = find_max_crossing_subarray(array, int(len(array) / 2) - 1)  # 获得横跨左右两部分的最大子数组
    max_sub_array, max_sum = left_sub_array, left_max
    if right_max > left_max:
        max_sub_array, max_sum = right_sub_array, right_max
    if crossing_max > max_sum:
        max_sub_array, max_sum = crossing_sub_array, crossing_max
    return max_sub_array, max_sum  # 三种情况中,元素和最大的数组就是整个数组的最大子数组

Python にはコードのインデントに関する非常に厳しい要件があり、同じレベルのコード ブロックのインデント量は同じでなければなりません。適切なコード インデントが使用されていない場合、SyntaxError 例外がスローされます。たとえば、図 2.6 に示すように、一部のコードには 4 つのスペースのインデントがあり、他のコードには 2 つのスペースがあり、SyntaxError エラーが発生します。

図 2.6 インデントの違いによる SyntaxError

図 2.6 インデントの違いによる SyntaxError

IDLE 開発環境では、通常、コードの基本的なインデント単位として 4 つのスペースが使用されます。ただし、[オプション] -> [IDLE の設定] メニュー項目を選択して、開いた [設定] ダイアログ ボックスの [フォント/タブ] タブでコードの基本的なインデントを変更することもできます。

3. コーディング標準

勉強しているときは、最も基本的なコード記述仕様である通常のコードを読むことを好みます。特定のコード記述ルールと命名規則に従うと、コードがより標準化され、コードの理解と保守において重要な役割を果たすことができます。Pythonコードの記述ルールと命名規則を紹介します。

3.1 記述ルール

Python はコーディング仕様として PEP 8 を使用します。PEP は Python Enhancement Proposal の略語で、翻訳すると Python 拡張提案、PEP 8 は Python コードのスタイル ガイドであるバージョンを表します。厳密に従う必要がある PEP 8 コーディング仕様のいくつかのエントリを以下に示します。

  • 各インポート ステートメントは 1 つのモジュールのみをインポートします。一度に複数のモジュールをインポートすることは避けてください。図 2.7 は推奨される書き方、図 2.8 は非推奨の書き方です。

図2.7 推奨する書き方

図2.7 推奨する書き方

図 2.8 非推奨の書き込み
図 2.8 非推奨の書き込み

  • 行末にセミコロン「;」を追加しないでください。また、セミコロンを含む 2 つのコマンドを同じ行に置かないでください。たとえば、図 2.9 のコードは不正な形式です。

図2.9 不規則な書き込み

図2.9 変則的な書き込み方法

  • 各行の文字数は 80 文字以下にすることをお勧めします。それを超える場合は、括弧 "()" を使用して複数行の内容を暗黙的に接続することをお勧めします。また、バックスラッシュ "\" を使用して接続することは推奨されません。例: 文字列テキストを 1 行に表示できない場合は、括弧 "()" を使用して別の行に表示できます。コードは次のとおりです。
print("古巴比伦王颁布了汉谟拉比法典"
      "刻在黑色的玄武岩"
      "距今已经三千七百多年"
      "你在橱窗前 凝视碑文的字眼"
      "我却在旁静静欣赏你那张我深爱的脸"
      "祭司 神殿 征战 弓箭 是谁的从前"
      "喜欢在人潮中你只属于我的那画面"
      "经过苏美女神身边 我以女神之名许愿")

たとえば、次のようなバックスラッシュ「\」による連結は推奨されません。

print("古巴比伦王颁布了汉谟拉比法典\
刻在黑色的玄武岩\
距今已经三千七百多年\
你在橱窗前 凝视碑文的字眼\
我却在旁静静欣赏你那张我深爱的脸\
祭司 神殿 征战 弓箭 是谁的从前\
喜欢在人潮中你只属于我的那画面\
经过苏美女神身边 我以女神之名许愿")

ただし、次の 2 つの場合は例外です: モジュールのインポートのステートメントが長すぎる場合と、コメント内の URL です。

  • コードの可読性を高めるために、必要に応じて空行を使用します。一般的なトップレベル定義間(受信関数またはクラス定義)2 つの空白行メソッド定義行をスキップまた、特定の機能を区切るために空行を使用することもできます。

  • 一般に、演算子の両側、関数パラメータの間、およびコンマ「,」の両側を区切るにはスペースを使用することをお勧めします。

  • ループ内で文字列を蓄積するために + 演算子と += 演算子を使用することは避けてください。これは、文字列は不変であり、そうすることで不要な一時オブジェクトが作成されるためです。推奨されるアプローチは、各文字列をリストに結合し、ループの終了後に join() メソッドを使用してリストを連結することです。

  • 例外処理構造を適切に使用することでプログラムの耐障害性は向上しますが、例外処理構造に依存しすぎないようにする必要があり、適切な明示的な判断が依然として必要です。

Python プログラムを作成する場合は、PEP 8 コーディング規約に厳密に従うことをお勧めします。完全な Python コーディング標準については、PEP 8 を参照してください。

3.2 命名規則

命名規則は、コードを記述する際に非常に重要な役割を果たします。プログラムは命名規則に従わなくても実行できますが、命名規則を使用すると、コードの意味をより直観的に理解するのに役立ちます。Python で一般的に使用される命名規則を以下にいくつか紹介します。

  • モジュール名はできるだけ短くし、すべて小文字を使用してください。複数の文字はアンダースコアで区切ることができます。たとえば、game_main、game_register、bmiexponent はすべて推奨されるモジュール名です。

  • パッケージ名はできるだけ短くし、すべて小文字を使用してください。アンダースコアは推奨されません。たとえば、com.lnu、com.bigdata、com.learn.base はすべて推奨されるパッケージ名ですが、com_lnu は非推奨です。

  • クラス名は大文字で表記されます (つまり、Pascal スタイル)。たとえば、借用クラスを定義するには、BorrowBook という名前を付けます。

Pascal はフランスの数学者ブレーズ・パスカルにちなんで名付けられたプログラミング言語で、Python におけるパスカル命名法とは、言語の特性に応じてまとめられた命名方法です。

モジュール内のクラスはアンダースコア「_」+Pascal形式のクラス名で構成されています。たとえば、BorrowBook クラス内の内部クラスには _BorrowBook という名前を付けることができます。

関数、クラス属性、メソッドの命名規則はモジュールの命名規則と似ています。すべて小文字で、複数の文字はアンダースコア「_」で区切られます。

定数の名前は次を使用して付けられますすべて大文字、アンダースコアを使用できます。

ブレイズ・パスカルにちなんで名付けられたプログラミング言語で、Pythonにおけるパスカル命名法とは、言語の特性に応じてまとめられた命名法です。

  • モジュール内のクラスはアンダースコア「_」+Pascal形式のクラス名で構成されています。たとえば、BorrowBook クラス内の内部クラスには _BorrowBook という名前を付けることができます。

  • 関数、クラスの属性、およびメソッドの命名規則は、モジュールの命名規則と同様です。すべて小文字で、複数の文字はアンダースコア「_」で区切られます。

  • 定数の名前は次を使用して付けられます。すべて大文字、アンダースコアを使用できます。

  • 二重アンダースコア「__」で始まるインスタンス変数またはメソッドは、クラスプライベート

おすすめ

転載: blog.csdn.net/m0_68192925/article/details/128886814