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ステートメントを使用する必要があります。 print ("Hello, Python!");。ただし、Pythonバージョン2.4.3では、これにより次の結果が生成されます-
Hello, Python!
スクリプトモードプログラミング
スクリプトパラメータを使用してインタプリタを呼び出すと、スクリプトの実行が開始され、スクリプトが終了するまで続行されます。スクリプトが終了すると、インタプリタはアクティブではなくなります。
簡単なPythonプログラムをスクリプトで書いてみましょう。Pythonファイルの拡張子は.py。test.pyファイルに次のソースコードを入力します-
print "Hello, Python!"
PATH変数にPythonインタープリターが設定されていることを前提としています。ここで、このプログラムを次のように実行してみてください-
$ python test.py
これにより、次の結果が生成されます-
Hello, Python!
Pythonスクリプトを実行する別の方法を試してみましょう。これが変更されたtest.pyファイルです-
#!/usr/bin/python
print "Hello, Python!"
/ usr / binディレクトリにPythonインタープリターがあることを前提としています。ここで、このプログラムを次のように実行してみてください-
$ chmod +x test.py # This is to make file executable
$./test.py
これにより、次の結果が生成されます-
Hello, Python!
Python識別子
Python識別子は、変数、関数、クラス、モジュール、またはその他のオブジェクトを識別するために使用される名前です。識別子は、文字AからZまたはaからzまたはアンダースコア(_)で始まり、その後に0個以上の文字、アンダースコア、および数字(0から9)が続きます。
Pythonでは、識別子内に@、$、%などの句読文字を使用できません。Pythonは大文字と小文字を区別するプログラミング言語です。したがって、Manpower そして manpower Pythonでは2つの異なる識別子です。
Python識別子の命名規則は次のとおりです-
クラス名は大文字で始まります。他のすべての識別子は小文字で始まります。
単一の先頭の下線で識別子を開始すると、識別子がプライベートであることを示します。
2つの先頭の下線で識別子を開始すると、厳密にプライベートな識別子を示します。
識別子の末尾に2つのアンダースコアも付いている場合、その識別子は言語で定義された特別な名前です。
予約語
次のリストは、Pythonキーワードを示しています。これらは予約語であり、定数や変数、またはその他の識別子名として使用することはできません。すべてのPythonキーワードには、小文字のみが含まれています。
そして | exec | ない |
主張する | 最終的に | または |
ブレーク | にとって | パス |
クラス | から | 印刷 |
継続する | グローバル | 上げる |
def | もし | 戻る |
デル | インポート | 試してみてください |
エリフ | に | 一方 |
そうしないと | です | と |
を除いて | ラムダ | 産出 |
線とインデント
Pythonには、クラスと関数の定義またはフロー制御のコードブロックを示す中括弧はありません。コードのブロックは行のインデントで示され、厳密に適用されます。
インデント内のスペースの数は可変ですが、ブロック内のすべてのステートメントは同じ量だけインデントする必要があります。例-
if True:
print "True"
else:
print "False"
ただし、次のブロックはエラーを生成します-
if True:
print "Answer"
print "True"
else:
print "Answer"
print "False"
したがって、Pythonでは、同じ数のスペースでインデントされたすべての連続行がブロックを形成します。次の例には、さまざまなステートメントブロックがあります-
Note−この時点ではロジックを理解しようとしないでください。中かっこがなくても、さまざまなブロックを理解していることを確認してください。
#!/usr/bin/python
import sys
try:
# open file stream
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:
# close the file
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のステートメントは通常、改行で終わります。ただし、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はそれを完全に無視します。
対話型インタプリタセッションでは、複数行のステートメントを終了するには、空の物理行を入力する必要があります。
ユーザーを待っています
プログラムの次の行には、「Enterキーを押して終了します」というプロンプトが表示され、ユーザーがアクションを実行するのを待ちます-
#!/usr/bin/python
raw_input("\n\nPress the enter key to exit.")
ここで、「\ n \ n」は、実際の行を表示する前に2つの新しい行を作成するために使用されます。ユーザーがキーを押すと、プログラムは終了します。これは、ユーザーがアプリケーションを使い終えるまでコンソールウィンドウを開いたままにしておくための優れたトリックです。
1行に複数のステートメント
セミコロン(;)は、どちらのステートメントも新しいコードブロックを開始しない場合、1行に複数のステートメントを許可します。これはセミコロンを使用したサンプルの切り取りです-
import sys; x = 'foo'; sys.stdout.write(x + '\n')
スイートとしての複数のステートメントグループ
単一のコードブロックを作成する個々のステートメントのグループは、 suitesPythonで。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の残りの概念を理解したら、少し後で学習する必要があります。