data_list = [1, 2, 3, 4]
print(data_list * 2)
# 単純に繰り返すだけ
# append remove pop del
data_list.append('aaa')
data_list
# [1, 2, 3, 4, 'aaa']
data_list.remove(3)
data_list
del data_list
data_list
dic = {'a':1, 'b':2, 'c':3}
dic.keys()
dic.values()
for dic_key in dic.keys():
print(i,dic[dic_key])
for i in range(1,11,2):
print(i)
for key, value in dic.items():
print(key, value)
# リスト内包表記 for in
li = [i * 2 for i in range(11)]
print(li)
# リスト内包表記 for in if
li2 = [i for i in li if i % 6 == 0 in li]
# zip関数
a = [1,2,3,4]
b = [5,6,7,8]
for one, two in zip(a, b):
print(one, two)
# while 文
num = 1
li =[]
while num < 10:
li.append(num)
num += 1
print(li)
# 関数
def func(a, b):
return a + b
func(10,20)
# 無名関数(ラムダ関数)
# 普通の関数
def calc(a, b):
return a * b
print(calc(100,200))
# ラムダ関数 リターンしかない場合
(lambda a, b: a*b)(100, 200)
# map関数
# 普通のやりかた
def calc2(x):
return x * 2
for num in [1,2,3,4]:
print(calc2(num))
# map関数を使う 関数と元リストを渡すとmapオブジェクトが得られる
map_object = map(calc2, [1,2,3,4]) # <map at 0x26160d36208>
list(map_object)
# ラムダを使えば事前にcalc2関数も不要
map_object2 = map(lambda x:x * 2, [1,2,3,4])
list(map_object2)
# reduce関数 filter関数
help(filter)
# 例
s = 'Data Science'
i=0
for i in range(len(s)):
print(s[i])
sum([num for num in range(51)])
# クラスとインスタンス
class Printer():
def print_name(self):
print(self.x, self.y)
# インスタンスの作成
p = Printer()
# アトリビュートの作成
p.x = 100
p.y = 200
# メソドの使用
p.print_name()
# クラス __init__を使ってみる
class Printer2(Printer): # クラスPrinterの機能を継承してみます。
# 引数を入れた時点でアトリビュートが生成されるようにします。
def __init__(self, x, y):
self.x = x
self.y = y
# インスタンスの作成
p2 = Printer2(1000,8000)
# アトリビュートの確認
print(p2.x)
print(p2.y)
# 継承したクラスメソドの確認
p2.print_name()
# 素数を作るプログラム
'''コンセプト
素数 = 1とそれ自身の数以外は約数を持たない数
その自然数num以下の自然数aで小さい数から順番に割った余りががゼロになったとき、sの自然数aが自然数numと同じ値なら、自然数numは素数。
num =[2,3,5,7,9,11,13,17,19]
'''
class PrimeNumberMaker():
def __init__(self, max_num):
self.max_num = max_num
self.li = []
def calc(self):
num = 2
while num < self.max_num:
for devider in range(2, num + 1, 1):
if num % devider == 0:
if num == devider:
self.li.append(num)
# print(num)
break # 割り切れたときにdeviderと同じ数値でなかったら素数ではない。
num += 1
self.li_length = len(self.li)
print('検出した素数の数 : {0}'.format(self.li_length))
print(self.li)
# インスタンスの作成
p = PrimeNumberMaker(1000)
print(p)
print(p.max_num)
print(p.li)
# メソドの実行
p.calc()
# 素数の数を調べる
%matplotlib inline
import matplotlib.pyplot as plt
from IPython.display import clear_output
# グラフをプロットする関数
def ploter(limit_nums, length):
plt.plot(limit_nums, length)
plt.title('the number of Prime Numbers in the number')
plt.ylabel('the number of Prime Numbers')
plt.xlabel('Number')
plt.show()
# メインスクリプト
length = []
limit_nums = [ 10 ** a for a in range(4)]
for i, limit_num in enumerate(limit_nums):
p = PrimeNumberMaker(limit_num)
p.calc()
length.append(p.li_length)
clear_output()
ploter(limit_nums[0:i+1], length)