-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_PythonFirstStep
- 戻る(Python)
- Pythonファースト・ステップ
- Pythonセカンド・ステップ
- Pythonサード・ステップ
-
何気にWindows環境へのインストールになっている。
-
WSL2/Linux上でNotebook系を使うのもオススメ
Pythonの該当節に移動しました。
- Python 2(Pythonの該当節を参照)のパッケージ・マネージャ(パッケージ管理システム)がpip
- Python 3(Pythonの該当節を参照)のパッケージ・マネージャがpip3
最新のPythonをインストールすると自動的にpipもインストールされる。
pip3 install XXXX
>python -m pip install --upgrade pip
Visual Studio Codeのプラグイン。
- Visual Studio Codeをインストールする。
- Visual Studio Codeを起動して、ファイルを拡張子*.pyで保存する。
- 以下のように推奨の拡張機能が表示されるので、これをインストールする。

-
Pythonのバージョン情報の確認
python --version
-
Pythonインタプリタを起動
python
-
算術計算
>>>1+1 2 -
データ型
>>>type(10) <class 'int'> -
変数
>>>x=10 >>>print(x) 10 -
リスト
>>>a=[1,2,3,4,5] >>>print(a) [1,2,3,4,5] >>>a[0] 1 >>>a[4] 5 >>>a[4]=99 >>>a[4] 99 >>>print(a) [1,2,3,4,99] -
ディクショナリ
>>>dic={'hoge1':1} >>>dic['hoge2']=2 >>>print(dic) {'hoge1': 1, 'hoge2': 2} -
boolと論理演算
>>>hungry = True >>>sleepy = False >>>type(hungry) <class 'bool'> >>>not hungry False >>>hungry and sleepy False >>>hungry or sleepy True -
if文
>>>hungry = True >>>if hungry: ... print("im hungry") # 半角スペースのインデントが必要 ... im hungry >>>hungry = False >>>if hungry: ... print("im hungry") # 半角スペースのインデントが必要 ...else: ... print("im not hungry") # 半角スペースのインデントが必要 ... print("im sleepy") ... im not hungry im sleepy -
for文
>>>for i in [1,2,3]: ... print(i) # 半角スペースのインデントが必要 ... 1 2 3 -
関数
>>>def hello(): ... print("hello!") ... >>>hello() hello! >>>def hello(object): ... print("hello " + object + "!") ... >>>hello("hoge") hello hoge!
対話モードを終了するには、 exit() を実行する。
テキストファイルに
print("im hungry")
と書いて、拡張子を*.pyとして保存する(例 hungry.py)。
cdでカレントディレクトリに移動して、
>python hungry.py
im hungry
Pythonのインデントはコードブロックを意味するので、
むやみなインデント付与は出来ないようになっている。
Pythonインタプリタの実行を参照。
- 必ず半角英字で始める
- 予約語との衝突はNG
-
四則演算
-
累乗
2 ** 3 -
割商
10 // 3 3 -
割余
10 % 3 1 -
指数表現
-
1 * 10の7乗
1.0e7 -
1 * 10の-7乗
1.0e-7
-
-
クォーテーション
-
シングル(')
文字列中で(")を使う場合。 -
ダブル(")
文字列中で(')を使う場合。
-
-
演算
-
連結
>>> x = "hoge" + "hoge" >>> print(x) hogehoge -
繰り返し
>>> x = "hoge" * 2 >>> print(x) hogehoge
-
-
castメソッド
int("2022") => 数値の2022 -
formatメソッド
-
文字列中に変数値を挿入
>>> month = 9 >>> day = 1 >>> temp = 30 >>> '{}月{}日の気温は{}度です。'.format(month, day, temp) '9月1日の気温は30度です。' -
小数の桁数指定
>>>num = 123.456 >>>print('{:.1f}'.format(num)) 123.5
-
-
コメント
-
1行
# コメント -
複数行
""" コメント """
-
配列の事。
-
定義
hoge = ['aaa', 'bbb', 'ccc', 'ddd'] -
インデックス
-
通常
>>>hoge[0] 'aaa' -
後ろから
>>>hoge[-3] 'bbb' -
スライシング
ややこしいが、対応する番号の要素の一つ前の区切りでスライスする。>>>hoge[1:3] ['bbb', 'ccc']
-
-
メソッド
-
追加
>>>hoge.append('xxx') >>>hoge ['aaa', 'bbb', 'ccc', 'ddd', 'xxx'] -
削除
>>>hoge.remove('aaa') # インデックス指定ではないっぽい >>>hoge ['bbb', 'ccc', 'ddd', 'xxx']
-
-
文とか関数とか
-
del文
>>>del hoge[0] # インデックス0の要素を削除 >>>hoge ['ccc', 'ddd', 'xxx'] -
len関数
>>>len(hoge) 3
-
- 定義後、変更が出来ないリスト
- 定義は角括弧ではなく丸括弧を使う。
- 要素を順番や重複を考えない(C#のHashSetに近い)
- 定義は角括弧・丸括弧ではなく中括弧({})を使う。
- キー&バリュー(C#のDictionaryに近い)
- 定義は角括弧・丸括弧ではなく中括弧({})を使う。
- 真 : True
- 偽 : False
==
!=
>
<
>=
<=
and
or
not
コレクション型のデータに特定の要素が含まれているかどうか
if(SelectとかSwitchは無い)
if 条件式A:
...
elif 条件式B:
...
else:
...
条件式Aが真(true)の場合に実行する処理
条件式Aが偽(false)で条件式Bが真(true)の場合に実行
すべての条件式が偽(false)の場合に実行
foreach的なforのみ実装
-
オブジェクト(コレクション等)
for 変数 in オブジェクト: 実行する処理 -
内部でbreakやcontinueが使える。
-
例1
for num in range(5, 10): print(num) 5 6 7 8 9 -
例2
for num in range(0, 10, 3): print(num) 0 3 6 9
-
enumerate(indexとvalue)
hoge = ['aaa', 'bbb', 'ccc', 'ddd'] for index, value in enumerate(hoge): print(index) print(value) 0 aaa 1 bbb 2 ccc 3 ddd -
zip(複数のコレクション)
hoge1 = ['aaa', 'bbb', 'ccc', 'ddd'] hoge2 = ['xxx', 'yyy', 'zzz'] for value1, value2 in zip(hoge1, hoge2): print(value1) print(value2) aaa xxx bbb yyy ccc zzz
-
定義
def 関数名(仮引数, ...): ... return 値 -
実行
関数名(実引数, ...) -
定義・実行 例
-
定義例
def hello_world(): print("Hello") print("world") -
実行例
hello_world()
-
-
位置引数
通常の引数 -
キーワード引数
-
変数名を用いて値を渡す引数(位置に依らない)
-
オプションとしてデフォルト値が設定可能
-
定義
def 関数名(仮引数1=デフォルト値, 仮引数2=デフォルト値): ... return -
実行
関数名(仮引数名1=実引数1, 仮引数名2=実引数2)
-
-
可変長引数
-
*関数中でタプルとして機能-
定義
def 関数名(*Tuple): -
実行
関数名(1, 2, 3, 4, 5, 6, 7, 8)
-
-
**関数中で辞書として機能(仮引数名がキー)-
定義
def 関数名(**Dictionary): -
実行
関数名(key1=1, key2=2, key3=3)
-
-
可変長引数の後ろはキーワード引数のみ利用可能。
-
class クラス名:
def __init__(self, 引数, ...): #コンストラクタ
...
def メソッド名1(self, 引数, ...): #メソッド1
...
def メソッド名2(self, 引数, ...): #メソッド2
...
class Man:
def __init__(self, name):
self.name=name
print("inited!")
def hello(self):
print("hello " + self.name + "!")
def goodbye(self):
print("good-bye " + self.name + "!")
m = Man("hoge")
m.hello()
m.goodbye()
インポートの前にインストールが必要なものもある。
-
インストールの確認
>python -m pip list -
インストールの実行
>python -m pip install モジュール名
-
モジュール≒ファイル名
-
通常の利用
-
モジュールのインポート
import モジュール名 -
モジュール内のクラスの利用
obj = モジュール名.クラス名(...)
-
-
別名の使用
-
モジュールのインポート
import モジュール名 as 別名 -
モジュール内のクラスの利用
obj = 別名.クラス名(...)
-
-
モジュール名が省略可能になる。
-
クラスのインポート
from モジュール名 import クラス名 -
モジュール内のクラスの利用
obj = クラス名(...)
pickleのシリアライズとデシリアライズで保存と復元
-
保存されるオブジェクト
import pickle obj = '保存されるオブジェクト'
-
シリアライズ相当
with open('sample.pickle','wb') as f: pickle.dump(obj, f)
-
デシリアライズ相当
with open('sample.pickle','rb') as f: loaded_obj = pickle.load(f)
-
復元されたオブジェクト
print(loaded_obj)
(元 Wiki では見出しのみで本文が無い。)
移行メモ
- bool型の「偽 : Frue」は「False」の誤記のため修正した。
- 比較演算子の「< =」(半角スペース混入)を「<=」に修正した。
- クラスのインポートの構文「from import モジュール名 import クラス名」は Python の構文として誤りのため「from モジュール名 import クラス名」に修正した。
- 関数の実行例で
def hello(object): print("hello " + object + "!")に対する 出力が「hoge hello!」となっていたため、「hello hoge!」に修正した。- リストの
lenの例で、直前にdel hoge[0]で 1 要素削除した後の 要素数が 4 のままだったため 3 に修正した。- 「集合」の説明「C#のListに近い」は、順番も重複も持たない集合の説明と合わないため 「C#のHashSetに近い」に修正した。
- 文字列の繰り返しの例で変数名が
Xとxで不一致だったためxに統一した。- 「WLS2/Linux上で」→「WSL2/Linux上で」。
- 「命名規則」配下は本文の無い見出しだったため箇条書きにまとめた。
- 同名の見出し(「インストール」「クラス」「インタプリタ」)が複数あり、 GitHub Wiki ではアンカが衝突するため、括弧で文脈を補って一意にした。
- マイクロソフト系技術情報 Wiki(techinfoofmicrosofttech.osscons.jp)への URL リンクは、移行済みの Visual Studio Code に張り替えた。
- 添付は 1 点で、
DNET_PythonFirstStep_1.pngとして取得した。
Tags: 移行, Python, 入門, インタプリタ, pip, リスト, 辞書, 制御構文, 関数, クラス, pickle
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。