x = 4 - 1
print(x)
y = x + 5
print(y)
x = x * 2
print(x)

y = x ** 2
print(y)
z = y / 5
print(z)
z = y // 5#商
print(z)
z = y % 5#剰余
print(z)
print(-z)
x += 3
print(x)

"""
Explanation: Python,Anaconda,Spyder,jupyter,orange

Python:コードを一行ずつ直接実行（インタプリタ）でき、データ分析のパッケージが充実しているプログラミング言語
Anaconda：データ分析向けのPythonのディストリビューション（ソフトウェアの集まり）。Pythonのデータ分析でほとんど必ず用いられるpandasやその他多くのパッケージ、統合開発環境Spyderなどデータ分析に必要なソフトウェアを簡単にインストールし使うことができる。
Spyder：Pythonの統合開発環境（IDE）。コードを書く道具をエディタと呼ぶが、IDEはエディタの他にもプログラミングに必要な様々な機能を持たせたもの。SpyderはPythonのIDEの中でもデータ分析のプログラマーによく使われている。
jupyter：エディタとしての機能とドキュメントとしての機能を提供し、プログラミングの学習を効率化できるツール。
orange：プログラミングなしにデータ分析、可視化、機械学習を行うことができるPythonで書かれたツール。

pythonとjupyter
jupyterはプログラムの説明に便利。spyderはデータ処理の開発環境に使い、説明にはjupyterを使うのが良い。ここでは、jupyterを使ってPythonの基礎を説明する。
pythonの基礎
簡単な数値計算のコードから書いてみる。
End of explanation
"""


a = 'red'
b = "blue"
print(a)
print(b)
print('green',5)

c = a + b#-はない
print(c)
d = a * 2#/はない
print(d)
e = ''#空白文字列
print(e)

print(b[0])
print(b[2])

print(b[:2])
print(b[1:3])#[1,3)
print(b[2:])
print(b[-2:])
print(b[1:-2])

"""
Explanation: pythonで文字列処理をしてみる。文字列はシングルクォート''またはダブルクォート""で囲む。
End of explanation
"""


print(type(x))
t = type(a)
print(t)
print(type(x/3))

"""
Explanation: 型を調べる。
End of explanation
"""


x_str = str(x)
print(x_str)
x_int = int(x_str)
print(x_int)
x_float = float(x_int)
print(x_float)

"""
Explanation: 文字列（string）型のstr、整数（int）型、浮動小数点数（float）型となっている。型の変換もできる。
End of explanation
"""


y == x * 4

print(y == x)
print(y > x)
print(y >= x * 4)
print(y != x)
print(a == 'red')
print(a != 'red')

print(y != x)

"""
Explanation: 文字列、数値の他、真偽値がある。
End of explanation
"""


p = True
q = False
print(p and q)
r = p or q
print('r=',r)
print(p & q)
print(p | q)
print(not p)

"""
Explanation: 論理演算について記載する。
End of explanation
"""


print(a is 'red')
print(a is not 'blue')
print('e' in b)
print('e' not in b)
print(type(p))

"""
Explanation: isは==と同じ使い方。包含関係はin
End of explanation
"""


#x = #はコメント
if x > 3:
    y += x
    print(a)
elif x > 0:
    print(b)
else:
    print('エラー')

"""
Explanation: if文を少しだけ学んで見る。詳細は後の章。
End of explanation
"""


list_a = [3,5,9,2,5]
list_a

"""
Explanation: リストは複数の値をまとめて持つことができる基本的なデータ構造。
End of explanation
"""


list_b = ['b','r','g','y','k']
list_b

"""
Explanation: 数値以外でもリストとして持つことができる。
End of explanation
"""


list_c = ['red',11,-3,'green',2.4,True]
print(list_c)
list_d = []#空のリスト
list_e = list()
print(list_d)
print(list_e)

print(list_a[2])
print(list_a[1:3])
print(list_a + list_b)
print(list_a * 2)

"""
Explanation: 数値と文字列を混ぜて持たせることも可能。
End of explanation
"""


list_a += [3]#list_a += 3ではない。
print(list_a)

"""
Explanation: リストや文字列のように順序を持った列をシーケンスと呼ぶ。
End of explanation
"""


[[2,3],'yellow',-5.3,['abc','efg'],False,0,'',3-1,p or q]

type(list_a)

"""
Explanation: リストのリストも作れる。
End of explanation
"""


print(len(a))
print(len(list_a))

"""
Explanation: シーケンス（文字列やリスト）の長さを調べる。
End of explanation
"""


text = 'red,green,blue,yellow,black'
split_text = text.split(',')
split_text

'_'.join(split_text)

text.replace(',',' ')

"""
Explanation: よく使う文字列操作
文字列のsplitによる分割、joinによる結合、replaceによる置換。
End of explanation
"""


t = """トリプルクォートの使い方を記載します。
トリプルクォートの文字列は長い文字列の際の、
複数行文字列にも使えます。
また''を文字列として扱うことができます。"""
print(t)
t

t2 = "エスケープを使うことで、\nprint文などにおいて、改行することができます。"
print(t2)

"""
Explanation: トリプルクォート"""または'''の使い方
End of explanation
"""


t3 = '改行の使い方について。'\
'バックスラッシュで'\
'複数行の文字列をつなぐことができる。'
t3

"""
Explanation: バックスラッシュで複数行の文字列をつなぐこともできます。
End of explanation
"""


t4 = '改行の使い方について。'
t4 += 'バックスラッシュで'
t4 += '複数行の文字列をつなぐことができる。'
t4

"""
Explanation: +=による文字列結合でも同じことができます。
End of explanation
"""


