Python 入門
print("abc") # コメント文
abc
c = 'ABC'
i = 100
print(c,i)
ABC 100
i, i**2, i**0.5, i/2
(100, 10000, 10.0, 50.0)
(i+0.6)//2 # 切り捨て割算
50.0
i%2 # 余り
0
リスト(List)
a = ['A', 'B', '100', 100] # リスト
a
['A', 'B', '100', 100]
a[0:2] # 切り取り
['A', 'B']
b = [a, 'b']
b
[['A', 'B', '100', 100], 'b']
b = ['a', 'b']
b
['a', 'b']
a+b # 結合
['A', 'B', '100', 100, 'a', 'b']
c = ['Y', 'Z', '-100', -100] # リスト
c.extend(b)# cに追加結合
c
['Y', 'Z', '-100', -100, 'a', 'b']
if 文
x = 1
x==101
False
if x==100:
print('if')
elif x==10:
print('elif')
else:
print('else')
else
for 文
for i in range(4):
print(i)
0
1
2
3
x = [5,6,7]
for i in x:
print(i)
print(i*2)
5
10
6
12
7
14
for i in x:
print(i)
continue # 繰り返し処理は続ける
print(i*2)
5
6
7
for i in x:
print(i)
break # 繰り返し処理を終える
print(i*2)
5
関数
関数の定義
def mean(a,b):
x = (a+b)/2
return x
関数による計算
mean(1,2)
1.5
別の関数の定義
def cal(a,b):
x = a+b
y = a-b
return x,y
関数による計算
cal(10,5)
(15, 5)
方形導波管の$m,n$次モードの遮断波数を計算する関数
pi = 3.141592653589793
def kc_mn_rw(m,n, a,b):
kc = ((m*pi/a)**2+(n*pi/b)**2)**0.5
return kc
X-bandの標準導波管の寸法に対する計算例
a, b = 22.90, 10.20 # X-band(8.2-12.5GHz)WRJ-10:JIS規格(EIAJ規格とは若干異なる
kc11 = kc_mn_rw(1,0,a,b)
kc11
0.13718745212182504
辞書
dict = {"TE10":kc11}
dict
{'TE10': 0.13718745212182504}
kc01 = kc_mn_rw(0,1, a,b)
dict["TE01"] = kc01
dict
{'TE10': 0.13718745212182504, 'TE01': 0.3079992797637052}
dict["TE11"] = kc_mn_rw(1,1, a,b)
dict
{'TE10': 0.13718745212182504,
'TE01': 0.3079992797637052,
'TE11': 0.3371705108022337}
dict["TM11"] = dict["TE11"]
dict
{'TE10': 0.13718745212182504,
'TE01': 0.3079992797637052,
'TE11': 0.3371705108022337,
'TM11': 0.3371705108022337}
dict["TM11"]
0.3371705108022337
dict.keys()
dict_keys(['TE10', 'TE01', 'TE11', 'TM11'])
dict.values()
dict_values([0.13718745212182504, 0.3079992797637052, 0.3371705108022337, 0.3371705108022337])
dict.items()
dict_items([('TE10', 0.13718745212182504), ('TE01', 0.3079992797637052), ('TE11', 0.3371705108022337), ('TM11', 0.3371705108022337)])
for key,value in dict.items():
print(key,value)
TE10 0.13718745212182504
TE01 0.3079992797637052
TE11 0.3371705108022337
TM11 0.3371705108022337
フォーマット
d = 20000
print(f'd={d}')
print(f'd={d:,}')
print(f'd={d:.1f}')
d=20000
d=20,000
d=20000.0
d2 = 'ABC'
print(f'{d2:5s}')
print(f'{d2:>5s}')
ABC
ABC
モジュールの利用方法
- パッケージのインストールは,"pip install パッケージ名"
- パッケージのアンインストールは,"pip uninstall パッケージ名"
モジュールのインポートは,例えば,Numpyの場合,
import numpy as np
配列の計算をすると,
x = np.array([1,2,3])
y = np.array([-4,-5,-6])
x,y,x+y
(array([1, 2, 3]), array([-4, -5, -6]), array([-3, -3, -3]))
ファイルの入出力
ファイルのテキストの読み込みは,
with open('a.txt') as f:
tt = f.read()
print(tt)
12
abc
3456
defgh
with open('a.txt') as f:
tt = f.readlines()
print(tt)
['12\n', 'abc\n', '3456\n', 'defgh']
with open('a.txt') as f:
for i in range(6):
tt = f.readline()
if tt=='':
print('--- end ---')
break
else:
print(tt.rstrip('\r\n'))
12
abc
3456
defgh
--- end ---
ファイルへのテキストの書き出しは,
with open('b.txt', 'w') as f:
f.write('aaa\n---\n++++\n')
既存のファイルへの書き足しは,
with open('b.txt', 'a') as f:
f.write('bbb\n===\n')
また,
cc = ['A', 'BB', 'CC', 'C']
with open('c.txt', 'w') as f:
f.writelines(cc)
cc = ['A', 'BB', 'CC', 'DDD']
ccc = '\n'.join(cc)
print(ccc)
with open('c.txt', 'w') as f:
f.writelines(ccc)
A
BB
CC
DDD
f = open('a.txt')
print(next(f))
print(next(f))
print(next(f))
12
abc
3456
f = open('a.txt')
for s in f:
print(s)
12
abc
3456
defgh
リスト内包表記
まず,forループでは,
x = []
for i in range(5):
x.append(i)
x
[0, 1, 2, 3, 4]
[i+2 for i in range(5)] # リスト内包表記
[2, 3, 4, 5, 6]
[i**3 for i in range(11)] # リスト内包表記
[0, 1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
f_min, f_max, nf = 8.0, 12.0, 6
[f_min+(f_max-f_min)*(i/(nf-1))**3 for i in range(nf)] # リスト内包表記
[8.0, 8.032, 8.256, 8.864, 10.048, 12.0]
[i for i in range(5) if i%2==0] # 条件付
[0, 2, 4]
リストの参照
a = [1,2,3,4]
b = a
b.append(10)
a,b
([1, 2, 3, 4, 10], [1, 2, 3, 4, 10])
関数
def func(e,f):
e.append(f)
return e
による計算の場合も,
c = func(a,100)
a,c
([1, 2, 3, 4, 10, 100], [1, 2, 3, 4, 10, 100])