本日はプログラミングに関する記事です.
訳あって,C系統のプログラミング言語しか学んでいない人にPythonを教えることになりました.
C系統を学んだことがありプログラミングにはなじみのあるけど,Pythonの文法は知らないという人が対象の記事となっております.
最低限の要点だけでもつかんでもらえたらと思います.
後は自分でネットに転がっている練習問題でも解いて,実力を上げてください.
変数
C系統の場合は変数を定義する場合に型を定義する必要がありますが,
Pythonでは,毎回intやfloatなどの型を定義する必要がありません.
今回は簡単な計算を通して変数について理解してもらいます.
C言語
#include <stdio.h>
int main(void){
int x = 1;
printf("%d", x);
float y = 2.5;
printf("%f", y);
float z = x + y;
printf("%f", z);
}
>> 1
>> 2.500000
>> 3.500000
Python
x = 1 print(x) y = 2.5 print(y) z = x + y print(z) >> 1 >> 2.5 >> 3.5
ここまでで大きく違う点は上述のとおり,Pythonでは毎回変数型を定義する必要はないということです.
その他に
- 毎行,最後にセミコロンをつけなくてよい
- 変数のみを表示する際は%dなどが必要ない(←print文はデバッグなどによく使います)
- main()がなくても実行可能
よく使う構文
ここでは,よく使うfor文,if文について紹介します.
for文
for文の例では0から9までの整数を表示すろコードを書きます.
C言語
#include <stdio.h>
int main(void){
int count = 0;
for(;count<10;count++)
{
printf("%d\n", count);
}
printf("finish");
}
>> 0
>> 1
>> ...
>> 9
>> finish
Python(range関数を使う場合1)
for count in range(10): # 0から()内の値まで変数countの値を1づつ増やしながら代入し,
print(count) # 処理を実行する
print("finish")
>> 0
>> 1
>> ...
>> 9
>> finish
Python(range関数を使う場合2)
for count in range(0, 10): # (a, b)だとすると,aからbまで変数countの値を1づつ増やしながら代入し,
print(count) # 処理を実行する
print("finish")
>> 0
>> 1
>> ...
>> 9
>> finish
Python(リスト(配列)を使う場合)
count_array = [0,1,2,3,4,5,6,7,8,9] #リスト(配列)の定義
for count in count_array: # 変数countにリスト(配列)の中の値を頭から順に代入し,
print(count) # 処理を実行する
print("finish")
>> 0
>> 1
>> ...
>> 9
>> finish
for文はCとPythonで考え方が大きく違います.
Cではカウンタ変数を増やしたり,減らしたりして,条件に満たすまである処理を繰り返しますが,Pythonではリスト(配列)の要素を1つづ代入しながら,処理をすることになります.
そのため以下のようなことも実現可能です.
en_word = ["Hello", "world", "!"] #リスト(配列)の定義
for word in en_word: # 変数iにリスト(配列)の中の値を頭から順に代入し,
print(word) # 処理を実行する
print("finish")
>> Hello
>> world
>> !
>> finish
文字列を格納したリスト(配列)の要素を1つづつ取り出し表示させました.
カウンタ変数などの操作なしで,for文を作ることができます.
Pythonのfor文で特に注意すべきことはインデントです.
処理内容は”for〇in△:”の次の行に1段インデントをつけてから書き出します.
Pythonはインデントにうるさい言語ということは忘れてはいけません.
インデントが1つでも間違っていればエラーが出ます.
後に出てくるif文の使い方も同様です.
他に注意点があるとすると,for 〇 in △のあとに”:”をつけ忘れないことですね.
if文
if文の例では0から9までの整数を3で割ったときの余りを表示するコードを書いてみます.
C言語
#include <stdio.h>
int main(void){
int count = 0;
for(;count<10;count++)
{
if(count%3==0)
{
printf("num:%d, remainder:zero\n", count);
}
else if(count%3==1)
{
printf("num:%d, remainder:one\n", count);
}
else
{
printf("num:%d, remainder:two\n", count);
}
}
printf("finish");
}
>> num:0, remainder:zero
>> num:1, remainder:one
>> num:2, remainder:two
>> ...
>> num:9, remainder:zero
>> finish
Python
for count in range(10):
if count%3 == 0:
print("num:%d, remainder:zero" % count)
elif count%3 == 1:
print("num:%d, remainder:one" % count)
else:
print("num:%d, remainder:two" % count)
print("finish")
>> num:0, remainder:zero
>> num:1, remainder:one
>> num:2, remainder:two
>> ...
>> num:9, remainder:zero
>> finish
if文でやっていることはCとあまり変わりません.
書き方の大きな違いはCでは”else if”と書くところが,Pythonでは”elif”と書いている点と,条件式を()でくくっていない点です.
また上述したfor文と同様に処理内容を書くときはインデントを忘れないこと,”:”を条件文の最後につけることも重要です.
最後に...
この記事では,変数,for文,if文について書きました.次の記事では,配列(リスト)について書こうと思います.ということで次回もよろしくお願いします.


コメント