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回へと続きます。