murnana.hatenablog.comの続き。 ページ的には 1.3.1 算術計算 ~ 1.4.2 クラスまで
算術計算
四則演算は他の言語とほとんど変わらない。
べき乗があることにはびっくり。
>>> 3 ** 2 9
ゼロで割ってみる
>>> 1/0 Traceback (most recent call last): File "<stdin>", line 1, in <module> ZeroDivisionError: division by zero
ZeroDivisionErrorってかっこいい…!
剰余演算は?
>>> 10%3 1
ありますね。
Python入門 - 演算子によると、切り捨て除算というのもあるらしい。
>>> 10 // 3 3 >>> 10 / 3 3.3333333333333335
小数点要らないというときに便利そう(速度は知らぬ)
データ型と変数
データ型はtype()で調べられる。詳しくはPython入門 - 数値・文字列・型を見たほうが良さそう。(他もググった) 注意すべきは以下の通り。
- 0oで8進数、0xで16進数、0bで2進数
- int型の最大値はシステムによって違う(らしい)
- バージョン3以降、long型がなくなった
- 文字列には8ビットのやつ(ASCII?)とUnicodeのやつがある(詳しくは良くわからない…使ってみないと…)
- 動的型言語なので、変数型の宣言は要らない(varとかも要らないだと…!?)
intの大きさが気になる人はこれで調べるべし…(varsion3以降に限る)
>>> print(sys.maxsize) 9223372036854775807
多いな…
配列(リスト)
>>> a = [1,2,3,4,5] >>> print(a) [1, 2, 3, 4, 5] >>> len(a) 5 >>> a[0] 1 >>> a[4] 5
どれ、範囲外をさしてみよか
>>> a[5] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list index out of range
代入は?
>>> a[4] = 99 >>> print(a) [1, 2, 3, 4, 99] >>> a[5] = 55 Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list assignment index out of range
エラー文、結構丁寧。 本によると、スライシングという記法があるらしく、これを使うと、どこからどこまでの配列が欲しいとかができるそうで
>>> a = [1,2,3,4,5]
とすると、1番目から2番目を抜きたいときは
>>> a[0:2] [1, 2]
2番目から最後まで抜きたいときは
>>> a[1:] [2, 3, 4, 5]
数字を何も入れないと、最初または最後までという意味になる。
とりあえずコロンだけにしてみる
>>> a[:] [1, 2, 3, 4, 5]
全部抜けた
じゃあ、参照外のところを指したらどうなるか。
>>> a[:5] [1, 2, 3, 4, 5]
マイナス表記にすると、最後から何番目という扱いになる
>>> a[-1:] [5] >>> a[:-1] [1, 2, 3, 4]
って、こんな書き方したことないよ…!
慣れるまで大変そう。でも短く書けるのはすごくよさそう。
ディクショナリ
パット見、JSONにしか見えない…
>>> me = { 'HP':100, 'MP':100 } >>> me['HP'] 100 >>> me[HP] Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'HP' is not defined
文字列抜けるかなと思ったら、ダメでした…
>>> me = { HP: 100, MP: 100 } Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'HP' is not defined
コンテナ(って、Pythonでも通じるのかしら?)はほかにも、タプルとかセットとかあるらしい…
奥が深いので今は無視
if文、for文、関数
Pythonでは中かっこ{}ではなく、インデントを使って表現する。
タブでもスペース4つでもいいが、これがないと関数宣言ができない
if 条件式 : なんとかかんとか else: なんとかかんとか for i in 配列: なんとかかんとか
関数は、
>>> def hello(): ... print("Hello World")
引数ももちろん作れる
>>> def hello( obj ): ... print("Hello World" + obj)
ファイルの保存は割合…
スクリプトってそんなものだし…
クラス
コンストラクタに当たるのが init()
なら、デストラクタがあるのではと調べたら、あった
class Sample: def __init__() { # しょきか } def __del__() { # なんかけす }
ただし、必ずデストラクタが呼ばれるとは限らない
なん…だと…
今日はここまで。 次は、エディタが欲しいのでVSCodeでの環境つくります