初心者のためのPython基礎文法

　　

#はじめに#
Pythonに触る機会があったので、自分の復習も兼ねてPythonの基礎文法を簡単にまとめてみました！


#目次#
[1.出力](#1出力)
[2.変数](#2変数)
[3.文字列の結合](#3文字列の結合)
[4.if文](#4if文)
[5.for文](#5for文)
[6.while文](#6while文)
[7.forとwhileでbreak, continue](#7forとwhileでbreak-continue)
[8.list](#8list)
[9.辞書](#9辞書)



#1.出力#
print( )で( )の中の値を出力することができます。
( ' )シングルコーテーションか( " )ダブルコーテーションで囲うことで文字列が表示されます

```python

print('123')
>>>123
print("123")
>>>123
```
数値はシングルコーテーションなどで囲う必要はありません。

```python
print(123)
>>>123
```
Pythonのプログラムでは123は数値、'123'は文字列として扱います。
たとえば数値の( 1 + 1 )は2になりますが、文字列の( '1' + '1' )は
文字列の結合になるため'11'となります。

```python
print(1+1)
>>>2
print('1'+'1')
>>>11
```


#2.変数#
**変数名 = 値**で変数に値を代入できます。
値をシングルコーテーションなどで囲った場合はstr。整数の数値を入れた場合はint扱いとなります。
また、Pythonで変数の型を確認したい場合はtype関数を使用します

```python
mystr = 'hello'
print(type(mystr))
>>> <type'str'>

myint = 123
print(type(myint))
>>> <type'int'>
```
print( )に変数名を入れることで変数の値を呼び出すことができます。

```python
mystr = 'hello'
print(mystr)
>>>hello
```


#3.文字列の結合#
( + )記号で文字列の結合ができます。

```python
mystr = 'hello'
print('こんにちは' + 'Python')
print(mystr + 'Python')
>>>こんにちはPython
>>>helloPython
```
文字列と数値を結合する際、そのままの状態で結合するとエラーが出てしまいます。

```python
myint = 123
print('数字は' + myint)
>>>TypeError:can only concatenate str (not "int") to str
```
str( )関数で型の変換をすることでint型とstr型を結合して出力することが可能です。

```python
myint = 123
print('数字は' + str(myint))
>>>数字は123
```
また、( , )を使用することでも文字列と数値の結合をすることは可能です。その際、結合した間に空白が入ってしまうため、print( )オプションのsepで区切り文字の指定をする必要があります。

```python
myint = 123
print('数字は' , myint)
>>>数字は 123

myint = 123
print('数字は' , myint , sep='')
>>>数字は123
```


#4.if文#
単純なif文はこうなります。

```
if 条件式:
    処理１
    処理２
      処理３　←エラーになる
```
**※注意点**
・ifの行の最後に( : )コロンをつける
・処理のインデントを揃える
インデントがずれた文を書いてしまうとエラーとなります。

**elif**を使用することで複数の条件を指定できます。

```
if 1番目の条件:
    1番目の条件が成り立つ場合の処理
elif 2番目の条件:
    2番目の条件が成り立つ場合の処理
elif 3番目の条件:
    3番目の条件が成り立つ場合の処理
else:
    どの条件も成り立たない場合の処理
```


#5.for文#
for文の構文はこうなります。

```python
for 変数 in データの集まり:
    処理
```

for文はデータの集まりから一つずつデータを取り出すという流れになります。
たとえば、'Hello'という文字列から一文字ずつ取り出して表示する処理はこのようになります。

```python
for char in 'Hello':
    print(char)
>>>H
>>>e
>>>l
>>>l
>>>o
```
**range関数**を使用することで指定回数分ループする処理が書けます。

```python
for i in range(3):
    print(i)
>>>0
>>>1
>>>2
```
上記の場合 i = 0 から３回ループする処理になります。
i = 1 からループさせたい場合はループの範囲を指定してあげます。

```python
for i in range(1,3):
    print(i)
>>>1
>>>2
>>>3

#1~100までループしたい場合
for i in range(1,100)
    print(i)
```
###・リストのループ処理###
リストについては**[こちら](#8list)**で詳しく説明します。

for文のデータの集まりの部分にリストの変数を入れることでリストの中身を一つずつ取り出すことができます。

```python
list = ['item1', 'item2', 'item3']
for item in list:
    print(item)
>>>item1
>>>item2
>>>item3
```
上記のコードは変数のitemにリストの中身を一つずつ代入して表示しています。


#6.While文#
while文はfor文と同様の繰り返し処理ですが、for文はデータの集まりの情報を一つずつ確認して最後の要素まで処理をするのに対し、while文は条件が成立する間、処理を繰り返します。

```python
#valが4になるまで val = 0 に1を足していきます。
val = 0
while val < 4:
    val += 1
    print(val)
print('valは' + str(val))
>>>1
>>>2
>>>3
>>>4
>>>valは4
```


###・forとwhileの使い分け###
>・繰り返し回数が決まっている場合はfor文
>・繰り返す回数はわからないが、終了条件が明確な場合はwhile文

#7.forとwhileでbreak, continue
###・break文###
breakを使用することで、繰り返し処理を強制的に終了させることができます。

```python
# for文でbreak
list = [1,2,3,4,5]
for i in list:
    if i == 3:
        break
    print(i)
>>>1
>>>2
>>>breakで繰り返し処理終了

# while文でbreak
val = 1 
while val < 10:
    if val == 3:
        break 
    print(val)
    val += 1
>>>1
>>>2
>>>breakで繰り返し処理終了
```

###・continue文###
continue文は、処理をスキップしたい際に使用します。
スキップするだけなので処理は止まらずに継続します。

```python
# for文でcontinue
list = [1,2,3,4,5]
for i in list:
    if i == 2:
        continue
    print(i)
>>>1
>>>3
>>>4
>>>5

# while文でcontinue
val = 0
while val < 5:
    val += 1
    if val == 2:
        continue
    print(val)
>>>1
>>>3
>>>4
>>>5
```
繰り返し処理内のif文の条件のときにcontinueされるため、2の出力の部分で処理がスキップされています。

#8.list#
リストとは[ ]の中に( , )カンマ区切りで要素を並べたものです。
リスト作成時に値を変数で入れることも可能です。

```python
list = ['a','b','c']
print(list)
>>>['a','b','c']

a = 10
b = 20
c = 30
list = [a,b,c]
print(list)
>>>[10,20,30]
```
list内の要素は**リスト名[ index ]**で指定位置の要素を参照できます。

```python
list = ['a','b','c']
#先頭の要素
print(list[0])
#２番目の要素
print(list[2])
>>>a
>>>c
```

###・リストへの値の追加###
**リスト名.append( 追加要素 )**でリストの末尾に要素を追加することができます。

```python
list = ['a','b','c']
list.append('d')
print(list)
>>>['a','b','c','d']
```
**リスト名.insert( 位置 , 追加要素 )**でリストの指定の位置に要素を追加できます。

```python
list = ['a','b','c']
list.insert(1, 'd')
print(list)
>>>['a','d','b','c']
```

###・リストからの値の削除###
**リスト名.pop( )**でリストの末尾の要素を削除できます。

```python
list = ['a','b','c']
list.pop()
print(list)
>>>['a','b']
```
**リスト名.pop( index )**でリストの指定位置の要素を削除できます。

```python
list = ['a','b','c']
list.pop(1)
print(list)
>>>['a','c']
```

###・リストの値の更新###
**リスト名[ index ] = 変更したい値**でリストの指定位置の要素を更新できます。

```python
list = ['a','b','c']
list[1] = 'x'
print(list)
>>>['a','x','c']
```

#9.辞書#
辞書とはキーとそれに対応する値を持つデータです。
辞書オブジェクトは、 {キー: 値 , キー: 値 , ...} のようにキーと値をコロン( : )で結合し、カンマ( , )で複数の要素を区切ります。
**辞書名[ キー ]**で辞書のキーに対応する値を取り出すことができます。

```python
dict = { 'apple':1, 'orange':2, 'banana':3 }
print(dict['apple'])
>>>1
```
###・辞書の値の更新###
**辞書名[ キー ] = 更新したい値**で指定キーの値を更新できます。

```python
dict = { 'apple':1, 'orange':2, 'banana':3 }
dict['apple'] = 5
print(dict)
>>>{ 'apple':5, 'orange':2, 'banana':3 }
```
###・辞書の値の削除###
**del 辞書名[ キー ]**で指定のキーと値を削除できます。

```python
dict = { 'apple':1, 'orange':2, 'banana':3 }
del dict['apple'] 
print(dict)
>>>{'orange':2, 'banana':3 }
```
###・キーの存在確認###
**in演算子**を使用することで辞書に指定のキーが存在するか確認できます。

```python
dict = { 'apple':1, 'orange':2, 'banana':3 }
if 'apple' in dict:
    print('存在します')
else:
    print('存在しません')
>>>存在します
```
**辞書名.get( キー , キーがない場合の処理 )**を使用するとif文が不要になります。

```python
#キーが存在する場合
dict = { 'apple':1, 'orange':2, 'banana':3 }
print('appleは', dict.get('apple', '存在しません'), sep='')
>>>appleは1

#キーが存在しない場合
dict = { 'apple':1, 'orange':2, 'banana':3 }
print('fruitは', dict.get('fruit', '存在しません'), sep='')
>>>fruitは存在しません
```





#参考リンク#
https://www.atmarkit.co.jp/ait/articles/1904/02/news024.html
https://docs.python.org/ja/3/tutorial/index.html
https://www.sejuku.net/blog/24122
http://programming-study.com/technology/python-for/