| 情報学部 | 菅沼ホーム | 目次 | 索引 |
>>> "文字列" '文字列' >>> '文字列' '文字列' >>> b"abc" b'abc' >>> b"文字列" # エラー( ASCII 文字だけ可能)
>>> print("a\nbc")
a
bc
>>> print("a\\nbc")
a\nbc
>>> print(r"a\nbc")
a\nbc >>> 2 * "abc" + "efg" + "hij" 'abcabcefghij' >>> 2 * "abc" "efg" "hij" 'abcefghijabcefghij'
>>> """ ... abc ... def ... ghi ... """ '\nabc\ndef\nghi\n'
>>> """\ ... abc\ ... def ... ghi\ ... """ 'abcdef\nghi'
| Seq. | 説明 |
|---|---|
| \newline | 行末に \ を記述するとその行の改行が無視される |
| \\ | バックスラッシュ(円記号) |
| \' | 一重引用符(シングル クォーテーション) |
| \" | 二重引用符(ダブル クォーテーション) |
| \a | ベル |
| \b | バック スペース |
| \f | 改ページ |
| \n | 行送り |
| \r | 復帰 |
| \t | 水平タブ |
| \v | 垂直タブ |
| \ooo | 8進表記による ASCII 文字 |
| \xhh | 16進表記による ASCII 文字 |
| \N{name} | Unicode データベース中で name という名前の文字 |
|---|---|
| \uxxxx | 16-bit の十六進値 xxxx を持つ文字 |
| \Uxxxxxxxx 32-bit の十六進値 xxxxxxxx を持つ文字 |
>>> 15 15 >>> 0xf 15 >>> 0o17 15 >>> 0b1111 15
>>> True True >>> False False >>> 10 + True 11 >>> 10 + False 10
>>> 12345.01 12345.01 >>> 1234501e-2 12345.01
>>> 3.14j # 3.14J でも良い 3.14j >>> 2.5 + 3.14j (2.5+3.14j) >>> complex(2.5, 3.14) (2.5+3.14j) >>> complex(2.5, 3.14).real # 実数部の参照(参照だけ可能) 2.5 >>> complex(2.5, 3.14).imag # 虚数部の参照(参照だけ可能) 3.14
int x = 10;
int x = 10; x = 20; x = 1.3; x = "abc";
>>> a = 10 >>> c = complex(1, 2) >>> a = "abc"
| False | class | finally | is | return |
| None | continue | for | lambda | try |
| True | def | from | nonlocal | while |
| and | del | global | not | with |
| as | elif | if | or | yield |
| assert | else | import | pass | |
| break | except | in | raise |
>>> x, y = 10, 3 * 4 >>> print(x, y) 10 12
# 整数の場合,文字列の場合も同じ 01 >>> a = 10 02 >>> b = 10 03 >>> a == b, a is b 04 (True, True) 05 >>> b = a 06 >>> a == b, a is b 07 (True, True) 08 >>> b = 20 09 >>> a == b, a is b 10 (False, False) 11 >>> a, b 12 (10, 20) # 浮動小数点数の場合,虚数(複素数)の場合も同じ 13 >>> c = 1.2 14 >>> d = 1.2 15 >>> c == d, c is d 16 (True, False) 17 >>> d = c 18 >>> c == d, c is d 19 (True, True) 20 >>> d = 1.3 21 >>> c == d, c is d 22 (False, False) 23 >>> c, d 24 (1.2, 1.3)


>>> a, b, c = 10, 20, 30 >>> a, b, c (10, 20, 30) >>> del a, b >>> a, b, c Traceback (most recent call last): File "%lt;stdin>", line 1, in <module> NameError: name 'a' is not defined
>>> import math # math モジュールの取り込み >>> math.sqrt(2) 1.4142135623730951 >>> import math as ma # math モジュールを ma というモジュール名として取り込む >>> ma.sqrt(2) 1.4142135623730951 >>> from math import sqrt, fabs # math モジュールからメソッド sqrt,fabs を取り込む >>> sqrt(2) 1.4142135623730951 >>> fabs(-10) 10.0 >>> from math import * # math モジュールからすべてのメソッドを取り込む >>> sqrt(2) 1.4142135623730951 >>> pow(2, 10) 1024.0
>>> a = 10
>>> def func(x) : pass
...
>>> func(a)
>>> if a == 10:
... pass
... else:
... print("test")
...
>>>
>>> a = 10 >>> a += 5 # a = a + 5 と同じ >>> a 15 >>> a / 2 7.5 >>> a // 2 7
01 #include <stdio.h>
02
03 int main()
04 {
05 // データの入力
06 double x, y;
07 printf("2つのデータを入力して下さい ");
08 scanf("%lf %lf", &x, &y);
09 // 乗算と除算
10 double mul = x * y;
11 double div = x / y;
12 // 結果の出力
13 printf("乗算=%f 除算=%f\n", mul, div);
14
15 return 0;
16 }
01 # -*- coding: UTF-8 -*-
02 ############################
03 # 2つのデータの乗算と除算 #
04 # coded by Y.Suganuma #
05 ############################
06 # データの入力
07 str = input("2つのデータを入力して下さい ")
08 a = str.split()
09 x = int(a[0])
10 y = int(a[1])
11 # 和と差の計算
12 mul = x * y
13 div = x / y
14 # 結果の出力
15 print("乗算=", mul, "除算=", div)
""" 2つのデータの乗算と除算 # coded by Y.Suganuma # """
2つのデータを入力して下さい 8 3 乗算= 24 除算= 2.6666666666666665
#****************************/
#* 複素数の計算 */
#* coded by Y.Suganuma */
#****************************/
# -*- coding: UTF-8 -*-
x1 = complex(1.0, 2.0)
x2 = complex(3.0)
x3 = complex(0, 2)
print ("x1:" + str(x1) + ",x2:" + str(x2) + ",x3:" + str(x3))
print("x1 + x2 = " + str(x1 + x2))
print("x1 - x2 = " + str(x1 - x2))
print("x1 * x2 = " + str(x1 * x2))
print("abs(x1) = " + str(abs(x1)))
print("x1 の共役複素数 = " + str(x1.conjugate()))
x1:(1+2j),x2:(3+0j),x3:2j x1 + x2 = (4+2j) x1 - x2 = (-2+2j) x1 * x2 = (3+6j) abs(x1) = 2.23606797749979 x1 の共役複素数 = (1-2j)
< : より小さい a < b > : より大きい a > b <= : 以下 a <= b >= : 以上 a >= b == : 等しい a == b != : 等しくない a != b
is : 同じオブジェクト a is b is not : 同じオブジェクトではない a is not b
式1 or 式2 : 論理和(式1 または 式2 が True であれば True,そうでなければ False) 式1 and 式2 : 論理積(式1 及び 式2 が True であれば True,そうでなければ False) not 式 : 否定(式 が False であれば True,そうでなければ False)
>>> (3 < 2) and (2 < 5) False >>> 3 < 2 < 5 False >>> 3 < 4 < 5 True
<< : 左にビットシフト a << 3 >> : 右にビットシフト a >> 3 & : ビットごとの論理積 x & y | : ビットごとの論理和 x | y ^ : ビットごとの排他的論理和 x ^ y ~ : 1 の補数( 0 と 1 の逆転) ~x
if 式1 : 文1 [elif 式2 : 文2] ・・・・・ [elif 式n : 文n] [else : 文]
# -*- coding: UTF-8 -*- a = int(input("データを入力してください ")) # 標準入力から 1 行入力 if a < 0 : print("負") elif a == 0 : print("0") else : print("正")
while 式 : 文1 [else : 文2]
# -*- coding: UTF-8 -*-
a = -1
b = 0
while a <= 0 :
a = int(input("data? "))
if a == 0 :
break
else :
b = 1 / a
print(b)
# -*- coding: UTF-8 -*-
sw = 0
x = 0
while x != 99999 :
x = int(input("データを入力してください "))
if x < 0 and (sw == 0 or x > max) :
max = x
sw = 1
print(" 最大値 = " + str(max))
for 変数 in イテラブルオブジェクト : 文1 [else : 文2]
>>> for x in [1, 2, 3] : # list ... print(x) ... 1 2 3 >>> for x in (1, 2, 3) : # tuple ... print(x) ... 1 2 3 >>> for x in range(1, 4) : # range ... print(x) ... 1 2 3
>>> with open("test.txt", "r") as f :
... a = f.read()
...
>>> a
'10 20 30\n菅沼義昇\n'
>>> f.closed
True # 既にクローズされている
# -*- coding: UTF-8 -*-
while True :
try :
x = int(input("整数を入力して下さい: "))
break
except ValueError :
print(" 不適切なデータです!")
print(x)
int x[10]; // 要素の数 10 の部分は定数である必要がある
x[5] = 3.0; y = x[3];
int x[4] = {100, 200, 300, 400};
int *y; // int y[4]; と宣言した場合は,y = x; は実行できない y = x; または y = &(x[0]);

int x[3][2] = {{100, 200}, {300, 400}, {500, 600}}; 
int *z = (int *)x; // z = &x[0][0]; でも良い
int *x = new int [n]; // 要素の数 n は変数でも構わない

double** pd = new double* [2]; for (i1 = 0; i1 < 2; i1++) pd[i1] = new double [3];
01 #****************************/
02 #* 1 次元配列 */
03 #* coded by Y.Suganuma */
04 #****************************/
05 # -*- coding: UTF-8 -*-
06 from array import *
07 import numpy as np
08 # リスト
09 print ("リスト")
10 a1 = []
11 a2 = list()
12 print(" 空のリスト a1: " + str(a1) + ",a2: " + str(a2))
13
14 a3 = [1, 2, 3]
15 print(" 角括弧とカンマの使用 a3: " + str(a3))
16
17 a4 = list("abcd")
18 a5 = list(("a", "b", "c", "d"))
19 print(" list(iterable) の使用 a4: " + str(a4) + ",a5: " + str(a5))
20
21 a6 = [x for x in "abcd"]
22 print(" リスト内包表記の使用 a6: " + str(a6))
23
24 a6.append('e')
25 del a6[1:3] # a6[1],a6[2] を削除
26 print(" 追加と削除 a6: " + str(a6))
27 # array モジュール
28 print("array モジュール")
29 print(" タイプコード " + typecodes)
30 b1 = array("i", [1, 2, 3])
31 print(" b1: " + str(b1))
32 b1.append(4)
33 b1.remove(2) # 値が 2 である要素を削除
34 print(" 追加と削除 b1: " + str(b1))
35 # numpy.ndarray モジュール
36 print("numpy.ndarray モジュール")
37 c1 = np.array([1, 2, 3])
38 print(" c1: " + str(c1))
39 c2 = np.array([1.5, 2, 3]) # np.array([1, 2, 3]], np.float) と同じ
40 print(" c2: " + str(c2))
リスト
空のリスト a1: [],a2: []
角括弧とカンマの使用 a3: [1, 2, 3]
list(iterable) の使用 a4: ['a', 'b', 'c', 'd'],a5: ['a', 'b', 'c', 'd']
リスト内包表記の使用 a6: ['a', 'b', 'c', 'd']
追加と削除 a6: ['a', 'd', 'e']
array モジュール
タイプコード bBuhHiIlLqQfd
b1: array('i', [1, 2, 3])
追加と削除 b1: array('i', [1, 3, 4])
numpy.ndarray モジュール
c1: [1 2 3]
c2: [ 1.5 2. 3. ]
01 #****************************/
02 #* 平均点以下の人数 */
03 #* coded by Y.Suganuma */
04 #****************************/
05 # -*- coding: UTF-8 -*-
06 # データの入力
07 x = list()
08 n = int(input("人数は? "))
09 for i1 in range(n) :
10 x.append(int(input(str(i1+1) + " 番目の人に点数は? ")))
11 """
12 # 入力を終了したいときは,改行だけを入力
13 n = 0
14 a = input("1 番目の人に点数は? ")
15 while len(a) > 0 :
16 x.append(int(a))
17 n += 1
18 a = input(str(n+1) + " 番目の人に点数は? ")
19 # 半角スペースで区切って 1 行で入力
20 a = input(" 各人に点数は? ").split()
21 n = len(a)
22 for i1 in range(n) :
23 x.append(int(a[i1]))
24 """
25 # 平均点の計算
26 mean = 0.0
27 for i1 in range(n) :
28 mean += x[i1]
29 mean /= n
30 # 平均点以下の人数をカウント
31 ct = 0
32 for i1 in range(n) :
33 if x[i1] <= mean :
34 ct += 1
35 # 結果の出力
36 print("結果: " + str(ct) + " 人")
01 #****************************/
02 #* 2 次元配列 */
03 #* coded by Y.Suganuma */
04 #****************************/
05 # -*- coding: UTF-8 -*-
06 from array import *
07 import numpy as np
08 # リスト
09 print ("リスト")
10 #a1 = [[], []]
11 #a1[0] = [1, 2, 3]
12 #a1[1] = [4, 5, 6]
13 a1 = [[1, 2, 3], [4, 5, 6]] # 上の 3 行でも可
14 a1[1][0] = 10;
15 a2 = a1[0] # 要素数 3 の 1 次元配列
16 a2[1] = 100
17 #a2[3] = 1000 # error(index out of range)
18 a3 = a1[1] # 要素数 3 の 1 次元配列
19 print(" 2 次元配列 a1: " + str(a1))
20 print(" 1 次元配列 a2: " + str(a2) + ",a3: " + str(a3))
21 # array モジュール
22 print("array モジュール")
23 #b1 = [array("i", []), array("i", [])]
24 #b1[0] = [1, 2, 3]
25 #b1[1] = [4, 5, 6]
26 b1 = [array("i", [1, 2, 3]), array("i", [4, 5, 6])] # 上の 3 行でも可
27 b1[1][0] = 10;
28 b2 = b1[0] # 要素数 3 の 1 次元配列
29 b2[1] = 100
30 #b2[3] = 1000 # error(index out of range)
31 b3 = b1[1] # 要素数 3 の 1 次元配列
32 print(" 2 次元配列 b1: " + str(b1))
33 print(" 1 次元配列 b2: " + str(b2) + ",b3: " + str(b3))
34 # numpy.ndarray モジュール
35 print("numpy.ndarray モジュール")
36 c1 = np.array([[1, 2, 3], [4, 5, 6]])
37 c1[1][0] = 10;
38 c2 = c1[0] # 要素数 3 の 1 次元配列
39 c2[1] = 100
40 #c2[3] = 1000 # error(index out of range)
41 c3 = c1[1] # 要素数 3 の 1 次元配列
42 print("2 次元配列 c1: ")
43 print(str(c1))
44 print("1 次元配列 c2: " + str(c2) + ", c3: " + str(c3))
リスト
2 次元配列 a1: [[1, 100, 3], [10, 5, 6]]
1 次元配列 a2: [1, 100, 3],a3: [10, 5, 6]
array モジュール
2 次元配列 b1: [array('i', [1, 100, 3]), array('i', [10, 5, 6])]
1 次元配列 b2: array('i', [1, 100, 3]),b3: array('i', [10, 5, 6])
numpy.ndarray モジュール
2 次元配列 c1:
[[ 1 100 3]
[ 10 5 6]]
1 次元配列 c2: [ 1 100 3], c3: [10 5 6]
10 20 30\n 40 50\n \n
01 #****************************/
02 #* 平均点以下の人数 */
03 #* coded by Y.Suganuma */
04 #****************************/
05 # -*- coding: UTF-8 -*-
06 # データの入力
07 x = list() # 各人の点数
08 n = 0 # クラスの数
09 m = list() # 各クラスの人数
10 mm = 0; # 全体の人数
11 mean = 0; # 全体の平均
12
13 a = input("1 番目のクラスにおける各人の点数は?(半角スペースで区切る) ").split()
14 while len(a) > 0 :
15 m.append(len(a)) # クラスの人数
16 x.append(list()) # 2 次元配列の生成
17 mm += m[n] # 全体の人数
18 for i1 in range(m[n]) :
19 x[n].append(int(a[i1]))
20 mean += x[n][i1] # 全体の平均
21 n += 1
22 a = input(str(n+1) + " 番目のクラスにおける各人の点数は? ").split()
23 # 平均点の計算
24 mean /= mm
25 # 平均点以下の人数のカウントと出力
26 for i1 in range(n) :
27 ct = 0
28 for i2 in range(m[i1]) :
29 if x[i1][i2] <= mean :
30 ct += 1
31 print("クラス" + str(i1+1) + " における平均点以下の人数: " + str(ct) + " 人")
#****************************/
#* 連想配列 */
#* coded by Y.Suganuma */
#****************************/
# -*- coding: UTF-8 -*-
# 生成
#x = {"aaa" : 10, "ddd" : 20, "ccc" : 30}
x = dict(aaa = 10, ddd = 20, ccc = 30)
print(x)
# 参照
print(" キー ccc に対する値: " + str(x['ccc']))
# 追加
x['bbb'] = 1
print(" キー bbb に対する値 1 を追加: " + str(x))
# 削除
del x['aaa']
print(" キー aaa に対する値を削除: " + str(x))
{'ccc': 30, 'aaa': 10, 'ddd': 20}
キー ccc に対する値: 30
キー bbb に対する値 1 を追加: {'bbb': 1, 'ccc': 30, 'aaa': 10, 'ddd': 20}
キー aaa に対する値を削除: {'bbb': 1, 'ccc': 30, 'ddd': 20}

01 # -*- coding: UTF-8 -*- 02 x = [1, 2, 3] 03 y = [1, 2, 3] 04 # x, y = [1, 2, 3], [1, 2, 3] 05 y[0] = 10 06 print(x, y) # [1, 2, 3] [10, 2, 3]

01 # -*- coding: UTF-8 -*- 02 x = [1, 2, 3] 03 y = x 04 # x = y = [1, 2, 3] 05 y[0] = 10 06 print(x, y) # [10, 2, 3] [10, 2, 3]
01 # -*- coding: UTF-8 -*- 02 # import copy 03 x = [1, 2, 3] 04 y = x.copy() # y = x[:] と同じ 05 # y = copy.copy(x) 06 y[0] = 10 07 print(x, y) # [1, 2, 3] [10, 2, 3]

01 # -*- coding: UTF-8 -*- 02 x = [[1, 2, 3], [4, 5, 6]] 03 y = x.copy() 04 y[0][0] = 10 05 print(x,y) # [[10, 2, 3], [4, 5, 6]] [[10, 2, 3], [4, 5, 6]]
Example(n)
01 # -*- coding: UTF-8 -*- 02 import copy 03 04 class Example : 05 def __init__(self, x) : 06 self.x = x 07 08 x = [Example(1), Example(2), Example(3)] 09 y = copy.copy(x) 10 y[1] = Example(4) 11 y[2].x = 5 12 print(x[0].x, x[1].x, x[2].x) # 1 2 5 13 print(y[0].x, y[1].x, y[2].x) # 1 4 5

01 # -*- coding: UTF-8 -*- 02 import copy 03 04 class Example : 05 def __init__(self, x) : 06 self.x = x 07 08 x = [[1, 2, 3], [4, 5, 6]] 09 y = copy.deepcopy(x) 10 y[0][0] = 10 11 print(x, y) # [[1, 2, 3], [4, 5, 6]] [[10, 2, 3], [4, 5, 6]] 12 13 x = [Example(1), Example(2), Example(3)] 14 y = copy.deepcopy(x) 15 y[1] = Example(4) 16 y[2].x = 5 17 print(x[0].x, x[1].x, x[2].x) # 1 2 3 18 print(y[0].x, y[1].x, y[2].x) # 1 4 5
py -3 test.py [data] # [ ] 内はオプション
01 # -*- coding: UTF-8 -*-
02 def func(s1, s2 = 20, s3 = 30) :
03 """example of function"""
04 s = s1 + s2 + s3
05 s1 = 100
06 return s
----------------------------------
07 # -*- coding: UTF-8 -*-
08 from function import func
09 import sys
10 print(func.__doc__)
11 p1 = 10
12 print("sum = ", func(p1)) # func(s1 = 10) or func(10) でも可
13 print("p1 = ", p1)
14 print("sum = ", func(p1, s2 = 50)) # func(10, 50) でも可
15 print(len(sys.argv), sys.argv[0])
16 #print(len(sys.argv), sys.argv[0], sys.argv[1]) # オプションを付加した場合
py -3 test.py data
example of function sum = 60 p1 = 10 sum = 90 1 test.py #2 test.py data
[1] [1, 2] [1, 2, 3]
# -*- coding: UTF-8 -*- def func(a, lt = []) : lt.append(a) return lt ---------------------------------- # -*- coding: UTF-8 -*- from function import func print(func(1)) print(func(2)) print(func(3))
# -*- coding: UTF-8 -*- def func(a, sum = 0) : sum += a return sum ---------------------------------- # -*- coding: UTF-8 -*- from function import func print(func(1)) print(func(2)) print(func(3))
a: 10 b: 3.13 c: (5+6j) x:[10, 2, 3] y:[ 1 10 3] a: 1 b: 1.5 c: (1+2j) x:[10, 2, 3] y:[ 1 10 3]
01 # -*- coding: UTF-8 -*-
02 import numpy as np
03 def func(a, b, c, x, y) :
04 a = 10
05 b = 3.13
06 c = complex(5, 6)
07 x[0] = a
08 y[1] = a
09 print("a: " + str(a) + " b: " + str(b) + " c: " + str(c) + " x:" + str(x) + " y:" + str(y))
----------------------------------
10 # -*- coding: UTF-8 -*-
11 import numpy as np
12 from function import func
13 a = 1
14 b = 1.5
15 c = complex(1, 2)
16 x = [1, 2, 3]
17 y = np.array([1, 2, 3])
18 func(a, b, c, x, y)
19 print("a: " + str(a) + " b: " + str(b) + " c: " + str(c) + " x:" + str(x) + " y:" + str(y))
01 # -*- coding: UTF-8 -*- 02 def add(s1, s2) : 03 s = s1 + s2 04 return s 05 def sub(s1, s2) : 06 s = s1 - s2 07 return s 08 def add_sub(fun, s1, s2) : 09 s = fun(s1, s2) 10 return s ---------------------------------- 11 # -*- coding: UTF-8 -*- 12 from function import add, sub, add_sub 13 print(add(2, 3)) # 5 14 kasan = add 15 print(kasan(2, 3)) # 5 16 print(add_sub(add, 2, 3)) # 5 17 print(add_sub(sub, 2, 3)) # -1
# -*- coding: UTF-8 -*- def func(*var, p) : print(var, p) # (10, 20) 30 を出力 ---------------------------------- # -*- coding: UTF-8 -*- from function import func func(10, 20, p = 30) # func(10, 20, 30) はエラー
# -*- coding: UTF-8 -*-
def func(**key) :
print(key) # {'key1': 10, 'key2': 20} を出力
----------------------------------
# -*- coding: UTF-8 -*-
from function import func
func(key1 = 10, key2 = 20)
# -*- coding: UTF-8 -*-
def func(p1, p2, *var, **key) :
print(p1, p2) # 1 5 を出力
print(var) # (100, 200) を出力
print(key) # {'key1': -1, 'key2': -2} を出力
----------------------------------
# -*- coding: UTF-8 -*-
from function import func
func(1, 5, 100, 200, key1 = -1, key2 = -2)
def func(p1, key, var, p2 = 5) :
print(p1, p2) # 1 5 を出力
print(var) # (100, 200) を出力
print(key) # {'key1': -1, 'key2': -2} を出力
----------------------------------
# -*- coding: UTF-8 -*-
from function import func
var_m = (100, 200) # タプル型
key_m = {'key1': -1, 'key2': -2} # 辞書型
func(1, key_m, var_m) # 4 つ目の引数は省略
01 # -*- coding: UTF-8 -*- 02 def func1() : 03 # print(str(a) + " in func1") エラー 04 a = 20 05 print(str(a) + " in func1") 06 07 def func2() : 08 global a # 記述しないとエラー 09 print(str(a) + " in func2") 10 a *= 10 11 print(str(a) + " in func2") 12 13 a = 10 14 print(a) 15 func1() 16 print(a) 17 func2() 18 print(a)
10 20 in func1 10 10 in func2 100 in func2 100
(式 for 式 in イテラブルオブジェクト) # for を多重に使用しても良い
>>> g = (pow(x, 2) for x in range(10)) >>> list(g) [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] >>> next(g) 0 >>> next(g) 1 >>> next(g) 4 ・・・・・ >>> list(g) # 要素を取り出した後は空 [] >>> sum(pow(x, 2) for x in range(10)) # 2 乗の和 285
>>> x = [1, 2, 3] >>> y = [4, 5, 6] >>> sum(x1 * y1 for x1, y1 in zip(x, y)) 32
>>> page = ["aaa bbb ccc aaa", "aaa bbb ccc", "bbb aaa aaa"]
>>> unique_words = set(word for line in page for word in line.split())
>>> unique_words
{'aaa', 'ccc', 'bbb'}
>>> def reverse(data, start) : ... for index in range(start, -1, -1) : ... yield data[index] ... >>> data1 = "abcde" >>> n = reverse(data1, 2) >>> next(n) 'c' >>> next(n) 'b' >>> for char in reverse(data1, 2) : ... print(char) ... c b a
01 # -*- coding: UTF-8 -*-
02 class Example :
03 """A simple example of class""" # クラスの説明
04 c_var = 12345 # クラス変数
05 def func(self, a) : # def __init__(self, a) :
06 self.i_var = a # インスタンス変数
----------------------------------
07 # -*- coding: UTF-8 -*-
08 from function import Example
09 print(Example.__doc__) # クラスの説明の表示
10 x = Example() # Example クラスのインスタンス(オブジェクト)の生成
11 x.func(10) # Example.func(x, 10) と等価
12 y = Example()
13 y.func(20)
14 z = Example()
15 z.func(30)
16 print("最初の状態 x,y,z")
17 print(Example.c_var, x.c_var, x.i_var)
18 print(Example.c_var, y.c_var, y.i_var)
19 print(Example.c_var, z.c_var, z.i_var)
20 print("***w に x を代入***")
21 w = x
22 print("w の値変更 x,y,z,w")
23 w.c_var = 100
24 w.i_var = 40
25 print(Example.c_var, x.c_var, x.i_var)
26 print(Example.c_var, y.c_var, y.i_var)
27 print(Example.c_var, z.c_var, z.i_var)
28 print(Example.c_var, w.c_var, w.i_var)
29 print("x の値変更 x,y,z,w")
30 xf = x.func # 関数に対するポインタ,普通の関数でもOK
31 xf(50)
32 x.c_var = 1000
33 print(Example.c_var, x.c_var, x.i_var)
34 print(Example.c_var, y.c_var, y.i_var)
35 print(Example.c_var, z.c_var, z.i_var)
36 print(Example.c_var, w.c_var, w.i_var)
37 print("クラス変数値の変更 x,y,z,w")
38 Example.c_var = 123
39 print(Example.c_var, x.c_var, x.i_var)
40 print(Example.c_var, y.c_var, y.i_var)
41 print(Example.c_var, z.c_var, z.i_var)
42 print(Example.c_var, w.c_var, w.i_var)
A simple example of class 最初の状態 x,y,z 12345 12345 10 12345 12345 20 12345 12345 30 ***w に x を代入*** w の値変更 x,y,z,w 12345 100 40 12345 12345 20 12345 12345 30 12345 100 40 x の値変更 x,y,z,w 12345 1000 50 12345 12345 20 12345 12345 30 12345 1000 50 クラス変数値の変更 x,y,z 123 1000 50 123 123 20 123 123 30 123 1000 50
x = Example(10)
# -*- coding: UTF-8 -*- class Complex() : def __init__(self, re, im = 0.0) : self.re = re self.im = im def add(self, v) : x = Complex(self.re + v.re, self.im + v.im) return x ---------------------------------- # -*- coding: UTF-8 -*- from function import Complex x = Complex(1, 2) y = Complex(3) z = x.add(y) print((z.re, z.im)) # (4, 2.0)
class DerivedClassName ( BaseClassName1, BaseClassName2, ・・・ ):
BaseClassName.methodname(self, arguments)
# -*- coding: UTF-8 -*- class Num : name = "数値" def __init__(self, v) : self.v = v def add(self, v) : x = Num(self.v + v) return x class Int(Num) : name = "整数" class Complex(Num) : name = "複素数" # 親クラスのコンストラクタを呼びたい場合は Num.__init__(self, 値) def __init__(self, re, im = 0.0) : self.re = re self.im = im def add(self, v) : x = Complex(self.re + v.re, self.im + v.im) return x ---------------------------------- # -*- coding: UTF-8 -*- from function import * x = Int(10) # 基底クラス Num のコンストラクタ __init__ の継承により,変数 v に値が設定される print(x.v) # 10 y = x.add(20) # 親クラス Num のメソッド add の継承 print(y.v) # 30 u = Complex(1, 2) # クラス Complex のコンストラクタ __init__ の利用 print((u.re, u.im)) # (1, 2) v = Complex(3) print((v.re, v.im)) # (3, 0.0) w = u.add(v) # クラス Complex のメソッド add の利用 print((w.re, w.im)) # (4, 2.0) u.re = (Num.add(Num(u.re), 10)).v # 基底クラスのメソッド add の利用 print((u.re, u.im)) # (11, 2) print(u.name) # クラス Complex のクラス変数 name の値(複素数) print(Num.name) # 基底クラス Num のクラス変数 name の値(数値)
01 # -*- coding: UTF-8 -*- 02 class Num : 03 name = "数値" 04 def __init__(self, v) : 05 self.v = v 06 def add(self, v) : 07 x = Num(self.v + v) 08 return x 09 # クラスメソッド 10 @classmethod 11 def class_method(cls) : 12 print(cls.name) 13 # スタティックメソッド 14 @staticmethod 15 def static_method() : 16 print(Num.name) 17 class Int(Num) : 18 name = "整数" 19 class Complex(Num) : 20 name = "複素数" 21 def __init__(self, re, im = 0.0) : 22 self.re = re 23 self.im = im 24 def add(self, v) : 25 x = Complex(self.re + v.re, self.im + v.im) 26 return x ---------------------------------- 27 # -*- coding: UTF-8 -*- 28 from function import * 29 x = Complex(1, 2) 30 Complex.class_method() 31 x.class_method() 32 Complex.static_method() 33 x.static_method()
01 # -*- coding: UTF-8 -*-
02 a = input("data? ")
03 b = a.split()
04 print(b)
05 x = int(b[0])
06 y = float(b[1])
07 z = b[2]
08 print(x, y, z)
09 print("x = " + str(x) + ", y = " + str(y) + ", z = " + str(z))
10 #print("x = " + x + ", y = " + y + ", z = " + z) # error
11 form = "x = {0:2d}, y = {1:.2f}, z = {2:s}".format(x, y, z)
12 print(form)
x = ..., y = ..., z = ...
data? 10 3.141592654 abc ['10', '3.141592654', 'abc'] 10 3.141592654 abc x = 10, y = 3.141592654, z = abc x = 10, y = 3.14, z = abc
# -*- coding: UTF-8 -*-
import sys
for line in sys.stdin :
if line == "end\n" or len(line.strip()) <= 0 :
break
else :
print(" " + line)
# 以下の文とほぼ同じ
line = sys.stdin.readline()
while line != "end\n" and len(line.strip()) > 0 :
print(" " + line)
line = sys.stdin.readline()
# -*- coding: UTF-8 -*-
# 出力
f = open("test.txt", "w") # 出力のためにオープン
f.write("10 3.1492654 abc\nテスト データ\n")
f.close()
# 全てのデータを入力
f = open("test.txt", "r") # 入力のためにオープン
a = f.read()
print(a) # "10 3.1492654 abc\nテスト データ\n"
# ファイルの先頭に移動
f.seek(0)
# 1 行ずつ入力
b = f.readline()
print(b) # "10 3.1492654 abc\n"
b = f.readline()
print(b) # "テスト データ\n"
b = f.readline()
print(b) # ""
f.close()
# -*- coding: UTF-8 -*-
with open('test.txt') as fp:
for line in iter(fp.readline, ''):
print(line, end="")
# -*- coding: UTF-8 -*-
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]]) # 2 行 3 列
np.savetxt('test.txt', a) # 配列 a の出力
b = np.loadtxt('test.txt') # 配列 b への入力
print(b)
01 # -*- coding: UTF-8 -*-
02
03 #***************************/
04 # 変数の有効範囲(スコープ) */
05 # coded by Y.Suganuma */
06 #***************************/
07
08 #******************/
09 # クラス Example1 */
10 #******************/
11 class Example1 :
12 c_var = 1000
13
14 def __init__(self) :
15 self.i_var = 2000
16
17 def sub1(self) :
18 print("sub1 c_var", self.c_var, "i_var", self.i_var)
19
20 #******************/
21 # クラス Example2 */
22 #******************/
23 class Example2(Example1) :
24 def sub2(self) :
25 print("sub2 c_var", self.c_var, "i_var", self.i_var)
26
27 #***********/
28 # 関数 sub */
29 #***********/
30 def sub() : # この位置で定義する必要がある
31 x = 40
32 print(" sub x", x)
33 print(" sub z", z)
34
35 #***************/
36 # main program */
37 #***************/
38 # ブロック
39 x = 10
40 z = 30
41 if x > 5 :
42 print("block x", x)
43 x = 15
44 y = 20
45 print("block x", x)
46 print("block y", y)
47 else :
48 print("block x", x)
49 x = -15
50 print("block x", x)
51 sub()
52 print("x", x)
53 print("y", y) # 最初の x が 1 の時は,y が未定義のためエラー
54 # クラス
55 ex = Example2()
56 ex.sub1()
57 ex.sub2()
58 print("member( c_var )", Example2.c_var)
59 print("member( i_var )", ex.i_var)
global x
block x 10 block x 15 block y 20 sub x 40 sub z 30 x 15 y 20
sub1 c_var 1000 i_var 2000 sub2 c_var 1000 i_var 2000 member( c_var ) 1000 member( i_var ) 2000
| 情報学部 | 菅沼ホーム | 目次 | 索引 |