超初心者向け Pythonコードの書き方 パイソンの基礎を学ぶ

Progateというサイトで、Pythonの基礎を学ぶことができます。とてもわかりやすい説明で、作業しながら進んでいくのでとても楽しく勉強できます。
この記事では、備忘録的に、辞書的にProgateで学んだことをメモしていきたいと思います。
ぜひ勉強や、復習、などに活用ください。

1. [文字列を出力する](#文字列を出力する)
1. [文字列は、クォーテーションで囲む](#文字列は、クォーテーションで囲む)
1. [コメントの書き方](#コメントの書き方)
1. [数値の書き方](#数値の書き方)
1. [変数について](#変数について)
1. [変数名の付け方](#変数名の付け方)
1. [変数の値を更新](#変数の値を更新)
1. [文字列の連結](#文字列の連結)
1. [データ型](#データ型)
1. [データ型の違い](#データ型の違い)
1. [型変換`str`](#型変換`str`)
1. [型変換`int`](#型変換`int`)
1. [条件分岐`if`](#条件分岐`if`)
1. [インデント](#インデント)

# Pythonの基礎を学ぶ

## 文字列を出力する
`print`を使うと文字を出力することができます。
printの後ろの`()`の中に書いた文字が`コンソール`という画面に出力されます。

```python:コード
print('Hello World')
```

```text:出力結果
Hello World
```

## 文字列は、クォーテーションで囲む
文字列はシングルクォーテーション`'`または、ダブルクォーテーション`"`で囲む必要があります。

```python:コード
print('Hello World')
print("Hello World")
```

```text:出力結果
Hello World
Hello World
```

結果は、どちらのクォーテーションを使っても変わりません。

## コメントの書き方
`#`を使うとコメントを書くことができます。`#`を書いた行の末尾までが、コメントとみなされ、コードを実行する際に無視されます。

```python:コード
# この行はコメントです。
print('Hello World')  # この部分(#から行末まで)もコメントです。
```

```text:出力結果
Hello World
```

## 数値の書き方
数値は文字列と違って、クォーテーションで囲みません。
クォーテーションで囲むと文字列として認識されます。

```python:コード
print(3 + 2)
print('3 + 2')
```

```text:出力結果
5
3 + 2
```

四則演算や、%で割り算のあまりを計算することもできます。

```python:コード
print(3 + 2)
print(3 - 2)
# 3x2
print(3 * 2)
# 3÷2
print(3 / 2)
# あまりを求める
print(3 % 2)
```

```text:出力結果
5
1
6
1.5
1
```

## 変数について
変数は`変数名 = 値`で定義します。変数名はクォーテーションで囲む必要はありません。
プログラミングの`=`は`等しい`という意味ではなく、`右辺を左辺`に代入するという意味になります。
```python:script.py
name = 'John'
number = 7

print(name)
print('name')
print(number)
```

```text:出力結果
John
name
7
```

`print(name)`とすると、変数`name`の値を出力することができます。
`print('name')`のようにクォーテーションで囲ってしまうと、
`name`が変数ではなく文字列として認識され、`name`とそのまま出力されてしまいます。

## 変数名の付け方
変数名は自由につけることができますが、`1name`のように先頭文字を数字にすることはできません。
`user_name`のように2語以上の変数名を使うときは、単語と単語の間をアンダーバー`_` で区切りましょう。
また`name`のように英単語を使い、`namae`, `名前`のようにローマ字や日本語は避けましょう。

```python:使用例
orange_count = 3
orange_price = 100
total_price = orange_count * orange_price
print(total_price)
```

```text:出力結果
300
```

## 変数の値を更新

`変数名 = 新しい値`とすることで変数の値を上書きすることができます。
```python:script.py
x = 3
print(x)
x = 2
print(x)
```

```text:出力結果
3
2
```

すでに定義された変数に数値を足すことができます。また変数自身に数値を足したものを再び同じ変数に代入することで、値を上書きすることもできます。引き算などのその他の計算でも同様です。

```python:script.py
x = 3
print(x)
x = x + 2
print(x)
```

```text:出力結果
3
5
```

`=>`の左側の計算を右側の計算のように省略して書くこともできます。
これは引き算などその他の計算でも同様です。

```python:script.py
x = x + 3  => x += 3
x = x - 3  => x -= 3
x = x * 3  => x *= 3
x = x / 3  => x /= 3
x = x % 3  => x %= 3
```

## 文字列の連結
`+`記号は、計算だけでなく文字列の連結も行うことができます。
変数と文字列の連結、変数同士の連結をすることもできます。


```python:script.py
print('Hello ' + 'World')
language = Python
print('Hello ' + language)
```

```text:出力結果
Hello World
Hello Python
```

## データ型

`文字列`や`数値`は`データ型`と呼ばれ、さまざまなデータの種類が存在します。
`Hello world` は、`文字列型`、`3` は、`数値型`です。

## データ型の違い
データ型が異なるとコードは異なる動作をします。
```python:script.py
print(5 + 7)
print('5' + '7')
```

```text:出力結果
12
57
```

## 型変換`str`
データ型の異なる文字列型と数値型を連結するとエラーが起きてしまいます。
数値型を文字列型に変換すると、文字列同士の連結として扱われるようになるため、
連結ができるようになります。
データ型を変えることを`型変換`といいます。
数値型を文字列型に変換するには`str`を使います。

```python:script.py
price = 100
print('値段は、' + str(price) + '円です。')
```

```text:出力結果
値段は、100円です。
```

## 型変換`int`
文字列型を数値型に変換したい場合には`int`を用います。

```python:script.py
count = '3'
price = 100
total_price = price * int(count)
print(total_price)
```

```text:出力結果
300
```

## 条件分岐`if`
if文を使うと条件分岐ができます。ifの後に条件式を指定し、その条件が成り立つときに実行する処理を次の行に書きます。
if文の条件部分は`if 条件式 :`のように書きます。 等しい場合は、`X == Y`等しくない場合は、`X !=Y`のように書きます。
```python:script.py
score = 100

if score == 100:
    print('満点です。')
```

```text:出力結果
満点です。
```

## インデント
if文の条件式が成立した時の処理を書くときには、インデント（字下げ）します。条件が成立したときにif文の中の処理が実行されます。
インデントの外は、常に実行されます。
```python:script.py
score = 80

if score == 100:
    print('満点です。')
print('満点ではありません。')
```

```text:出力結果
満点ではありません。
```

if文では他の比較演算子`x > y`, `x < y`, `x >= y`, `x <= y`も使います。

`else`を組み合わせることでif文の条件が`False`のとき、`else`の処理を実行させることができます。
```python:script.py
score == 80
if score == 100:
    print('満点です。')
else:
    print('満点ではありません。')
```

```text:出力結果
満点ではありません。
```

if文で、条件が成り立たなかった場合を複数定義したい場合は、`elif`を使います。

```python:script.py
score == 80
if score == 100:
    print('とても良いです')
elif score >= 70:
    print('良いです')
else:
    print('頑張りましょう')
```

```text:出力結果
良いです
```

`条件1も条件2`も成り立つというような場合の条件式は`and`を使い、`条件1か条件2`が成り立つというような場合の条件式は`or`を使います。

```python:script.py
time = 15
if time > 10 and time < 18:
    print('営業時間です')
time = 10
if time == 10 or time == 22:
    print('10時です')
```
`not`を使うと条件の否定をすることができます。
```python:script.py
time = 15
if not time == 18:
    print('閉店時間ではありません')
```
比較を連結して`and`の条件を続けて書くこともできます。
```python:script.py
time = 15
if 10 < time <18:
    print('営業時間です')
```