IDLEなどでは, 以下の左側にある In [1]: のような表示は出ない。枠内のコードを入力すればよい。
from math import sqrt # mathライブラリから平方根を計算する関数sqrtをインポート
a = 2.0
print('sqrt(a) =', sqrt(a))
print('sqrt(', a, ') =', sqrt(a))
print('sqrt(%3.1f) = %10.5f' % (a, sqrt(a))) # %10.5f は浮動小数点(floating point)実数 10コラムに小数点以下5桁
for i in range(3): # range(N)は, リスト [0, 1, 2, ..., N-1] を返す. CやJavaの for(i=0;i<N;i++)と同じ.
print(i)
for i in [1, 2, 5]: # リスト(配列)は, []内に数字や文字列を並べたもの.
print(i)
白金表面の仕事関数は4.09 eVである。波長250 nmの光を白金表面に照射したとき、光電効果によって放出される電子の運動エネルギー$\frac{1}{2}m_e v^2$と速さ$v$を計算せよ(単位はJとm/s)。
from math import sqrt # mathライブラリから平方根を計算する関数sqrtをインポート
# 定数の定義
c = 2.998e8 # 光速 m/s
h = 6.626e-34 # プランク定数 Js
e = 1.602e-19 # 電荷素量 C
m = 9.109e-31 # 電子質量 kg
wl = 250e-9 # 波長 m
W = 4.09 # 仕事関数 eV
E = h*c/wl - e*W # 電子の運動エネルギー
v = sqrt(2*E/m) # 電子速度
print('E =', E, 'J')
print('v =', v, 'm/s')
print('E = %11.5g J, v = %10.4g m/s' % (E, v)) # 書式付き出力
可視光の波長は420 nm(紫)から700 nm(赤)である。対応する振動数とエネルギーの範囲をs$^{-1}$とJ(ジュール)単位で求めよ。(1 nm = 10$^{-9}$ m, ナノメートル)
c = 2.998e8 # m/s
h = 6.626e-34 # Js
for wl in [420e-9, 700e-9]: # 繰り返しループ for 変数 in リスト:
nu = c/wl # 振動数 = 光速/波長
E = h*nu # エネルギー = プランク定数 * 振動数
print('wl = %3d nm, nu = %10.4g s^-1, E = %10.4g J' % (wl*1e9, nu, E))
c = 2.998e8 # 光速 m/s
h = 6.626e-34 # プランク定数 Js
e = 1.602e-19 # 電荷素量 C
m = 9.109e-31 # 電子質量 kg
L0 = 0.6 # k=0のときのL. 単位はnm
k = 3
L = L0 + k*0.25
print('k =', k, '-> L =', L, 'nm')
L = L*1e-9 # nm -> mへ変換
E = h**2/(8*m*L**2)*(6**2 - 5**2) # E6-E5
wl = h*c/E*1e9
print('E = %8.2e J = %5.2f eV => wl = %4.0f nm' % (E, E/e, wl))
以上を参考に、Homework 07のk=0,1,2,3の表を完成させるためのプログラムを作成せよ。