Python入門編[その1]

# はじめに
どうもこんにちは．Qiita初記事です．
今回はプログラミング初心者，Python初心者を対象とし，演算子と基礎的な文法が扱えるようになることを目標とします．
また，シリーズを通して最終的にはpythonで大体のことができる(超大雑把)ようになることを目標としています．写経するもよしコピペして動作確認するもよしといった記事にするつもりです．

:::note
なお，私の環境はPython 3.10.10となっていますので，もしこれ以降に示すスクリプトが動かない場合はバージョンを確認してみてください．
ちなみにバージョンを確認するコマンドは以下の通り．
```
python3 -V
```
:::

# 基本構文と演算子，文法
## 演算子について
以下の表に基本的な演算子を示します．

| 演算子 | 意味 | 
|:-----------|------------:|
| +       |和        | 
| -     | 差      | 
| *       | 積        | 
| \/         | 商          | 
| %       | 剰余       | 
| \/\/    | 商の切り捨て     | 
| **    | 累乗     | 

それではこのコマンドを実行してみよう!!!
Pythonを実行するにはテキストエディタ等でファイルの拡張子を **.py** にして保存->実行してみましょう!

``` Python3:Samplecoed1.py
print("10 + 9 = ",10 + 9) #和を出力
print("10 - 5 = ",10 - 9) #差を出力
print("10 * 9 = ",10 * 9) #積を出力
print("10 / 9 = ",10 / 9) #商を出力
print("10 % 9 = ",10 % 9) #剰余を出力
print("10 // 9 = ",10 // 9) #商の切り捨てを出力
print("10 ** 9 = ",10 ** 9) #累乗を出力
```

実行方法はファイルがあるディレクトリまで移動->`python3 filename`で実行できる．

``` cmd:実行結果
hogehoge@MacBook-Pro-3 PythonBeginner1 % python3 samplecode1.py 
10 + 9 =  19
10 - 5 =  1
10 * 9 =  90
10 / 9 =  1.1111111111111112
10 % 9 =  1
10 // 9 =  1
10 ** 9 =  1000000000
```

このスクリプトでは`print`の()で囲まれた部分を画面に出力している．
使用している演算子は上の表の通り．

## 基本文法
「演算子について」でも述べたが画面に何か文字を出力するときは`print()`を用いる．
ここでは`print()`関数の使い方について記す．

`print()`関数は()内の文字列や数字列を出力する．当然のことながらそれらの値が代入された変数の場合でも同様である．また，リストや辞書の要素を指定せずに出力させると全体が出力され，リストや辞書の後ろに`[要素]`をつけることでリストの任意の要素を出力することが可能である．
以下にサンプルコードを示す．なお，出力結果はコメントで示している．

```python:samplecode2
print('this is a pen')
# this is a pen

st = 'this is a apple'
print(st)
# this is a apple

list1 = [0,1,2,3]
print(list1)
# [0,1,2,3]

print(list1[0])
# 0

print(*list1)
# 0 1 2 3

dec = {'a':1,'b':2,'c':3}
print(dec)
# {'a': 1, 'b': 2, 'c': 3}

print(dec['b'])
# 2
```

なお，リスト名の前に`*`をつけるとリストの要素がそれぞれ展開され個別の引数が出力される．
ここで用いているリストと辞書については後々解説をしようと思います．

## 文末を改行なしで出力する
引数`end`に任意の文字を指定するとその文字が改行の代わりに出力される．
例えば連続する文字列を改行なしで出力する場合，空文字として` `` `を指定すれば良い．
以下にこれらのことを活用したサンプルコードを示す．

```python3:samplecode3
print('hoge',end='fuga')
print('moga')
# hogefugamoga

print('apple',end='')
print('mikan')
# applemikan
```

## 複数変数を出力する
`print()`関数に変数，数値や文字列をカンマ区切りで引数として与えるとデフォルトではスペースで区切られて出力される．また，引数で`sep`を指定すると区切り文字を任意の文字に変更することができる．リスト名に*をつけ，個別の引数として出力したときもこれが使える．
また，改行文字を`\n`とすることで値や変数ごとに改行することもできる．
以下にサンプルコードを示す．

```python:samplecode4
i = 100
str = 'this is'
print(str,'apple', i, 0.123, sep='-')
# this is-apple-100-0.123

print(str,'apple', i, 0.123, sep='\n')
# apple
# 100
# 0.123

list2 = [1,2,3,4]

print(*list2, sep='')
# 1234

print(*list2, sep='-')
# 1-2-3-4
```

## 条件分岐処理
Pythonでは条件を判断して分岐処理を行うにはif文を用います．
以下に条件分岐の例を示します．

```
if 条件式1:
    条件式1が真の時に実行する文
    ...
elif 条件式2:
    条件式1が偽で条件式2が真の時に実行する文
    ...
elif 条件式3:
    条件式1及び条件式2が偽で条件式3が真の時に実行する文
    ...
else:
    すべての条件式が偽のときに実行する文
    ...
```

上記の例の通り，ifでは条件式１が「真」なら字下げされた条件式１が真の時に実行する文が実行され，条件式１が「偽」で尚且つ条件式２が「真」の時，字下げされた部分に書かれている命令が実行される．また，どの条件にも当てはまらない時，else:の字下げされた部分に書かれている命令が実行される．
以下にif文を用いたサンプルコードを示します．

```python:samplecode5
x = 10

if x > 5:
    print("xは5より大きいです")
else:
    print("xは5以下です")

# xは5より大きいです

# サンプルコード2: 複数の条件
y = 7

if y < 5:
    print("yは5より小さいです")
elif y == 5:
    print("yはちょうど5です")
else:
    print("yは5より大きいです")
# yは5より大きいです

# サンプルコード3: 複数の条件と論理演算子の組み合わせ
z = 12

if z > 10 and z % 2 == 0:
    print("zは10より大きく、偶数です")
elif z > 10 and z % 2 != 0:
    print("zは10より大きく、奇数です")
else:
    print("zは10以下です")
# zは10より大きく、偶数です
```

ちなみに条件文では論理演算子と組み合わせも可能です．

## 繰り返し処理
pythonで繰り返し処理を行うにはfor文，またはwhile文を用います．
繰り返し処理を用いる際は処理対象や条件に応じてfor文とwhile文を使い分けるようにしましょう．

### for文
for文は、イテラブル（例: リスト、タプル、文字列）の各要素に対して繰り返し処理を行うのに適している．
サンプルコードを以下に示す．

```python:samplecode6
numbers = [1, 2, 3, 4, 5]

for number in numbers:
    print(number)
```

この例ではリストnumbersの各要素が順番に変数numberに代入され、それをprint()関数で表示している．

```python:samplecode6
for i in range(5):
    print(i)
```
range(5)は0から4までの整数を生成し、各値が変数iに代入されて繰り返し処理されます

### while文
whileループは，指定した条件がTrueの間，繰り返し処理を行う．
サンプルコードを以下に示す．
```python:samplecode6
counter = 0

while counter < 5:
    print(counter)
    counter += 1
```

この例では，counterが5未満の間，counterの値を表示し，その後に1ずつ加算する．
また，whileループは条件が満たされる限り続く．
while文を扱う際に注意したいのが，whileループの中で条件が常にTrueである場合，無限ループになる可能性があることである．無限ループを防ぐためには，適切な条件でwhileループを終了させるようにしましょう．

# 最後に
ここまでの構文等は今後pythonの学習を進めていく中で必要不可欠なので理解していくようにしましょう．
また，今回示したサンプルコードは私のGithub(https://github.com/xx-mikusan-xx)
にもありますので参考にしてみてください．
また，この記事が理解できたならば九九表が作れるようになっているはずです．
構文を応用して作ってみましょう．
ではでは〜