環境の作成
AWSのEC2で、Amazon Linux AMIを作成する(2ではない方)
ログインし、pythonを3.5にする
sudo yum install -y python35
sudo unlink /etc/alternatives/python
sudo ln -s /usr/bin/python3.5 /etc/alternatives/python
これで環境OK
"""
コメント
comm
"""
#commm
#変数、改行、タブ
msg = "He\nllo Wo\trld"
print(msg)
msg = "Hello"
print(msg)
# 定数
ADMIN_EMAIL = "aaa@aaa.net"
html = """<html>
<body></body>
</html>"""
print(html)
i = 10
print(i)
i = 10.1
print(i)
i = True
print(i)
x = 10
print(x / 3)
print(x // 3)
print(x % 3)
print(x ** 2)
y = 4
y +=12
print(y)
print(True and False)
print(True or False)
print(not True)
print("hello " + "wo")
print("hello " * 3)
# printで改行しない
print("aaa", end="")
print("bbb")
#str関数
x = "text"
y = 100
print(x + str(y))
# 引数
args = sys.argv
print(args)
d = [1,2,3]
print(d)
d = {"apple":100,"bed":200}
print(d)
#coding: UTF-8
import sys
print sys.stdin.encoding
print sys.stdout.encoding
print sys.stderr.encoding
from sys import argv
print(argv[0])
print(argv[1])
print(argv[2])
from fractions import Fraction
print(0b0101)
print(0o165)
print(0xfaa)
print(2+3j)
print(complex(5,6))
print(divmod(10,3))
print(Fraction(3,7))
l = ['a', 'b', 'c', 'd', 'e']
print(l[1:-1])
l.append('f');print(l)
l.insert(0,0);print(l)
l.remove('c');print(l)
del l[0]
print(l)
print(l.pop(0))
print(l)
for s in l:
print(s)
# リスト内包表記
data_list = [1,2,3,4,5,6]
new_list = [num * 2 for num in data_list if num %2 == 0]
print(new_list)
k = ["AB","ac","bD","bc"]
print(sorted(k))
print(sorted(k,reverse=True))
print(sorted(k,key=str.lower))
print(str.lower("Aa"))
k.sort();print(k)
k.sort(reverse=True);print(k)
k.sort(key=str.lower);print(k)
# タプル
t1 = ();print(t1)
t1 = (1);print(t1)
t1 = (1,);print(t1)
t1 = ("a","b","c");print(t1)
# range
r1 = range(5);print(list(r1))
r1 = range(1,5);print(list(r1))
r1 = range(1,5,2);print(list(r1))
for i in range(0,10):
print(i,end="")
s = {'A', 'B', 'C'};print(s)
s = {'C','A', 'B', 'C'};print(s)
l = ['a', 'b', 'c', 'a']
s = set(l);print(s)
s.add(4);print(s)
s.remove('c');print(s)
s.discard('c');print(s)
fs = frozenset(l);print(fs)
fs = frozenset(['a', 'b', 'c']);print(fs)
s1 = {'A', 'B', 'C'}
s2 = {'C', 'D', 'E'}
s = s1.union(s2) # s1とs2をunionする
print(s) # {'E', 'D', 'C', 'B', 'A'}
print(s1) # {'B', 'A', 'C'} 変更なし
s = s1.intersection(s2)
print(s) # {'C'}
# s1 - s2
s = s1.difference(s2)
print(s) # {'B', 'A'}
# s2 - s1
s = s2.difference(s1)
print(s) # {'D', 'E'}
s1 = {'A', 'B'}
s2 = {'A', 'B', 'C'}
print(s1.issubset(s2)) # True
print(s2.issuperset(s1)) # True
dic = {'key1': 110, 'key2': 270, 'key3': 350}
print(dic)
print(dic['key1']) # 110が出力される
#print(dic['hoge']) # KeyErrorが発生する
print("getメソッド")
print(dic.get('key1')) # 110が出力される
print(dic.get('hoge')) # Noneが出力される
dic['key1'] = 200 # 200に更新
print(dic['key1']) # 更新後の200が出力される
dic = {'key1': 110, 'key2': 270, 'key3': 350}
print(len(dic)) # 要素数の3が出力される
dic = {'key1': 110, 'key2': 270, 'key3': 350}
for i in dic:
print(i)
print(dic[i])
for i in dic.values():
print(i)
for key,value in dic.items():
print(key,value)
for i,value in enumerate(dic):
print(i,value)
for i,(key,value) in enumerate(dic.items()):
print(i,key,value)
def sample(obj):
if isinstance(obj, bool):
print('bool')
if isinstance(obj, int):
print('int')
if isinstance(obj, float):
print('float')
if isinstance(obj, complex):
print('complex')
if isinstance(obj, list):
print('list')
if isinstance(obj, tuple):
print('tuple')
if isinstance(obj, range):
print('range')
if isinstance(obj, str):
print('str')
if isinstance(obj, set):
print('set')
if isinstance(obj, frozenset):
print('frozenset')
if isinstance(obj, dict):
print('dict')
sample(True) #boolかつint
sample(1)
sample(1.11112)
sample(3+4j)
sample([1,2,3])
sample((1,2,3))
sample(range(1,5))
sample('str')
sample({'A','B'})
sample(frozenset({'A','B'}))
sample({'key1': 110, 'key2': 270, 'key3': 350})
x = 1
if x == 0:
print('x = 0')
elif x == 1:
print('x = 1')
else:
print('x = other')
if 1:
print('1 is True')
if 0:
pass
else:
print('0 is False')
if [1,2]:
print('[1,2] is True')
if (1,2,3):
print('(1,2,3) is True')
if None:
pass
else:
print('None is False')
if 'asdf':
print('asdf is True')
●for文
l = ['a', 'b', 'c']
for v in l:
print(v)
for i,value in enumerate(l):
print(i,value)
for v in range(1,5,2):
print(v)
dic = {'key1': 110, 'key2': 270, 'key3': 350}
for key in dic:
print(key,dic[key])
for value in dic.values():
print(value)
for key,value in dic.items():
print(key,value)
for i,(key,value) in enumerate(dic.items()):
print(i,key,value)
data_list = [1,2,4]
for data in data_list:
print(data)
if data == 3:
print('333')
break
else:
print('3なし')
●while文
flag = True
while flag:
print('input word.')
c = input()
if c == 'end':
flag = False
#break
else:
print(c + u'が入力されました')
else:
print('success')
●関数、引数、戻り値
def my_func(arg1, arg2=100, arg3=200):
print(arg1,arg2,arg3)
my_func(0,1,2)
my_func(0,arg2=400)
my_func(0)
def my_func(arg1, *arg2, **arg3):
print(arg1,arg2,arg3)
my_func(1,2,3,4,key1=2,key2=3,key3=4)
def my_func():
return 1
print(my_func())
def my_func():
pass
print(my_func())
def my_func():
return 3,'b'
print(my_func())
a,b = my_func()
print(a,b)
●関数内のグローバル変数の挙動
x = 100
def my_func():
global x
x = 200
print(x)
my_func()
print(x)
●関数オブジェクト
def param_func():
return 'sample'
def my_func(f):
x = f()
print(x)
my_func(param_func)
●内部関数
def outer_func():
print('outer')
x = 100
print(x)
def inner_func():
print('inner')
nonlocal x
x = 200
f = inner_func
print(x)
return f
ff = outer_func()
ff()
●ジェネレータ
def my_generator():
yield 'aaa'
yield 'bbb'
yield 'ccc'
gen_func = my_generator()
print(gen_func.__next__())
print()
print(gen_func.__next__())
#print()
#print(gen_func.__next__())
for text in gen_func:
print(text)
●ジェネレータの用途
def fibonacci_generator():
f0 = 0
f1 = 1
while True:
yield f0
f0,f1 = f1,f0 + f1
gen_func = fibonacci_generator()
for i in range(0, 10):
num = next(gen_func)
print(num)
※下記と同じ内容
f0 = 0
f1 = 1
def fibonacci_generator():
print(f0)
global f0
global f1
f0,f1 = f1,f0 + f1
for i in range(0, 10):
fibonacci_generator()
●sendメソッド
def sample_generator():
while True:
text = yield 'おはよう'
yield text
gen_func = sample_generator() # ジェネレータオブジェクトを生成する
text = next(gen_func)
print(text)
text = gen_func.send('こんにちは')
print(text)
text = gen_func.send('こんにち')
print(text)
text = gen_func.send('こんは')
print(text)
●throwメソッド
●closeメソッド