[ Python3 エンジニア認定基礎試験 ] 演習問題③ if文・for文・while文

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となりますので、これらの値を二乗したリストが出力されます。

(Visited 41 times, 1 visits today)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次