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


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

昨日までのはこちら

100日後にエンジニアになるキミ - 30日目 - Python - Python言語の基礎6

基礎演習2

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

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

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

基礎演習問題1:

リスト型の変数を宣言してみよう(要素は任意で3つ以上)

基礎演習問題2:

文字列型のキー数値の値を持つ
辞書型の変数を作成してみよう(要素は任意で3つ以上)。

基礎演習問題3:

辞書型の変数を作成し、要素(キー:値)を追加してみよう

基礎演習問題4:

IF - ELSE文を用いた処理を作成しよう

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

基礎演習問題5:

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

基礎演習問題6:

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

基礎演習問題7:

次の文章
「浦和、南浦和、北浦和、東浦和、西浦和、武蔵浦和、中浦和、浦和」

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

基礎演習問題8:

無駄10個要素にもつリスト型を作成したい。
内包表記を使ってうまく書けないだろうか?

基礎演習問題9:

九九は1から9までの数字同士を掛け合わせた結果になる。
これをfor文を用いて表示してみよう。
なお、文字として表示させることとし、も揃えよう。

基礎演習問題10:

第9問、これを内包表記1行でうまく書くことはできないだろうか?
色々な書き方があると思うので試してみよう。

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

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

答えはこの下に

回答

基礎演習問題1:回答

リスト型の変数を宣言してみよう(要素は任意で3つ以上)

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

基礎演習問題2:回答

文字列型のキー数値の値を持つ
辞書型の変数を作成してみよう(要素は任意で3つ以上)。

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

基礎演習問題3:回答

辞書型の変数を作成し、要素(キー:値)を追加してみよう

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

{'c': 3, 'd': 4, 'a': 1, 'b': 2}

基礎演習問題4:回答

IF - ELSE文を用いた処理を作成しよう

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

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

偶数

基礎演習問題5:回答

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

# enumerate の結果を1つの変数に格納する。
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)

# 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つの整数値を入れて、その最大値を出力する。

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

30

基礎演習問題7:回答

次の文章
「浦和、南浦和、北浦和、東浦和、西浦和、武蔵浦和、中浦和、浦和」

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

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

{'武蔵浦和': '', '中浦和': '', '東浦和': '', '浦和': '', '南浦和': '', '北浦和': '', '西浦和': ''}

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

{'武蔵浦和': '', '中浦和': '', '東浦和': '', '浦和': '', '南浦和': '', '北浦和': '', '西浦和': ''}

基礎演習問題8:回答

無駄を10個要素にもつリスト型を作成したい。
内包表記を使ってうまく書けないだろうか?

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

['無駄', '無駄', '無駄', '無駄', '無駄', '無駄', '無駄', '無駄', '無駄', '無駄']

基礎演習問題9:回答

九九は1から9までの数字同士を掛け合わせた結果になる。
これをfor文を用いて表示してみよう。
なお、文字として表示させることとし、も揃えよう。

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:回答

第9問、これを内包表記1行でうまく書くことはできないだろうか?
色々な書き方があると思うので試してみよう。

# 1段分の文字列を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

まとめ

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

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

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

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

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

作者の情報

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

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

Twitter:
https://twitter.com/otupython