1.1.0 基礎
1.1.1 セマンティクス
Pythonの特徴は、読みやすさ、シンプルさ、明確さにあります。
1.1.2 インデント
Pythonでは、タブ、もしくはスペースでコードを構造化します。
for file in drip_list:
if os._exists(os.path.dirname(file)):
shutil.copyfile(send_file, file)
else:
os.makedirs(os.path.dirname(file), exist_ok=True)
shutil.copyfile(send_file, file)
print(file)
コロン[ : ]はインデントされたブロックの開始合図。上のコードでは、1行目の最後にコロン[ : ]があります。次のif文はタブキーで字下げしてコードを記述します。この字下げすることをインデントといいます。ブロックの終了までそれぞれの行に同じだけのインデントが必要となります。for文の有効範囲が、この場合はprint(file)までですので、最低でも1タブキー(4スペース)が字下げされています。さらに、if文とelse文が適用されているコードは2タブキー(8スペース)が字下げされています。
インデント時はタブキーで!
複数行を1行にまとめる場合は区切りにセミコロン!しかし、可読性を落とすことからおすすめはしない。
#a,b,cの変数を1行にまとめる場合
a = 10; b = 20; c = 30
D = a + b + c
print(D)
#それぞれの変数をまとめない場合
a = 10
b = 20
c = 30
D = a + b + c
print(D)
1.1.3 すべてがオブジェクト
Pythonでは、数、文字列、関数、クラス、モジュールなどあらゆるものがオブジェクトです。関数ですら、関数の引数として使用できるので柔軟性が高い。
1.1.4 コメント
Pythonでは、コメント行を「#」から始めます。また、行の途中からでも使用できます。コメント行なので処理には影響しません。コメントは、この変数は何だったとか、この命令文は何のためだとか後から見直しするときに便利です。プログラムが複雑になればなるほど、コメントは必要です。
#項目の列範囲を作成!
KOMOKU_COLS = [x for x in range(0, 39)]
TIME_RANGE = [x for x in range(0, 67)] #8時から19時までの行数を確保!
また、複数行にわたってコメントを記述する場合は、シングルコーテーションかダブルコーテーションを3つ続けてさらに囲みます。
'''
複数行コメント
の使用時は
このように
シングルコーテーション
を3つ入力し囲みます。
'''
a = 10; b = 20; c = 30
D = a + b + c
print(D)
"""
ダブルコーテーションを
3つ重ねてコメント範囲を囲むことで
複数行コメントできます
"""
コメントはあくまでも人が読むためのもので、プログラムの処理には影響がありません。
1.1.4 関数
関数とはプログラムの中の小さなプログラムのようなもの。Pythonではよく使う標準的な機能を関数として用意してあり、それが組み込み関数です。これに対してプログラマーがコード上で定義・実装した関数をユーザー定義関数といいます。関数を呼び出すときは、カッコを使用し、0個以上の引数を入力する。関数に戻り値がある場合は、変数に代入する。
1.1.4.1 組み込み関数
組み込み関数でよくお世話になり、まず初めに覚えるのがprint()関数ではないでしょうか。print()関数は、文字列や数値などを実行画面に表示・出力する関数です。
#print()関数について
>>>print(10) #数値はそのまま入力
10
>>>print('文字列はこのように記述')
文字列はこのように記述
#変数や文字列を混合した場合、さらに文字列どうしは+で接続できます
>>>a = 10
>>>b = 20
>>>D = a + b
>>>print('変数a,bの和Dは', D, 'です。' + 'print文はこのように使用します')
変数a,bの和Dは 30 です。print文はこのように使用します
1.1.5 変数
変数に値を代入すると、等式の右辺にあるオブジェクトへの参照が作られます。
変数aに整数を代入します、次に新しい変数bに変数aを代入します。
Pythonでは変数a,bはどちらも同じオブジェクトを参照します。
a = 10,000
b = a
![](https://xkenxkenx.com/wp-content/uploads/2022/08/e02c2b034375773141c20949064f1082.png)
1.1.6 Pythonの参照
Pythonではオブジェクトへの参照には型が付きません。型情報はオブジェクトそのものに格納されています。型がないわけではなく、すべてのオブジェクトが何らかの型を持つ強い型付けの言語である。
1.1.7 属性とメソッド
Pythonでは通常、オブジェクトには属性とメソッドが定義されています。属性はそのオブジェクトの中に格納された別のオブジェクトです。メソッドはオブジェクト内部にアクセスするための手段を提供する関数です。ピリオドを使用して属性やメソッドにアクセスすることができる。
a = 'Test'
a.<Tabキー押下>
a.capitalize | a.center | a.count | a.decode | a.encode |
a.endswith | a.expandtabs | a.find | a.format | a.index |
a.isalnum | a.isalpha | a.isdigit | a.islower | a.isspace |
a.istitle | a.isupper | a.join | a.ljust | a.lower |
a.lstrip | a.partition | a.replace | a.rfind | a.rindex |
a.rjust | a.rpartition | a.rsplit | a.rstrip | a.split |
a.splitlines | a.startswith | a.strip | a.swapcase | a.title |
a.translate | a.upper | a.zfill |
1.1.8 インポート
Pythonのモジュールとは、単に拡張子が.pyを持つPythonコードを指します。
#test_module.py
e = 2.71828
def f(x):
return x * 2
def g(a, b):
return a + b
このモジュールに定義された変数や関数を同一ディレクトリにある別のコードから呼び出すには
import test_module
result = test_module.f(5)
napier = test_module.e
もしくは次のように記述できる。
from test_module import f, g, e
result = g(5, e)
キーワードasを使って、変数名などを変更してインポートすることができる。
import test_module as test
from test_module import e as nap, g as gf
z1 = test.f(nap)
z2 = gf(6, nap)
1.1.9 二項演算子と比較演算子
Pythonに用意された二項算術演算子や比較演算子の多くは、次のように直感的に利用することがで
きます。
print(10 - 3)
print(30 + 44.4)
print(100 <= 2)
演算 | 定義 |
---|---|
a + b | aとbを足す |
a – b | aからbを引く |
a * b | aにbを掛ける |
a / b | aをbで割る |
a // b | aをbで割った商の整数部分(小数点以下切り捨て) |
a ** b | aのb乗 |
a & b | aもbもTrueであればTrueを返す |
a | b | aかbのいずれかがTrueであればTrueを返す |
a ^ b | aかbのいずれかがTrueであればTrueを返す。ただし両方ともTrueの場合はFalseを返す |
a == b | aとbが等しい場合Trueを返す |
a != b | aとbが等しくない場合Trueを返す |
a <= b, a < b | aがb以下の場合、もしくはaがbより小さい場合Trueを返す |
a > b, a >= b | aがbより大きい場合、もしくはaがb以上の場合Trueを返す |
a is b | aとbとが同一オブジェクトの参照である場合Trueを返す |
a is not b | aとbとが同一オブジェクトの参照でない場合Trueを返す |
1.1.10 変更可能なオブジェクト、変更不可なオブジェクト
Pythonではリスト、ディクショナリ、Numpyの配列、またユーザ定義のオブジェクトのほとんどが変更可能です。変更可能なことをmutable(ミュータブル)といいます。そのオブジェクト内に格納された値やオブジェクトが変更可能であることを意味します。
一方、文字列やタプルは変更不可能です。変更不可能なことをimmutable(イミュータブル)といいます。
![](https://xkenxkenx.com/wp-content/uploads/2023/11/4ceda3d35464aca5370521e2d6b9dd16-300x158.png)