Python3 エンジニア認定基礎試験の演習問題を解いてみましょう。
今回はif文・for文・while文について扱います。
この記事はシリーズ記事です。全シリーズはこちらからご覧になれます。
(Python の基礎、操作方法等の記事⼀覧は こちら)
第1問 if文
下記のコードを実行した結果として、正しいものを選択してください。
num = 10
if num < 10:
print ("num < 10")
elif num > 10:
print ("num > 10")
elif 5 < num < 15:
print ("5 < num < 15")
elif num == 10:
print ("num == 10")
else:
print("ERROR")
① : num < 10
② : num > 10
③ : 5 < num < 15
④ : num == 10
◆正解◆
③ : 5 < num < 15
if文の判定は上から順番に行います。今回は「num=10」の判定をする前に「5 < num < 15」の判定が実施されTrueとなる為、「5 < num < 15」が出力されます。不等号( < , > )は比較対象の数値を含まない為、選択肢➀と②は判定の際に条件式がFalseとなります。
第2問 while文
下記のコードを実行した結果として、正しいものを選択してください。
x = 5
while x > 0:
if x % 2 == 0:
print(x, end=' ')
x -= 1
① : 4 2 0
② : 4 2
③ : 5 4 3 2 1
④ : 5 3 1
◆正解◆
② : 4 2
while文の条件式は「xが0より大きい間(x > 0)」となっています。また、whileブロックを1週するたびにxの値が-1される為、x=5からx=1の間まで繰り返されます。
if文の条件式はxの値が偶数の時のみTrueとなり、該当のxの値をprintで表示します。今回は5~1の間の偶数が表示される為、正解は②の「42」となります。
第3問 for文
下記のコードを実行した結果、「0 1 2 3 4」と出力された。
コード1行目の空欄①に入る記述として正しいものを選択してください。
for i in range( ➀ ):
print(i, end=' ')
① : 4
② : 5
③ : 0, 4
④ : 1, 5
◆正解◆
② : 5
range関数は引数をひとつ指定した場合、0から引数で指定した数値の直前までの数列を生成します。引数をふたつ指定した場合は、第一引数を開始値、第二引数を終了値とした数列を生成します。
問題はrange関数で生成した数列を順に表示するプログラムです。選択肢➀と③の場合は「0,1,2,3」を、選択肢④の場合は「1,2,3,4」の数列を生成するため不正解となります。
第4問 複合問題①
下記のコードを実行した結果、「4」が出力されました。
コード4行目の空欄①に入る記述として正しいものを選択してください。
numbers = [1, 2, 3, 4, 5, 6]
for i in numbers:
if i == 4:
➀
print(i)
① : return
② : continue
③ : break
④ : skip
◆正解◆
③ : break
for文やwhile文を途中で中断し、ループを終了させるに場合はbreak文を使用します。
break文が実行されると、直前のループ処理から抜け出し、その次の処理へと移行します。
第5問 複合問題②
下記のコードを実行した結果として、正しいものを選択してください。
words = ['Cat', 'Dolphin', 'Kangaroo']
for w in words[:]:
if len(w) > 7:
words.insert(0, w)
print(words)
① : [‘Cat’, ‘Dolphin’, ‘Kangaroo’]
② : [‘Kangaroo’, ‘Cat’, ‘Dolphin’]
③ : [‘Kangaroo’, ‘Cat’, ‘Dolphin’, ‘Kangaroo’]
④ : [‘Cat’, ‘Dolphin’]
◆正解◆
③ : [‘Kangaroo’, ‘Cat’, ‘Dolphin’, ‘Kangaroo’]
for文では変数wordsに入ったリストの要素をひとつずつ変数wに渡しています。
「words[ : ]」のように、シーケンス(リスト、タプル、文字列など)に対して「 [ : ] 」のようにスライスを実行すると、シーケンスのコピーが生成されます。
insertメソッドはリストの指定位置に要素を追加(挿入)する際に使用します。
今回の場合、if len(w) > 7の時に実行されるwords.insert(0, w)は「文字列の長さ(len(w))が7より大きい時、リストの先頭(0)に文字列(w)を挿入する」という処理となります。よって、条件に当てはまる’Kangaroo’がリストの先頭に挿入されます。
第6問 複合問題③
下記のコードを実行した結果、出力は「[4, 9]」であった。コード2行目の空欄①に入る記述として正しいものを選択してください。
numbers = [1, 2, 3]
result = [n * n for n in numbers ➀ n > 1]
print(result)
① : if
② : for
③ : while
④ : and
◆正解◆
① : if
リスト内包表記で条件を付け加えるにはifを使用します。この場合、n > 1という条件に合致するのは2と3となりますので、これらの値を二乗したリストが出力されます。
コメント