100日後にエンジニアになるキミ - 31日目 - Python - Python演習2

本日はPython言語の演習です。

昨日までのはこちら

[100日後にエンジニアになるキミ - 30日目 - Python - Python言語の基礎6](https://qiita.com/otupy/items/d24fbfc04c72db634809)



## 基礎演習2

[![表示されなかったらすみません](https://img.youtube.com/vi/8eERnePFoQY/0.jpg)](https://youtu.be/8eERnePFoQY)

復習をしながら問題を解いてきましょう。！！

ここまででやったこととしては・・
`制御文`や`内包表記`、各種`組み込み関数`や
`リスト`などの`データ型`についてです。

もしわからなければ、今までの講義の動画をもう一度見てみましょう。

### 基礎演習問題1:
`リスト型の変数`を宣言してみよう(要素は任意で3つ以上)

### 基礎演習問題2:
`文字列型のキー`と`数値の値`を持つ
`辞書型の変数`を作成してみよう(要素は任意で3つ以上)。

### 基礎演習問題3:
`辞書型の変数`を作成し、`要素(キー：値)`を追加してみよう

### 基礎演習問題4:
`IF - ELSE文`を用いた処理を作成しよう

条件は整数型の変数`a`の値が
偶数の場合 : 「偶数」とプリント
奇数の場合 : 「奇数」とプリント

### 基礎演習問題5:
`for`文で `enumerate`関数と`range`関数を用いて
その２つの値を表示`print`させよう。
`range`関数の引数は`10`とする。

### 基礎演習問題6:
`リスト型の変数`に`3つの整数値`を入れて、その最大値を出力する。

### 基礎演習問題7:
次の文章
`「浦和、南浦和、北浦和、東浦和、西浦和、武蔵浦和、中浦和、浦和」`

これを`、`で分割してキーとして`辞書型の変数`に格納したい。
値は空文字` `とする。

### 基礎演習問題8:
`無駄`を`10個`要素にもつ`リスト型`を作成したい。
`内包表記`を使ってうまく書けないだろうか？

### 基礎演習問題9:
九九は１から９までの数字同士を掛け合わせた結果になる。
これを`for`文を用いて表示してみよう。
なお、`文字`として表示させることとし、`桁`も揃えよう。

### 基礎演習問題10:
第９問、これを`内包表記`で`１行`でうまく書くことはできないだろうか？
色々な書き方があると思うので試してみよう。

すぐに答えが出ない人は、動画を止めて考えてみましょう。

コツとしては何を入力したら、どう計算されて、どう出力されるのか
それを考えながら書いてみましょう。

答えはこの下に





## 回答

### 基礎演習問題1:回答
`リスト型の変数`を宣言してみよう(要素は任意で3つ以上)

```python
# リストは[]囲んで定義する
a = [1,2,3,4,5]
```

### 基礎演習問題2:回答
`文字列型のキー`と`数値の値`を持つ
`辞書型の変数`を作成してみよう(要素は任意で3つ以上)。

```python
# 辞書型は{} 波カッコで定義する
d = {'a':1 , 'b':2 , 'c':3}
```

### 基礎演習問題3:回答
`辞書型`の変数を作成し、`要素(キー：値)`を追加してみよう

```python
d = {'a':1 , 'b':2 , 'c':3}
# 辞書の要素の追加は変数名[キー] = 値
d['d'] = 4
print(d)
```
{'c': 3, 'd': 4, 'a': 1, 'b': 2}


### 基礎演習問題4:回答
`IF - ELSE`文を用いた処理を作成しよう

条件は整数型の変数`a`の値が
偶数の場合 : 「偶数」とプリント
奇数の場合 : 「奇数」とプリント

```python
a = 10
if a%2==0:
    print('偶数')
else:
    print('奇数')
```
偶数


### 基礎演習問題5:回答

`for`文で `enumerate`関数と`range`関数を用いて
その２つの値を表示`print`させよう。
`range`関数の引数は10とする。

```python
# enumerate の結果を１つの変数に格納する。
for i in enumerate(range(10)):
    print(i)
```
(0, 0)
(1, 1)
(2, 2)
(3, 3)
(4, 4)
(5, 5)
(6, 6)
(7, 7)
(8, 8)
(9, 9)

```python
# enumerate の結果を2つの変数に格納する。
for i,r in enumerate(range(10)):
    print(i , r)
```
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9

### 基礎演習問題6:回答

`リスト型の変数`に3つの整数値を入れて、その最大値を出力する。

```python
a = [10,20,30]
print(max(a))
```
30


### 基礎演習問題7:回答
次の文章
`「浦和、南浦和、北浦和、東浦和、西浦和、武蔵浦和、中浦和、浦和」`

これを`、`で分割してキーとして`辞書型の変数`に格納したい。
値は空文字` `とする。

```python
a = '浦和、南浦和、北浦和、東浦和、西浦和、武蔵浦和、中浦和、浦和'
# split関数で　、　で区切る。
b = a.split('、')
# 内包表記で辞書型にする
d = {k:'' for k in b}
print(d)
```
{'武蔵浦和': '', '中浦和': '', '東浦和': '', '浦和': '', '南浦和': '', '北浦和': '', '西浦和': ''}

```python
a = '浦和、南浦和、北浦和、東浦和、西浦和、武蔵浦和、中浦和、浦和'
# split関数で　、　で区切る。
b = a.split('、')
# 内包表記を使わ無い場合
d = {}
for k in b:
    d[k]=''
print(d)
```
{'武蔵浦和': '', '中浦和': '', '東浦和': '', '浦和': '', '南浦和': '', '北浦和': '', '西浦和': ''}

### 基礎演習問題8:回答
`無駄`を10個要素にもつ`リスト型`を作成したい。
`内包表記`を使ってうまく書けないだろうか？

```python
muda = ['無駄' for i in range(10)]
print(muda)
```
['無駄', '無駄', '無駄', '無駄', '無駄', '無駄', '無駄', '無駄', '無駄', '無駄']

### 基礎演習問題9:回答
九九は１から９までの数字同士を掛け合わせた結果になる。
これを`for`文を用いて表示してみよう。
なお、`文字`として表示させることとし、`桁`も揃えよう。

```python
for i in range(1,10):
    for j in range(1,10):
        # 2桁表記にフォーマットする , 改行コードをなくす
        print('{:02}\t'.format(i*j), end='')
    print() # 改行のみを行う
```
01 02 03 04 05 06 07 08 09
02 04 06 08 10 12 14 16 18
03 06 09 12 15 18 21 24 27
04 08 12 16 20 24 28 32 36
05 10 15 20 25 30 35 40 45
06 12 18 24 30 36 42 48 54
07 14 21 28 35 42 49 56 63
08 16 24 32 40 48 56 64 72
09 18 27 36 45 54 63 72 81

### 基礎演習問題10:回答
第９問、これを`内包表記`で`１行`でうまく書くことはできないだろうか？
色々な書き方があると思うので試してみよう。

```python
# １段分の文字列を9つ持つリスト , 再度 join関数を使って　リストを文字に、改行で連結
print('\n'.join([''.join(['{:02}\t'.format(i*j) for i in range(1,10) ])for j in range(1,10)]))
```
01 02 03 04 05 06 07 08 09
02 04 06 08 10 12 14 16 18
03 06 09 12 15 18 21 24 27
04 08 12 16 20 24 28 32 36
05 10 15 20 25 30 35 40 45
06 12 18 24 30 36 42 48 54
07 14 21 28 35 42 49 56 63
08 16 24 32 40 48 56 64 72
09 18 27 36 45 54 63 72 81





## まとめ

さて基礎演習はいかがだったでしょうか？
処理を１つ１つ追いながらコードを書くことで、
問題が解けるようになっていくのではないかと思います。

仕事などで九九を使うことはないと思いますが
プログラムを組み立ててゆくことを覚えるのには
最適な題材です。

上記で紹介した解法以外にも書き方はあると思いますので
色々な解き方を試して見てください。

分からなかった方は、`文字列`や`フォーマット`の回、`繰り返し`の回などを
参考にしていただいて、理解を深めていただければ
次第に解けるようになるかと思います。

君がエンジニアになるまであと69日

## 作者の情報

乙pyのHP：
http://www.otupy.net/

Youtube：
https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw

Twitter：
https://twitter.com/otupython