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
Author And Source
この問題について(100日後にエンジニアになるキミ - 31日目 - Python - Python演習2), 我々は、より多くの情報をここで見つけました https://qiita.com/otupy/items/8b7436e4df68c6c94fb1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .