Ku-Chartとは何か①

Ku-Chart自体は有名なので、定義について議論するようなことはせず、ここではKu-Chartが表している価値が実質的に何であるのかということを考えてみる。

豪ドル、ユーロ、ポンド、円、米ドルの5通貨モデルで、ドルストレートのデータを材料にしてKu-Chartを作成した場合、以下のような計算式になる。

a = (log(AUDUSD) + log(EURUSD + log(GBUSD) - log(USDJPY)) / 5
Ku-AUD = log(AUDUSD) - a
Ku-EUR = log(EURUSD) - a
Ku-GBP = log(GBPUSD) - a
Ku-JPY = -log(USDJPY) - a
Ku-USD = -a

これをさらに分解して計算してみる。

なお、計算過程がくどいが、私は計算過程を省略するのがあまり好きではないので(一歩一歩進めないと自分でも理解できない)、目をつぶっていただきたい。

a = (log(AUD/USD) + log(EUR/USD) + log(GBP/USD) - log(USD/JPY)) / 5
Ku-AUD = log(AUD/USD) - a
Ku-EUR = log(EUR/USD) - a
Ku-GBP = log(GBP/USD) - a
Ku-JPY = -log(USD/JPY) - a
Ku-USD = -a

a = (log(AUD) - log(USD) + log(EUR) - log(USD) + log(GBP) - log(USD) - log(USD) + log(JPY)) / 5
Ku-AUD = log(AUD) - log(USD) - a
Ku-EUR = log(EUR) - log(USD) - a
Ku-GBP = log(GBP) - log(USD) - a
Ku-JPY = -log(USD) + log(JPY) - a
Ku-USD = -a

a = (log(AUD) + log(EUR) + log(GBP) + log(JPY) - log(USD) - log(USD) - log(USD) - log(USD)) / 5
Ku-AUD = log(AUD) - log(USD) - a
Ku-EUR = log(EUR) - log(USD) - a
Ku-GBP = log(GBP) - log(USD) - a
Ku-JPY = log(JPY) - log(USD) - a
Ku-USD = -a

a = (log(AUD) + log(EUR) + log(GBP) + log(JPY) + {log(USD) - log(USD)} - log(USD) - log(USD) - log(USD) - log(USD)) / 5
Ku-AUD = log(AUD) - log(USD) - a
Ku-EUR = log(EUR) - log(USD) - a
Ku-GBP = log(GBP) - log(USD) - a
Ku-JPY = log(JPY) - log(USD) - a
Ku-USD = -a

a = (log(AUD) + log(EUR) + log(GBP) + log(JPY) + log(USD) - log(USD) - log(USD) - log(USD) - log(USD) - log(USD)) / 5
Ku-AUD = log(AUD) - log(USD) - a
Ku-EUR = log(EUR) - log(USD) - a
Ku-GBP = log(GBP) - log(USD) - a
Ku-JPY = log(JPY) - log(USD) - a
Ku-USD = -a

a = (log(AUD) + log(EUR) + log(GBP) + log(JPY) + log(USD) - (5 * log(USD))) / 5
Ku-AUD = log(AUD) - log(USD) - a
Ku-EUR = log(EUR) - log(USD) - a
Ku-GBP = log(GBP) - log(USD) - a
Ku-JPY = log(JPY) - log(USD) - a
Ku-USD = -a

a = ((log(AUD) + log(EUR) + log(GBP) + log(JPY) + log(USD)) / 5) - (5 * log(USD)) / 5
Ku-AUD = log(AUD) - log(USD) - a
Ku-EUR = log(EUR) - log(USD) - a
Ku-GBP = log(GBP) - log(USD) - a
Ku-JPY = log(JPY) - log(USD) - a
Ku-USD = -a

a = ((log(AUD) + log(EUR) + log(GBP) + log(JPY) + log(USD)) / 5) - log(USD)
Ku-AUD = log(AUD) - log(USD) - a
Ku-EUR = log(EUR) - log(USD) - a
Ku-GBP = log(GBP) - log(USD) - a
Ku-JPY = log(JPY) - log(USD) - a
Ku-USD = -a

mean = (log(AUD) + log(EUR) + log(GBP) + log(JPY) + log(USD)) / 5
a = mean - log(USD)
Ku-AUD = log(AUD) - log(USD) - a
Ku-EUR = log(EUR) - log(USD) - a
Ku-GBP = log(GBP) - log(USD) - a
Ku-JPY = log(JPY) - log(USD) - a
Ku-USD = -a

mean = (log(AUD) + log(EUR) + log(GBP) + log(JPY) + log(USD)) / 5
Ku-AUD = log(AUD) - log(USD) - (mean - log(USD))
Ku-EUR = log(EUR) - log(USD) - (mean - log(USD))
Ku-GBP = log(GBP) - log(USD) - (mean - log(USD))
Ku-JPY = log(JPY) - log(USD) - (mean - log(USD))
Ku-USD = -(mean - log(USD))

mean = (log(AUD) + log(EUR) + log(GBP) + log(JPY) + log(USD)) / 5
Ku-AUD = log(AUD) - log(USD) - mean + log(USD)
Ku-EUR = log(EUR) - log(USD) - mean + log(USD)
Ku-GBP = log(GBP) - log(USD) - mean + log(USD)
Ku-JPY = log(JPY) - log(USD) - mean + log(USD)
Ku-USD = -mean + log(USD)

mean = (log(AUD) + log(EUR) + log(GBP) + log(JPY) + log(USD)) / 5
Ku-AUD = log(AUD) - mean
Ku-EUR = log(EUR) - mean
Ku-GBP = log(GBP) - mean
Ku-JPY = log(JPY) - mean
Ku-USD = log(USD) - mean

お疲れ様でした。

私たちは例えば「Ku-AUD」なら「AUD」、あるいは「log(AUD)」そのものではないにしても、その近似値のつもりで使っていると思う。だが、実際には少し違う。

「Ku-AUD = log(AUD)」となるためには「mean = 0」とならなければならないが、もちろん、そのようなことは保証されない。

ところで、「log(AUDUSD) = log(AUD) - log(USD)」であることを考えると

mean = log(MEAN)
Ku-AUD = log(AUD) - mean
Ku-AUD = log(AUD) - log(MEAN)
Ku-AUD = log(AUDMEAN)

となる。

つまり、構成する通貨の平均をクウォート通貨と見なす一種の通貨ペアと考えたほうが実態に近いかと思う。あるいは通貨平均乖離率と考えるほうが分かりやすいかもしれない。

どうでもいいことだが、常に「mean = 0」となるためには「log(1) = 0」であるから常に「MEAN = 1」である必要がある。

それはさて、例えばKu-Powerを組み合わせて

Ku-AUD - Ku-USD = log(AUDUSD)

とすることができるが、こういう性質もあたかも「Ku-AUD = log(AUD)」、あるいは「Ku-USD = log(USD)」であるかのような錯覚を起こしやすい。

だが、これは

Ku-AUD - Ku-USD = log(AUDUSD)
log(AUD) - log(MEAN) - (log(USD) - log(MEAN)) = log(AUDUSD)
log(AUD) - log(MEAN) - log(USD) + log(MEAN) = log(AUDUSD)
log(AUD) - log(USD) - log(MEAN) + log(MEAN) = log(AUDUSD)
log(AUD) - log(USD) = log(AUDUSD)

となって、余計な「log(MEAN)」を相殺してくれるからである。

Ku-Chartの有用性についてどうこう言うつもりはない。有用だと言う人はそれをうまく使っており、有用でないと言う人はそれをうまく使えていないだけのことだ。だが、Ku-Chartが表している価値は実質的にはこういうものであるということは頭に入れておいて損はないだろう。

(2016/12/28更新)

二郎風「豚」の作り方

私は二郎に通い続けておよそ10年になるジロリアンである。たまたま、以下のページを見て、自分でも二郎で食べるような「豚」を作ってみたいと思い、試してみた。

http://waretaru.blogspot.jp/2016/10/blog-post_17.html

ただ、これでは情報が少ないので、以下のページも参考にした。

http://gadget-jk.hatenablog.com/entry/ra-mejiro_buta

http://blogs.yahoo.co.jp/kamikamiwayo/10336731.html

凝りだしたら切りがないので、私としてはなるべく手間をかけずに簡単に、それでいてなるべく店の味に近いものを作りたい。これから書くことはその試行錯誤である。

随時更新したいと考えている。

1回目(2016/12/22)

材料

  • 豚肩ロース(ネット入り) 350g
  • ねぎ1本(緑の部分のみ)
  • 醤油 300ml
  • みりん 60ml
  • 料理酒 90ml

手順

①豚とねぎを圧力炊飯器に入れる。

②水をひたひたになるくらいに入れる。

③白米をふつうに炊くのと同じ設定で炊く。

私の家の炊飯器ではスタートのスイッチを押すと炊き上がるまでの時間が「40分」と表示される。だが、残り「15分」となってからが進まない。実際は白米ではないからだろう。結局、1時間強でようやく炊き上がる。

④醤油、みりん、料理酒を鍋に入れ、沸騰させる。

これが漬け汁である。

⑤漬け汁を適当な器に移す。

⑥豚を漬け汁に漬ける。

豚の上半分が出てしまうので、30分漬けた後、裏返して更に30分漬けた。

感想

今回はかなり手抜きな作り方をしたので、果たして味はどうかと戦々恐々としたが、意外とうまく出来て驚いた。ただ、よく行く店で食べている味と比べると、やや辛く感じ、また、味がもう少し中まで染みてほしかったなと思った。

今度作るときは醤油を減らしてみりんと料理酒を増やしてみる。配分は高田馬場店に寄せたほうがいいかな?また、2時間くらい漬けてみようと思う。あるいは豚にフォークで穴を開けておくのもいいかもしれない。

あと、豚350gだと1人ならともかく、家族と食べると物足りない。倍は欲しいな。

2回目(2017/01/02)

材料

  • トンテキ用豚ロース 620g
  • ねぎ1本(緑の部分のみ)
  • 醤油 200ml
  • みりん 100ml
  • 料理酒 120ml

手順

1回目と基本的に同じ。ただ、④は1回目のときは強火で沸騰させたが、弱火が本当っぽいので、今回は弱火で沸騰させた。また⑥は今回は8時間漬けた。

感想

今回はいろいろと手を加えてもよかったのだが、一度にやると、味の違いの要因が分かりにくいので、漬け汁の材料の配分と漬ける時間だけ変更した。

今回は醤油の配分を少なめにしたが、それでもちょっと辛かった。まだ醤油が多いというよりは8時間が漬けすぎのようである。だが、今回もおいしかった。次は2時間で試してみよう。

なお、肉は今回はトンテキ用豚ロースにしたが、半額だったのでそれにしただけである。肉は初めから1センチ程度の厚さにカットされていたので、味を染みこませるためにフォークで穴を開けるようなことはしなかった。

また、漬け汁も十分だったので(前回より少ないが、肉が薄かったのと、肉が多くて水かさが上がったことによる)、肉を裏返して漬けるようなことはしなかった。

更にあれこれ手を加えたほうがうまくなるかもしれないが、今回でも十分うまかったので、うまさと手軽さのバランスを取るのであれば、今回はけっこういい感じだった。

(2017/01/02更新)

物理学ノート (2017/04/12)

アインシュタイン曰く

本やノートに書いてあることをどうして憶えておかなければならないのかね?

というわけで、よく使われるが、すぐ忘れてしまう公式などを覚えないで済むよう、メモとして残す。

随時追加する。

記号

ここで使う記号は慣用的なもので厳密ではない。1つの記号を別の意味で使うこともある。

アルファベット

\[ A: 振幅、面積 \] \[ c: 比熱 \] \[ e: 熱効率 \] \[ f: 振動数 \] \[ F: 力 \] \[ g: 重力加速度 \] \[ h: 高さ \] \[ I: 慣性モーメント \] \[ k: ばね定数 \] \[ K: 運動エネルギー \] \[ L: 角運動量、幅、リットル \] \[ L_{fus}: 融解潜熱 \] \[ m: 質量、ミリ \] \[ n: 整数 \] \[ P: 圧力 \] \[ Q: 熱量 \] \[ Q_{C}: 低温源が受け取った熱量 \] \[ Q_{H}: 高温源から与えた熱量 \] \[ r: 半径 \] \[ T: 周期 \] \[ T_{C}: 低温源 \] \[ T_{H}: 高温源 \] \[ v: 速度 \] \[ V: 体積 \] \[ W: 重量、仕事 \]

ギリシャ文字 \[ \lambda: 波長 \] \[ \omega: 角速度 \] \[ \rho: 密度 \] \[ \tau: トルク \]

単位

\[ Hz: ヘルツ \] \[ J: ジュール \] \[ \frac {N} {m}: ニュートン毎メートル \] \[ Pa: パスカル \]

Torque and Angular momentum

角加速度

\[ \alpha = \frac {\Sigma{\tau}} {I} \]

角加速度の計算

\[ \omega = \omega_{0} + \alpha t \] \[ \Delta \theta = (\frac {\omega + \omega_{0}} {2})t \] \[ \Delta \theta = (\frac {\omega_{0} + \alpha t + \omega_{0}} {2})t \] \[ \Delta \theta = (\frac {2\omega_{0} + \alpha t} {2})t \] \[ \Delta \theta = \omega_{0}t + \frac {1} {2} \alpha t^{2} \] \[ \omega^{2} = (\omega_{0} + \alpha t)^{2} \] \[ \omega^{2} = \omega_{0}^{2} + 2\omega_{0}\alpha t + \alpha^{2}t^{2} \] \[ \omega^{2} = \omega_{0}^{2} + 2\alpha(\omega_{0}t + \frac {1} {2} \alpha t^{2}) \] \[ \omega^{2} = \omega_{0}^{2} + 2\alpha \Delta \theta \] \[ 2\alpha \Delta \theta = \omega^{2} - \omega_{0}^{2} \] \[ \alpha = \frac {\omega^{2} - \omega_{0}^{2}} {2\Delta \theta} \]

トルク

\[ \tau = rF \] \[ \tau = rF\sin{\theta} \]

慣性モーメント

\[ I = mr^{2} \] \[ I = \frac {1} {2} mr^{2} \] \[ I = \frac {2} {5} mr^{2} \] \[ I = \frac {1} {3} mr^{2} \]

エネルギー保存の法則

\[ mgh = \frac {1} {2} mv^{2} + \frac {1} {2} I\omega^{2} \]

速度

\[ v = r\omega \]

角運動量

\[ L = mvr \] \[ L = I\omega \]

運動エネルギー

\[ K = \frac {1} {2} mv^{2} \] \[ K = \frac {1} {2} I\omega^{2} \]

Oscillations and mechanical waves

波の位置

\[ x(t) = A\sin{\frac {2\pi} {T}t} \]

水平ばね振り子の周期

\[ T = 2\pi \sqrt{\frac {m} {k}} \] \[ T = 2\pi \sqrt{\frac {L} {g}} \]

ばね定数

\[ k = \frac {(4\pi^{2})m} {T^{2}} \]

速度

\[ v = \lambda f \]

振動数

\[ f = \frac {v} {\lambda} \]

波長(定常波)

\[ \lambda = \frac {2L} {n} (節と節、腹と腹) \]

\[ \lambda = \frac {4L} {n} (節と腹) \]

Fluids

圧力

\[ P = \frac {F} {A} \] \[ P = \rho gh \]

密度

\[ \rho = \frac {m} {V} \]

重量

\[ W = mg \]

大気圧

\[ P_{atm} = 1.01 \times 10^{5} Pa \]

浮力

\[ F_{B} = \rho_{fluid} Vg \]

気体の仕事

\[ 1Pa * 1L = 1mJ \]

ベルヌーイの定理

\[ P_1 + \frac {1} {2} \rho v_1^{2} + \rho gh_1 = P_2 + \frac {1} {2} \rho v_2^{2} + \rho gh_2 \]

熱効率

\[ e = \frac {W} {Q_{H}} \]

\[ e = 1 - \frac {T_{C}} {T_{H}} \]

Thermodynamics

熱方程式

\[ Q = mc\delta T \]

\[ Q = mL_{fus} \]

記号

アルファベット

\[ G: 万有引力定数 \] \[ I: 運動量 \] \[ M: 力のモーメント、質量 \] \[ p: 運動量 \] \[ P: 仕事率 \] \[ r: 距離 \] \[ s: 距離 \] \[ t: 時間 \] \[ U: 位置エネルギー \] \[ v_0: 初速度 \] \[ W: 仕事 \] \[ x: ばねの伸び縮みの長さ \] \[ y: 変位 \]

ギリシャ文字 \[ \alpha: 加速度 \] \[ \theta: 角 \]

単位

\[ kW: キロワット \] \[ \frac {m} {s}: メートル毎秒 \] \[ \frac {m} {s^{2}}: メートル毎秒毎秒 \] \[ N: ニュートン \] \[ rad: ラジアン \] \[ \frac {rad} {s}: ラジアン毎秒 \] \[ \frac {rad} {s^{2}}: ラジアン毎秒毎秒 \] \[ s: 秒 \] \[ W: ワット \]

力学

加速度

\[ a = \frac {M} {I} \]

等加速度直線運動

\[ v = v_0 + at \]

自由落下運動

\[ y = \frac {1} {2} gt^{2} \] \[ v^2 = 2gy \]

運動方程式

\[ m\vec{a} = \vec{F} \]

仕事

\[ W = Fs \]

仕事率

\[ P = \frac {W} {t} \]

弾性力による位置エネルギー

\[ U = \frac {1} {2} kx^{2} \]

運動量

\[ \vec{p} = m\vec{v} \]

力積

\[ \vec{I} = \vec{F}\Delta t \]

運動量保存の法則

\[ m_1\vec{v_1} + m_2\vec{v_2} = m_1\vec{v_1'} + m_2\vec{v_2'} \]

角速度

\[ \omega = \frac {\theta} {t} \]

等速円運動の加速度

\[ a = \frac {v^{2}} {r} \]

万有引力

\[ F = G \frac {Mm} {r^{2}} \]

FXシステムの使い方(プログラム) (2017/04/11)

FXシステムのプログラムについて簡単に説明する。

FXシステムのインポート

FXシステムをインポートする。

import forex_system as fs

convert_minute_to_period()

分を計算期間に変換する。例として60分が5分足では足何本分になるかを表示する。

period = fs.convert_minute_to_period(60, 5)
print(period)


12

get_signal()

シグナルを求める。例としてZスコアが-0.5以下で買いエントリー、0以上で買いエグジット、+0.5以上で売りエントリー、0以下で売りエグジットとするシグナルを最初の5個のみ表示する。

symbol = 'USDJPY'
timeframe = 1440
sl = 0
tp = 0
zscore1 = fs.i_zscore(symbol, timeframe, 3, 'MODE_SMA', 1)
buy_entry = zscore1 <= -0.5
buy_exit = zscore1 >= 0.0
sell_entry = zscore1 >= 0.5
sell_exit = zscore1 <= 0.0
signal = fs.get_signal(buy_entry, buy_exit, sell_entry, sell_exit, symbol,
                       timeframe, sl, tp)
print(signal.head())


2007-01-01    0
2007-01-02    0
2007-01-03   -1
2007-01-04   -1
2007-01-05    0
Name: close, dtype: int64

「sl」は損切り(stop loss)、「tp」は利食い(take profit)の設定で、pips単位で設定する。「0」に設定した場合は、損切り、または利食いを行わない。

i_atr()

ATRを求める。例としてATR(USDJPY、日足、3本、1本前の足)を最初の10個のみ表示する。

atr1 = fs.i_atr('USDJPY', 1440, 3, 1)
print(atr1.head())


2007-01-01     0.000010
2007-01-02     0.000010
2007-01-03    39.899997
2007-01-04    40.249997
2007-01-05     0.736667
2007-01-08     0.893333
2007-01-09     0.783333
2007-01-10     0.896667
2007-01-11     0.755000
2007-01-12     0.908333
Freq: B, dtype: float64

2007年1月1日と1月2日は「0.00001」となっているが、存在する最初のデータより前はこの数値で埋めているので、ただの仕様である。他の関数でも同様である。

また、1月3日と1月4日は数値が大きすぎるが、最初に近いデータではこういうことがある。データは2007年からあるが、検証では2008年から使うようにすれば問題はないだろう。他の関数でもやはり同様である。

i_close()

終値を求める。例として終値(USDJPY、日足、1本前の足)を最初の5個のみ表示する。

close1 = fs.i_close('USDJPY', 1440, 1)
print(close1.head())


2007-01-01      0.00001
2007-01-02    119.05000
2007-01-03    118.83000
2007-01-04    119.37000
2007-01-05    119.05000
Name: close, dtype: float64

i_hl_band()

HLバンドを計算する。例としてHLバンド(USDJPY、日足、3本、1本前の足)を最初の5個のみ表示する。

hl_band1 = fs.i_hl_band('USDJPY', 1440, 3, 1)
print(hl_band1.head())


                 high        low      middle
2007-01-01    0.00001    0.00001    0.000010
2007-01-02    0.00001    0.00001    0.000010
2007-01-03  119.08000    0.00001   59.540005
2007-01-04  119.68000  118.45000  119.065000
2007-01-05  119.68000  118.45000  119.065000

i_highest()

高値の位置を求める。例として高値の位置(USDJPY、日足、3本、1本前の足)を最初の5個のみ表示する。

highest1 = fs.i_highest('USDJPY', 1440, 3, 1)
print(highest1.head())


2007-01-01    0
2007-01-02    0
2007-01-03    1
2007-01-04    0
2007-01-05    1
Name: high, dtype: int64

i_lowest()

安値の位置を求める。例として安値の位置(USDJPY、日足、3本、1本前の足)を最初の5個のみ表示する。

lowest1 = fs.i_lowest('USDJPY', 1440, 3, 1)
print(lowest1.head())


2007-01-01    0
2007-01-02    0
2007-01-03    2
2007-01-04    1
2007-01-05    2
Name: low, dtype: int64

i_roc()

変化率を求める。例として変化率(USDJPY、日足、1本、1本前の足)を最初の5個のみ表示する。

roc1 = fs.i_roc('USDJPY', 1440, 1, 1)
print(roc1.head())


2007-01-01    1.000000e-05
2007-01-02    1.190500e+09
2007-01-03   -1.847963e-01
2007-01-04    4.544307e-01
2007-01-05   -2.680741e-01
Name: close, dtype: float64

i_trend_duration()

トレンド継続期間を求める。トレンドについては様々な理解があるが、ここではレートが移動平均線より上なら上昇トレンド、下なら下落トレンドと見なすこととする。その継続期間(単位は足)を求め、符号は上昇トレンドならプラス、下落トレンドならマイナスとする。

例としてトレンド継続期間(USDJPY、日足、3本、単純移動平均、1本前の足)を最初の5個のみ表示する。

trend_duration1 = fs.i_trend_duration('USDJPY', 1440, 3, 'MODE_SMA', 1)
print(trend_duration1.head())


2007-01-01    0
2007-01-02    0
2007-01-03    1
2007-01-04    0
2007-01-05    0
dtype: int64

i_zscore()

Zスコアを求める。ここでのZスコアとは(終値-移動平均) / 移動標準偏差という式で求めたものである。

例としてZスコア(USDJPY、日足、3本、単純移動平均、1本前の足)を最初の5個のみ表示する。

zscore1 = fs.i_zscore('USDJPY', 1440, 3, 'MODE_SMA', 1)
print(zscore1.head())


2007-01-01    0.000010
2007-01-02    0.000010
2007-01-03    0.575748
2007-01-04    1.055712
2007-01-05   -0.122757
Name: close, dtype: float64

time_hour()

インデックスの時を返す。例としてインデックスの時(USDJPY、30分足)を最初の5個のみ表示する。

close1 = fs.i_close('USDJPY', 30, 1)
hour = fs.time_hour(close1.index)
print(hour.head())


2007-01-01 00:00:00    0
2007-01-01 00:30:00    0
2007-01-01 01:00:00    1
2007-01-01 01:30:00    1
2007-01-01 02:00:00    2
dtype: int32

time_month()

インデックスの月を返す。例としてインデックスの月(USDJPY、日足)を最初の5個のみ表示する。

close1 = fs.i_close('USDJPY', 1440, 1)
month = fs.time_month(close1.index)
print(month.head())


2007-01-01    1
2007-01-02    1
2007-01-03    1
2007-01-04    1
2007-01-05    1
dtype: int32

Pythonの使い方 (2017/05/07)

標準ライブラリの範囲でPythonの使い方を簡単に説明する。

ここで取り上げる内容は私が実際に使っているものに限っている。そのため、かなり偏りがあると思う。ただ、こういうものはどうしても「帯に短し襷に長し」となりがちである。私と共通の関心を持つ人にはちょうどよいのではないかと思う。

この記事は内容を随時追加する。

文字の出力

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

print("Hello, World!")


Hello, World!

コメントアウト(1行)

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

# これはコメントです。
print("Hello, World!")


Hello, World!

コメントアウト(複数行)

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

'''これはコメントです。
これはコメントです。
これはコメントです。
'''
print("Hello, World!")


Hello, World!

変数

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

s = "Hello, World!"
print(s)


Hello, World!

定数

Pythonでは定数というのはないようである。ただ、定数として使いたい場合は大文字にして変数と区別する慣習らしい。

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

S = "Hello, World!"
print(S)


Hello, World!

整数

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

print(1)


1

浮動小数点数

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

print(1.0)


1.0

指数表記

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

print('通常の表記')
print(100.0)
print(0.01)
print('指数表記')
print(1.0e+2)
print(1.0e-2)


通常の表記
100.0
0.01
指数表記
100.0
0.01

リスト

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

l = [768, 7968]
print(l)
print(l[0])
print(l[1])


[768, 7968]
768
7968

タプル

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

t = (768, 7968)
print(t)
print(t[0])
print(t[1])


(768, 7968)
768
7968

slice()関数

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

l = [768, 7968, 3465, 5810, 239, 6777, 2618, 8716, 4100, 7634]
s1 = slice(0, 9, 2)
s2 = slice(0, 9, 3)
print(l[s1])
print(l[s2])


[768, 3465, 239, 2618, 4100]
[768, 5810, 2618]

型変換

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

print(float(1))
print(int(1.0))


1.0
1

算術演算子

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

print(1 + 2)
print(1 - 2)
print(1 * 2)
print(1 / 2)
print(1 % 2)


3
-1
2
0.5
1

関係演算子

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

print(1 == 2)
print(1 != 2)
print(1 > 2)
print(1 < 2)
print(1 >= 2)
print(1 <= 2)


False
True
False
True
False
True

論理演算子

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

print(True & True)
print(True & False)
print(False & False)
print(True | True)
print(True | False)
print(False | False)


True
False
False
True
True
False

if文

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

a = 3
if a == 1:
    print('aは1です。')
elif a == 2:
    print('aは2です。')
else:
    print('aは1でも2でもありません。')


aは1でも2でもありません。

or

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

a = 1
if a == 1 or a == 2:
    print('aは1、または2です。')
else:
    print('aは1でも2でもありません。')


aは1、または2です。

and

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

a = 1.5
if a >= 1 and a < 2:
    print('aは1以上、かつ2未満です。')
else:
    print('aは1未満、または2以上です。')


aは1以上、かつ2未満です。

for文

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

for i in range(3):
    print(i+1, '回目のループです。')


1 回目のループです。
2 回目のループです。
3 回目のループです。

while文

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

i = 0
while i < 3:
    print(i+1, '回目のループです。')
    i = i + 1


1 回目のループです。
2 回目のループです。
3 回目のループです。

関数の作成

○以下のコードをIPythonコンソールに入力して「Enter」キーを2回押す。

def func(a, b):
    return a + b

ans = func(1, 2)
print(ans)


3

プログラムファイルの実行

①以下のコードを「test.py」ファイルとして「~/py」フォルダーに保存する。

print('Hello, world!')

②以下のコマンドをIPythonコンソールに入力して「Enter」キーを2回押す。

%run ~/py/test.py


Hello, world!