この記事には、Pythonの基本文法をまとめました。
この記事に書かれている内容が、すんなりと分かればOKです。
ここに書かれている内容で、AIでも数値計算でも大方組めます。
もしPythonの基本文法をまだ学習してなかったら、Progateさんで学んでおきましょう。無料の範囲で充分です。
※演習する場合は、コピペではなく、必ず自分で手打ちすることを強く薦めます。手打ちしないことには覚えないです。
よろしくー
▼事前に読んで欲しい記事▼
変数と表示
変数に代入する
プログラムにこのデータ覚えておいてねって指示するには、データの入れ物「変数」に入れればOKです。
数値の場合はそのまま。文字の場合は「”」で囲います。
num = 10
str_abc = "abc"
str_chi = "漢字"
「”」「’」かは統一しよー
僕は「”」派だよー
表示する(そのまま)
print()を使います。
数値はそのまま、文字列は「”」で囲んで入力すればOKです。
print(123)
print("123 abc")
「+」で複数をつなげれば表示できます。
ただし、数値同士なら演算され、文字列同士なら結合されます。
print(123+456)
print("abc"+"123")
下記が出力結果です。
579
abc123
下記はエラーになります。
print(123+abc) # abcが文字列なのに「"」で囲ってないのでNG
print(123+"abc") # 数値と文字列を一緒にはできない。
なれたら「f文字列」を
使っていきたいねー
表示する(変数)
変数を表示するのは以下の通りでした。ここでは「f文字列」を使った表示法を確認します。
num = 10
str_abc = "abc"
str_chi = "漢字"
print(num)
print(str_abc)
print(str_chi)
数値と文字列を混ぜて表示したい時は、f文字列がオススメです。
print(f"「先生」が{str_chi} で、「sensei」が{str_abc}で、{num}が数値。")
出力結果は下記です。
「先生」が漢字 で、「sensei」がabcで、10が数値。
見えないけど一番最後に改行が入っているので、
print("abc")
print("")
print("efg")
空行でも改行だけはされます。
abc
efg
改行は「\n」で記述もできます。こんな特殊文字がいくつかあります。
print("abc\n\nefg")
出力結果はさっきと同じです。
abc
efg
改行をさせない方法も
調べてみてねー
数値演算
print()文の中に式を書いても良いです。
しかし、変数に一度入れるのが良いですね。
変数格納と表示を分けた方が、後で変更されてもメンテナンスが楽ちんです。
a=1
b=10
print(a+b)
a=a+b
print(a)
11
11
四則演算(+, -, ×, ÷)と累乗(**)は知っておきましょう。
a=11
print(a)
print(a-2)
print(a*2)
print(a**2)
11
9
22
121
累乗(指数)以外は
楽勝だよねー
自分自身の値を増やしたりできます。ループで使ったりします。
a=11
print(a)
a = a + 1
print(a)
a += 1 # a=a+1と同じ
print(a)
11
12
13
合計の計算で
よく使うよー
割り算・余りについても学びましょう。
奇数・偶数の判定、各桁の値を取り出したりする時に使います。
a=13
print("------------")
print(a)
print("------------")
print(a/3)
print(a%3)
print("------------")
print(a/5)
print(a%5)
print(int(a/5)) # 切り捨てになる。10の位を取り出す
print(a-10*int(a/10)) # 1の位を取り出す
------------
13
------------
4.333333333333333
1
------------
2.6
3
1
3
剰余(余り)は
結構使うよー
文字列の取り扱い
文字列は「+」だけの演算が可能です。処理は結合です。
str01 = "abc"
str02 = "def"
print(str01+str02)
str01 = str01+str02
print(str01)
abcdef
abcdef
簡単だねー
len()をよく使います。文字列の文字数を数えてくれます。
print(len(str01))
a = len(str01)
print(f"str01の文字列の長さは{a}です。")
6
str01の文字列の長さは6です。
このプログラムは
理解できたかなー
関数(既存)
pythonには便利な処理をしてくれる「関数」があります。
すでに使っているprint()やlen()は、「関数」です。
print("abc")
print(len("abc"))
str_abc = "abc"
print(str_abc)
str_len = len(str_abc)
print(str_len)
abc
3
abc
3
あと、「python超初級 | マインクラフト星人が地球人よりも強い理由」で使った関数は、ライブラリの読み込みが必要でしたね。
- math.sqrt(n)…変数nに格納された数値の平方根を計算してくれる
- math.pi…円周率πの正確な値を呼び出してくれる
自分で作ることも
できるんだよー
配列(リスト)
他の言語でいうところの「配列」もあります。
とりあえず、リストだけ使えれば良いです。
リスト、タプル、辞書、pandasのデータフレーム、numpyの配列などあります。
num_arr01 = [1,2,3]
print(num_arr01)
print(num_arr01[0])
[1, 2, 3]
1
この辺りから
難しくなるよねー
二次元や三次元にもできます。
num_arr02 = [[1,2,3],[4,5,6]]
print(num_arr02)
print(num_arr02[0][0])
print(num_arr02[0][1])
print(num_arr02[1][0])
[[1, 2, 3], [4, 5, 6]]
1
2
4
[0]や[1]の部分を、変数に置き換えて、for文で回したりします。
九九表とかの課題で
やるからねー
繰り返し(for文)
pythonのfor文には「i=0; i<=10; i++」みたいなのはありません。
ループ文では、range()を使ったり、連想配列のように使います。
for i in range(0,3):
print(i)
0
1
2
配列の呼び出しをやってみましょう。
num_arr01 = [1,2,3]
print(num_arr01)
for i in range(0,3):
print(num_arr01[i])
for i in range(0,len(num_arr01)):
print(num_arr01[i])
for i in num_arr01:
print(i)
[1, 2, 3]
1
2
3
1
2
3
1
2
3
while()文もありますが。とりあえず保留!
while文は無限ループに
なっちゃうからねー
条件分岐(if文)
プログラムは一本道ではなく、if文の定めた条件によって色々な道を歩ませることができます。
a = -1
if a > 10:
print("a >= 10")
elif a == 10:
print("a == 10")
else:
print("ELSE")
ELSE
もう一回ぐらい書いてみましょう。
a = 11
b = 10
if a > b:
print(f"a >= {b}")
elif a == b:
print(f"a == {b}")
else:
print("ELSE")
a >= 10
条件漏れは
バグの原因だねー
複数条件(論理演算子)
条件を複数にすることもできます。「xxでxx」とか「xxかxx」のように。
a = 10
b = 20
if a==10 and b==20:
print("AND OK")
if a==10 or b==1:
print("OR OK")
if a==1 or b==20:
print("OR OK")
if not a==1:
print("NOT OK")
AND OK
OR OK
OR OK
NOT OK
条件漏れは
バグの原因だねー
関数(自作)
def宣言によって、自分オリジナルの「関数」を作ることができます。
引数なし、返値なしの場合。
def func_print():
print(6)
func_print()
6
決まった機能が
発動するねー
引数1つ、返値なしの場合。
def func_plus1(a): #引数1つ
print(a+1)
func_plus1(1)
2
引数によって
結果が変わるよー
引数1つ、返値1つの場合。
def func_plus2(a): #引数1つ
return (a+1) #返値1つ
ans = func_plus2(1)
print(ans)
2
計算結果を
関数の外側に出せるよー
引数2つ、返値2つの場合。
手軽に、返値を複数もてるのはめちゃ便利です。
def func_add(a,b): #引数2つ
return(a+1,b+1)#返値2つ
ans1,ans2=func_add(1,3)
print(f"{ans1} {ans2}")
2 4
C言語だとポインタ使うから
超めんどうなんだけどねー
その他
pass
pythonは空行を許さないです。
動作テストなどで空行になる場合はpassを使いましょう。
a = 10
if a == 10:
print("a=10")
else:
pass
※私は「a=a」とか無駄な処理をさせてました。
pythonは
行揃えにはキビシイー
enumerate
for文の時に何番目が数えたい時がありますね。
cnt=0
for i in range(3,5):
cnt = cnt + 1
print(f"{cnt} {i}")
1 30
2 31
便利な関数があります。
for cnt,i in enumerate(range(3,5)): # 0から数えるのがデフォ
print(f"{cnt} {i}")
for cnt,i in enumerate(range(3,5),1): # 1から数えてくれる
print(f"{cnt} {i}")
0 3
1 4
1 3
2 4
慣れると便利ー
zip
複数の配列から1つずつ抜き出して処理した時もありますね。
num_arr1=[10,20,30]
num_arr2=[100,200,300]
for i,j in zip(num_arr1, num_arr2):
print(f"{i} {j}")
10 100
20 200
30 300
さらにカウントをしたい時は、enumerate()と併用します。
num_arr1=[10,20,30]
num_arr2=[100,200,300]
for cnt,(i,j) in enumerate(zip(num_arr1, num_arr2),1):
print(f"{cnt} {i} {j}")
1 10 100
2 20 200
3 30 300
まとめ | 次は問題を解いていこう!
ここまで読んで頂きありがとうございます!
ありがとー
「聞いてねーよ!」ってこともあったと思います。
だから「完璧じゃない!基礎からやり直しだ!」とならないでOKです。f文字列とかenumerateなどは、私がオリジナルで付け加えましたから。
次の課題では、どのプログラム言語でも必ず最初にやる課題を揃えたので、やってみてくださいね。
じゃ またー