Python 基礎マスター:構文とファンダメンタルズ完全ガイド
Python 言語は Perl、C、Java と多くの類似点があります。しかし、言語間には明確な違いも存在します。
最初の Python プログラム
プログラミングのさまざまなモードでプログラムを実行してみましょう。
インタラクティブ モード プログラミング
スクリプトファイルをパラメータとして渡さずにインタプリタを呼び出すと、次のプロンプトが表示されます。
$ python Python 2.4.3 (#1, Nov 11 2010, 13:34:43) [GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
Python プロンプトで次のテキストを入力し、Enter キーを押します。
>>> print "Hello, Python!"
新しいバージョンの Python を実行している場合は、print ("Hello, Python!"); のように括弧を付けて print 文を使用する必要があります。しかし Python 2.4.3 では、次の結果が得られます。
Hello, Python!
スクリプト モード プログラミング
スクリプト パラメータを指定してインタプリタを呼び出すと、スクリプトの実行が開始され、スクリプトが終了するまで続きます。スクリプトが終了すると、インタプリタはもはやアクティブではありません。
簡単な Python プログラムをスクリプトとして書いてみましょう。Python ファイルの拡張子は .py です。次のソースコードを test.py ファイルに入力します。
ライブ デモprint "Hello, Python!"
Python インタプリタが PATH 変数に設定されていると仮定します。次のようにしてこのプログラムを実行してみてください。
$ python test.py
次の結果が得られます。
Hello, Python!
Python スクリプトを実行する別の方法を試してみましょう。変更した test.py ファイルはこちら:
ライブ デモ#!/usr/bin/python print "Hello, Python!"
Python インタプリタが /usr/bin ディレクトリにあると仮定します。次のようにしてこのプログラムを実行します。
$ chmod +x test.py # ファイルを実行可能にする $ ./test.py
次の結果が得られます。
Hello, Python!
Python の識別子
Python 識別子とは、変数、関数、クラス、モジュール、その他のオブジェクトを識別するために使用される名前です。識別子は、A-Z または a-z の文字、またはアンダースコア(_)で始まり、その後に 0 個以上の文字、アンダースコア、数字(0-9)が続きます。
Python では、識別子内で @、$、% などの句読点文字を使用できません。Python は大文字小文字を区別するプログラミング言語です。したがって、Manpower と manpower は Python では 2 つの異なる識別子です。
Python 識別子の命名規則:
クラス名は大文字で始めます。その他の識別子は小文字で始めます。
先頭に単一のアンダースコアを付けると、その識別子がプライベートであることを示します。
先頭に 2 つのアンダースコアを付けると、強くプライベートな識別子であることを示します。
識別子が末尾にも 2 つのアンダースコアで終わる場合、その識別子は言語定義の特殊名です。
予約語
以下は Python のキーワード一覧です。これらは予約語であり、定数、変数、その他の識別子名として使用できません。すべての Python キーワードは小文字のみで構成されています。
| and | exec | not |
| assert | finally | or |
| break | for | pass |
| class | from | |
| continue | global | raise |
| def | if | return |
| del | import | try |
| elif | in | while |
| else | is | with |
| except | lambda | yield |
行とインデント
Python では、クラスや関数の定義、フロー制御のためのコードブロックを示すために波括弧を使用しません。コードブロックは行のインデントによって示され、これは厳格に強制されます。
インデントのスペース数は可変ですが、ブロック内のすべての文は同じ量だけインデントされている必要があります。例:
if True:
print "True"
else:
print "False"
しかし、次のブロックはエラーになります。
if True:
print "Answer"
print "True"
else:
print "Answer"
print "False"
したがって、Python では同じ数のスペースでインデントされた連続した行がブロックを形成します。次の例にはさまざまなステートメント ブロックがあります。
注 — この時点ではロジックを理解しようとしないでください。波括弧がなくても、さまざまなブロックが理解できることを確認してください。
#!/usr/bin/python
import sys
try:
# ファイルストリームを開く
file = open(file_name, "w")
except IOError:
print "There was an error writing to", file_name
sys.exit()
print "Enter '", file_finish,
print "' When finished"
while file_text != file_finish:
file_text = raw_input("Enter text: ")
if file_text == file_finish:
# ファイルを閉じる
file.close()
break
file.write(file_text)
file.write("\n")
file.close()
file_name = raw_input("Enter filename: ")
if len(file_name) == 0:
print "Next time please enter something"
sys.exit()
try:
file = open(file_name, "r")
except IOError:
print "There was an error reading file"
sys.exit()
file_text = file.read()
file.close()
print file_text
複数行ステートメント
Python のステートメントは通常、改行で終わります。しかし、行継続文字(\)を使用して、その行が継続することを示すことができます。例:
total = item_one + \
item_two + \
item_three
[]、{}、() の括弧内に含まれるステートメントは、行継続文字を使用する必要がありません。例:
days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
Python のクォーテーション
Python では、シングルクォート(')、ダブルクォート(")、トリプルクォート(''' または """)を使用して文字列リテラルを表現できます。同じ種類のクォートで始まり、同じ種類のクォートで終わる必要があります。
トリプルクォートは、文字列を複数行にわたって記述するために使用されます。例:
word = 'word' sentence = "This is a sentence." paragraph = """This is a paragraph. It is made up of multiple lines and sentences."""
Python のコメント
文字列リテラル内にないハッシュ記号(#)で始まる行はコメントです。# 以降、物理行の末尾までのすべての文字はコメントの一部となり、Python インタプリタはそれらを無視します。
ライブ デモ#!/usr/bin/python # First comment print "Hello, Python!" # second comment
次の結果が得られます。
Hello, Python!
ステートメントや式の後ろに同じ行でコメントを書くこともできます。
name = "Madisetti" # This is again comment
複数行をコメントアウトするには:
# This is a comment. # This is a comment, too. # This is a comment, too. # I said that already.
以下のトリプルクォート文字列も Python インタプリタによって無視され、複数行コメントとして使用できます:
''' This is a multiline comment. '''
空白行の使用
空白文字のみを含む行(コメントを含む場合もあり)は空白行と呼ばれ、Python は完全に無視します。
インタラクティブ インタプリタ セッションでは、複数行ステートメントを終了するために空の物理行を入力する必要があります。
ユーザー入力の待機
次のプログラム行は、プロンプトと「Press the enter key to exit」というメッセージを表示し、ユーザーのアクションを待ちます。
#!/usr/bin/python
raw_input("\n\nPress the enter key to exit.")
ここでは、\n\n を使用して実際の行を表示する前に 2 行の改行を作成しています。ユーザーがキーを押すとプログラムが終了します。ユーザーがアプリケーションの操作を終えるまでコンソールウィンドウを開いたままにするための便利なトリックです。
単一行での複数ステートメント
セミコロン(;)を使用すると、どちらのステートメントも新しいコードブロックを開始しない限り、単一行に複数のステートメントを記述できます。セミコロンを使用したサンプル:
import sys; x = 'foo'; sys.stdout.write(x + '\n')
スイートとしての複数ステートメントグループ
単一のコードブロックを形成する個々のステートメントのグループは、Python では スイート(suite) と呼ばれます。if、while、def、class などの複合・複雑なステートメントは、ヘッダー行とスイートを必要とします。
ヘッダー行はステートメントを開始(キーワードで)し、コロン(:)で終わり、スイートを構成する 1 行以上の行が続きます。例:
if expression:
suite
elif expression:
suite
else:
suite
コマンドライン引数
多くのプログラムは、どのように実行すべきかについての基本的な情報を提供するために実行できます。Python では -h オプションでこれを実現できます。
$ python -h usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ... Options and arguments (and corresponding environment variables): -c cmd : program passed in as string (terminates option list) -d : debug output from parser (also PYTHONDEBUG=x) -E : ignore environment variables (such as PYTHONPATH) -h : print this help message and exit [ etc. ]
スクリプトをプログラムして、さまざまなオプションを受け入れられるようにすることもできます。コマンドライン引数は上級トピックであり、他の Python の概念を一通り学んだ後に学ぶことをお勧めします。
Python
- C言語の基本構文マスター:トークン、構造、セミコロン
- C++の核心構文とオブジェクト指向の基礎を理解する
- C#基礎:基本構文とオブジェクト指向概念をマスター
- MATLAB基礎マスター:必須構文とコマンド完全ガイド
- Python データ型マスター: 実践ガイド
- Python 演算子完全マスター: 包括的ガイド
- Python pass文完全マスター: 実践ガイド
- Python 関数引数完全マスター: 位置引数・キーワード引数・デフォルト引数
- Pythonのtime.sleep()をマスター:ベストプラクティス、マルチスレッド、実例
- Python 基礎マスター:構文とファンダメンタルズ完全ガイド
- Java基礎:基本構文をマスターする