Python3 エンジニア認定基礎試験の演習問題を解いてみましょう。
今回は演算子、文字列操作、フォーマット指定子について扱います。
この記事はシリーズ記事です。全シリーズはこちらからご覧になれます。
(Python の基礎、操作方法等の記事⼀覧は こちら)
第1問 計算の優先順位
下記のコードを実行した結果として、出力される正しいものはどれか。
num = 3**2+2*3
print(num)
① : 14
② : 15
③ : 33
④ : 243
◆正解◆
② : 15
Pythonにおける算術演算の優先順位を考慮して計算する必要があります。
〇算術演算の優先順位
括弧 > べき乗(**) > 乗算(*)、除算(/) > 加算(+)、減算(-)
① (3×2)+(2x2x2)=14 … NG
② (3×3)+(2×3) = 15 … OK
③ ((3×3)+2)x3 = 33 … NG
④ 3^(2+2)*3 = 243 … NG
第2問 スライス位置
次のコードを実行した時、出力される正しいものはどれか。
word = "PythonTest"
print(f"{word[2:6]}")
① : ts
② : ytho
③ : ython
④ : thon
◆正解◆
④ : thon
スライスは、シーケンス(リスト、タプル、文字列など)のインデックスを指定し、指定した範囲の要素を取り出すことのできる機能です。[ 開始位置 : 終了位置 : 増分 ]の形で指定しますが、省略することも可能です。終了位置の要素は取得しないことに注意してください。
今回の指定は[2:6]の為、下記の図のインデックス2~6のまでの要素を取得します。
P y t h o n T e s t
———————-
0 1 2 3 4 5 6 7 8 9 10
① : ts … word[2::6]による出力([::6]は6ステップ先を取得する指示、word[2]=tの次はword[8]=sを取得)
② : ytho … word[1:5] による出力
③ : ython … word[1:6]による出力
④ : thon … word[2:6]による出力
第3問 フォーマット指定子①
次のコードを実行した時、エラーが発生して出力できないものはどれか。
num =13/3
print(num:.3f)
print(f"{num:.3f}")
print("{:.3f}".format(num))
print("%.3f" % num)
① : print(num:.3f)
② : print(f”{num:.3f}”)
③ : print(“{:.3f}”.format(num))
④ : print(“%.3f” % num)
◆正解◆
① : print(num:.3f)
print関数は直接数値のフォーマット指定子を受け入れません。
① : print(num:.3f) … NG
② : print(f”{num:.3f}”) … f文字列(f-string)
③ : print(“{:.3f}”.format(num)) … str.format()メソッド
④ : print(“%.3f” % num) … %演算子
第4問 フォーマット指定子②
次のコードを実行した時、「1010」が出力される行はどれか。
num = 10
print(num*2)
print(num*num)
print(f"{num:b}")
print(f"{num:x}")
① : print(num*2)
② : print(num*num)
③ : print(f”{num:b}”)
④ : print(f”{num:x}”)
◆正解◆
③ : print(f”{num:b}”)
f文字列(f-string)を利用して、2進数フォーマット指定子「b」を適用しています。
① : print(num*2) … num x 2 = 10×2 =20
② : print(num*num) … num x num = 10×10 = 100
③ : print(f”{num:b}”) … numを2進数で出力、10(10進数)⇒1010(2進数)
④ : print(f”{num:x}”) … numを16進数で出力、10(10進数)⇒A(16進数)
※変数の中に文字列として”10”が入っていた場合、(num*2)の結果は「1010」が表示されます。今回は数値として10が入っているため、「20」が表示されます。
第5問 構文エラー
次のコードを実行した場合に発生するエラーはどれか。
print("Hello, world!')
① : 構文エラー
② : 参照エラー
③ : 実行時エラー
④ : インデントエラー
◆正解◆
① : 構文エラー
文字列を閉じるクオーテーションが初めと終わりで異なります。
その為、構文エラー(SyntaxError)が発生します。
コメント