AI(人工知能)実践 第2回 他言語経験者向けPython入門2
				AI(人工知能)実践 第2回です。
前回(他言語経験者向けPython入門)の続きになります。
 
5.言語の細かい差について
・変数宣言(型付け)について
Pythonでは動的型付けとなっているため、変数宣言の際に型を明記する必要がありません。
JavaやC等の言語では、基本的には静的型付けとなっている為、比較すると下記のような形となります。
 
静的型付け:
int num = 3; String text = "文字列";
動的型付け:
num = 3 text = "文字列"
・文の終了文字(;)について
PythonではJavaのように「;」で文章の終わりを示す必要がありません。
しかし、「;」を付けてもエラーではなく、「n = 1;m =2;」のように1行に複数のステップを入れることも可能です。
ただし、ソースコードが非常に読みづらくなるため、基本的には上記のような書き方はせず、改行を入れることをお勧めします。
 
・if文について
JavaやCでは、if文では、「if」「else if」「else」を使用しますが、
Pythonでは、上記の「else if」に当たる部分が「elif」となります。
また、処理の範囲としてJavaでは「{}」を使っていますが、Pythonでは「:」を付けた後に、同一インデントにすることで処理範囲を決めます。
なお、「{}」で処理を囲わないので、何もしない場合は「pass」と記載し、何もしないことを明記します。
 
例:※elseは不要ですが、「pass」を書く為だけに記載しています。
num = 3
if(num % 2 == 1):
    print(num)
    print('奇数')
elif(num % 2 == 0):
    print(num)
    print('偶数')
else:
    pass
・for文について
Pythonのfor文は、Javaにおける拡張for文に該当するものしか存在しません。
よって、for(初期化式; 条件式; 変化式){}といった形式では記載出来ません。
具体的な使い方としては、下記のような形で記載します。
 
for 変数名 in 配列
for 変数名 in range(繰り返し数)
for 変数名(index),変数(要素) in enumrate(配列)
 
・for文におけるelse句について
Pythonでは、for文自体にelse句を付けることが出来ます。
for文にelse句を付けた場合、for文が終了した場合にelseで記載された処理が実行されます。
但し、for文がbreakされた場合には実行されません。
 
例:※breakされずにelseに入るパターン
for i in range(0,3):
    print(i)
    if(i == 10):
        print('break')
        break
else:
    print('else')
実行結果:
0
1
2
else
 
例:※breakされてelseに入らないパターン
for i in range(0,3):
    print(i)
    if(i == 2):
        print('break')
        break
else:
    print('else')
実行結果:
0
1
2
break
 
・ブロック単位でインデントが違うとエラーになる
同一ブロック内でインデントが違うとエラーとなります。
ブロックが違う場合にはエラーとなりません。
例1:a、b、printが同一ブロックでbのインデントが違っているため、NG
a = 1 b = 2 print(a)
例2:※if-elif-elseのブロックでelifのインデントが違っているため、NG
a = 1
if(a % 2 == 1):
    print('奇数')
    elif(a % 2 == 0):
        print('偶数')
例3:※elif内のインデントが共通であればエラーにはならない
a = 1
if(a % 2 == 1):
    print('奇数')
elif(a % 2 == 0):
                                       print('偶数')
第3回へと続きます。

