Repository navigation
Expand file tree
/
Copy pathintro.py
More file actions
105 lines (80 loc) · 2.87 KB
/
Copy pathintro.py
File metadata and controls
105 lines (80 loc) · 2.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#1行コメントは#
'''
複数行コメントは
わかりにくいと思われるので使わない方向で
'''
#pylintのオプションはコメントで記述できるっぽい
# pylint: disable=invalid-name
#へろー
##後ろに ; とか要らない
print("Hello world")
##変数に代入
###宣言不要で、型もなし
num = 1 #数値
print(num)
##掛け算とか、とくに変な記述はない様子
print(num*3)
###その他の演算子はhttps://docs.python.jp/3/reference/lexical_analysis.html#operators
##文字列
str1 = "文字列"
print(str1+"連結")
print(str1[0]) #インデックスは0起算
print(str1[-1]) #マイナスで右から
#制御構造
a = 0
while a < 20: #行末にコロン必要
print(a) #必ず字下げ!
if a%15 == 0:
print("FizzBuzz")
elif a%3 == 0: #独特な elif ( else if の意)
print("Fizz")
elif a%5 == 0:
print("Buzz")
a = a+1 #インクリメント演算子は無いっぽい
for a in ["A",1,2,3,4,5]: #forEachっぽい
print(a)
for a in range(0,10,1): # for(i=0;i<10;l++)的な
print(a)
#関数
def hello(arg="world"):
"""関数やクラスの最初にこんな感じでコメントを書くとdocstringという扱いになって、
リファレンス作成時や、コード補完などの際に使用されます。後々便利なので書きましょう。
http://www.sphinx-doc.org/ja/stable/domains.html#info-field-lists
"""
greet="Hello " + arg
print(greet)
return greet
hello()
result=hello("oreore")
print("result:" + result)
# print(greet) #関数内スコープ変数なのでエラーになります
#クラス
## クラス定義
class TheClass:
"""クラスサンプル """
member=1 #なにもつけなければpublicメンバ
__num=1 #アンダースコア2個でprivate
def __init__(self):
'''コンストラクタ'''
self._num=2
self.__num=3
def method1(self): #メソッドの第一引数はselfにしとけ
print("TheClass method" + str(self.member))
def method2(self):
print("The Class private num=" + str(self.__num))
## クラスインスタンス化 newとか要らない
tclass = TheClass()
tclass.method1() #メソッド呼び出し
tclass.member=2 #publicメンバー上書き
tclass.method1()
tclass.method2()
tclass.__num=4 #privateメンバー上書き。エラーにはならないみたい
tclass.method2() #エラーにはならないけど上書きはされない
## 継承
class ExtClass(TheClass): #こう書くらしい
def method2(self):
#self.__num プライベートメンバにはアクセスできない
print("this is overwrote method")
exclass=ExtClass()
exclass.method1()
exclass.method2()