Python 基本文法メモ

######文字列を表示する
「print」を用いると文字を出力（表示）することができる。
printの後ろの()の中に書いた文字が「コンソール」という画面に出力される。

```python
print('Hello World')
```

文字列はシングルクォーテーション「'」またはダブルクォーテーション「"」で囲む必要があり、どちらで囲んでも出力結果は同じ。
どちらかで囲んでいない場合、エラーが発生する。

```python
#print('コメントアウト')
```
行頭に「#」を書くことで、コード内にはコメントを書くことができる。

######数値
数学と同じ記号「+」「-」を用いて、足し算と引き算が可能で、数値や記号はすべて半角で記述する
「'9 + 3'」のようにクォーテーションで囲むと、文字列として解釈されて、そのまま「9 + 3」が出力されます。

```python
# 9に3足した値を出力してください
print( 9 + 3)

# 「9 + 3」を文字列として出力してください
print('9 + 3')
```

######その他計算
掛け算は「*」、割り算は「/」で表し、「%」で割り算の余りを計算することができる。

~~~python
#9を2で割った値を出力してください
print(9 / 2)

#7に5を掛けた値を出力してください
print(7 * 5)

#5を2で割った時の余りを出力してください
print(5 % 2)
~~~

######変数

変数は「変数名 = 値」で定義する。変数名はクォーテーションで囲む必要はない。

~~~python
# 変数nameに文字列「ほげほげ」を代入してください
name = "ほげほげ"

# 変数nameの値を出力してください
print(name)

# 変数numberに数値の8を代入してください
number = 8

# 変数numberの値を出力してください

print(number)
~~~

######変数の使い方
変数名の頭文字を数字にすることはできない。
また、「user_name」のように2語以上の変数名を使うときは、単語と単語の間を _ (アンダーバー)で区切る必要がある

~~~python
pen_price = 200
pen_count = 8

# pen_priceとpen_countを掛けた結果を、変数total_priceに代入してください
total_price = pen_price * pen_count 

# total_priceの値を出力してください
print(total_price)
~~~

#####変数の値を更新する
「変数名 = 新しい値」とすることで変数の値を上書きすることができる。

~~~python
year = 2000
print(year)

# 変数yearに5000を足して、変数moneyを上書きしてください
year = year + 20

# 変数moneyの値を出力してください
print(year)
~~~
######省略形
数値の入った変数の値を更新する場合、省略して書くことができる。

~~~python
  #基本形       　　#省略形
y = y + 10        y += 10
y = y - 10        y -= 10
y = y * 10        y *= 10
y = y / 10        y /= 10
y = y % 10        y %= 10
~~~

######文字の連結
数値の計算で用いた「+」記号は、計算だけでなく文字列の連結も行うことができる。
他にも、変数と文字列の連結、変数同士の連結をすることができる。

~~~python
# my_nameという変数に「pythonメモ」という文字列を代入してください
my_name = "pythonメモ"

# my_nameを用いて、「私はpythonメモです」と変数と文字列を連結して出力してください
print("私は"+ my_name + "です")
~~~

######データ型
データ型の異なる文字列型と数値型を連結するとエラーが起きる。データ型を変えることを「型変換」と言う。
文字列同士、数値同士だと連結ができるようになる。
数値型を文字列型に変換するには「str」を使う。
文字列型を数値型に変換したい場合には「int」を使う。

~~~python
age = 36
# ageを用いて「私は36歳です」と出力してください
print('僕は' + str(age) + '歳です')

count = '20'
# countに1を足した値を出力してください
print(int(count) + 1)
~~~

######if文
if文の条件部分は「if 条件式 :」のように書く
処理がif文の中にあるかどうかはインデントによって判別される。
条件が成立したときにif文の中の処理が実行される

~~~python
# xが80と等しい場合に「xは80です」と出力してください
if x == 80:
    print('xは80です')

# yが50と等しくない場合に「yは50ではありません」と出力してください
if y != 50:
    print('yは50ではありません')
    print('yは30です！')
    
# インデントをそろえないとif文外だとみなされる
if y != 50:
    print('yは50ではありません')
print('yは30です！')
~~~

######真偽値
比較演算子には、==と!=といった値の等しさを比較する記号以外に、値の大小を比較する記号が存在する。
「<」,「>」という大小比較の記号。「x > y」はxがyより大きければTrue, 小さければFalseを返す。
「x < y」はその逆になる。「≧」,「≦」という記号（以上や以下を表す）は、>=, <=と記述する必要がある。

~~~python
x = 20
# xが30より大きい場合に「xは30より大きいです」と出力してください
if x > 30:
    print('xは30より大きいです')


yen = 400
pen_price = 200
# yenの値がpen_priceの値以上の時、「ペンを買うことができます」と出力してください

if yen >= pen_price:
    print('ペンを買うことができます')
else:
    print('お金が足りません')
~~~

######elif
if文で、条件が成り立たなかった場合を複数定義したい場合は、「elif」を使う。
行末に:(コロン）を忘れずに！

~~~python
yen = 100
pen_price = 100

if yen > pen_price:
    print('ペンを買うことができます')
# 変数の値が等しい場合に「ペンを買うことができますがお金が0になります」と出力してください
elif yen == pen_price:
    print('ぺんを買うことができますがお金が0になります')

else:
    print('お金が足りません')
~~~

######複数の条件式
「and」・・・「条件1も条件2も成り立つ」というような場合「条件1 and 条件2」のように書く。

「or」・・・「条件1か条件2が成り立つ」というような場合「条件1 or 条件2」のように書く。

「not」・・・条件の否定をすることができる。

~~~python
a = 20
# aが10以上30以下の場合に「aは10以上30以下です」と出力してください
if 10 <= a <= 30:
    print('xは10以上30以下です')
b = 60
# bが10未満または30より大きい場合に「bは10未満または30より大きいです」と出力してください
if b < 10 or b > 30:
    print('bは10未満または30より大きいです')
c = 55
# cが77ではない場合に「cは77ではありません」と出力してください
if not c == 77:
    print('cは77ではありません')
~~~

######input(変数)
「input」を用いると、コードを実行した際にコンソールに文字を入力できるようになり、その入力された値を受け取ることができる
「変数 = input('コンソールに表示したい文字列')」コンソールに入力された値が変数に代入される。

~~~python
banana_price = 200

# inputを用いて入力を受け取り、変数input_countに代入してください
input_count = input('購入するバナナの個数を入力してください：')

# input_countを数値として代入してください（代入する時に数値の形を指定しないとエラーになる）

count = int(input_count)
total_price = banana_price * count

print('購入するバナナの個数は' + str(count) + '個です')
print('支払い金額は' + str(total_price) + '円です')
~~~

######リスト
PHPでいう配列みたいなもの
リストは[要素1, 要素2, ...]のように作り、それぞれの値のことを要素と呼ぶ。
複数の文字列や複数の数値を1つのものとして管理することができる。
取得する場合はリスト[インデックス番号]とすること。

~~~python
# 変数fruitsに、複数の文字列を要素に持つリストを代入してください
fruits = ['apple', 'banana', 'orange', 'melon']

# インデックス番号が0の要素を出力してください
print(fruits[0])

# インデックス番号が2の要素を文字列と連結して出力してください(リストを使う場合にはint型やstr型の指定はない)

print('果物は' + fruits[4] +'が好きです')
~~~

######リストの追加や更新

更新・・・「リスト[インデックス番号] = 値」で指定したインデックス番号の要素を更新できる。
追加・・・「リスト.append(値)」で定義されているリストの末尾に新たな要素を追加する。

~~~python
fruits = ['apple', 'banana', 'orange','melon']

# リストの末尾に文字列「strawberry」を追加してください
fruits.append('strawberry')

# 変数fruitsに代入したリストを出力してください
print(fruits)

# インデックス番号が3の要素を文字列「cherry」に更新してください
fruits[3] = 'cherry'

# インデックス番号が3の要素を出力してください
print(fruits[3])
~~~

######for文

「for 変数名 in リスト:」と書くことで、リストの要素の数だけ、処理を繰り返すことができる。

~~~python

fruits = ['apple', 'banana', 'orange','melon']

# for文を用いてリストの要素を1つずつ取り出し、出力してください
for fruit in fruits:
    print('果物は'+ fruit +'が好きです')
~~~

######辞書
PHPでいう連想配列みないなもの

辞書は{キー1: 値1, キー2: 値2, …}のように作り、
取り出す場合には対応する「キー」を用いて辞書名[キー]のように書く。

~~~python
# 変数fruitsに辞書を代入してください
fruits = {'orange':'オレンジ','melon':'メロン'}

# 辞書fruitsのキー「melon」に対応する値を出力してください
print(fruits['melon'])

# 辞書fruitsを用いて、「melonは◯◯という意味です」となるように出力してください

print('melonは'+fruits['melon']+'という意味です')
~~~

######辞書の更新、追加
辞書名[キー名] = 値と書くことで要素の更新をすることができる。
「辞書名[新しいキー名] = 値」と書くことで辞書に新しい要素を追加することができる。

~~~python
fruits = {'apple': 150, 'banana': 250, 'melon': 450}

# キー「banana」の値を数値「350」に更新してください
fruits['banana'] = 350

# キーが「cherry」、値が数値の「550」の要素を辞書fruitsに追加してください
fruits['cherry'] = 550

# fruitsの値を出力してください
print(fruits)
~~~

######辞書のfor文
PHPで言う連想配列をfor文で出力する感覚
「for 変数名 in 辞書:」と書くことで繰り返し処理をすることができる。
キー名を用いて値を取り出す。


~~~python
fruits = {'apple': 'りんご', 'melon': 'メロン', 'orange': 'オレンジ'}

# for文を用いて、辞書のキーを1つずつ取り出し、繰り返しの中で「英語で◯◯は△△という意味です」と出力させてください
for fruit_key in fruits:
    print('英語で' + fruit_key + 'は' + fruits[fruit_key] + 'という意味です')
~~~

######while文
while文とは「ある条件に当てはまる間、処理を繰り返す」処理を行う。

~~~python
y = 20

# while文を用いて、「変数xが0より大きい」間、繰り返される繰り返し処理を作ってください
while y > 0:
    # 変数xを出力してください
    print(x)
    # 変数xから1引いてください(この記述がないと無限ループする)
    x = x - 1 
~~~

######break

breakを使うと繰り返し処理を終了させることができる。
「:」コロンの付け忘れに注意が必要

~~~python

numbers = [1, 2, 3, 4, 5]
for number in numbers:
    print(number)
    # 変数numberが4のとき「4が見つかったので処理を終了します」と出力した後、処理を終了させてください
    if number == 4:
        print('4が見つかったので処理を終了します')
        break
~~~

######continue


その周の処理だけをスキップすることができる。
if文やwhile文でも同じように使うことができる。


~~~python
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for number in numbers:
    # 変数numberの値が2の倍数のとき、繰り返し処理をスキップしてください(2の倍数 = 2で割れると書く)
    if number % 2 ==  0:
        continue
    
    print(number)
~~~