Pythonエンジニア認定基礎試験模試の復習
Pythonエンジニア認定基礎試験の模試、DIVE INTO EXAM の復習。
わからなかった問題の中から、特にこれはアウトプットしておきたい! と思ったものについて書いていく。
for ~ in ... と if の組み合わせ
以下のプログラムをインタープリタにて実行した際の出力結果を選びなさい。
[(x, y) for x in [0,1,2] for y in [1,2,3] if x != y]
正解:[(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 1), (2, 3)]
私の回答は忘れた……。
(x, y)について、
x にリスト内の[0, 1, 2] が順に入っていく。
y にもリスト内の[1, 2, 3] が順に入っていく。
ただし、x != y (つまり x と y が等しくない)のとき。
ここまではわかったけど、どんな順番で組み合わせられていくのかがわからなかった。
答えを見ると、
まず、 x が 0のときの y との組み合わせが全て試される。
次に、x が 1 のときの y との組み合わせが全て試される。
次に、x 2 のときの y との組み合わせが全て試される。
ただし、x の値と y の値が等しくならない組み合わせにする。
という風になっている。
一つ目を固定して、二つ目の組み合わせを変えていく。
組み合わせは( x, y) というタプルの形になっていて、全体は [ ] で囲われたリストとして出力される。
数値演算子 //
pythonインタープリタにて以下のように入力した場合の出力結果として正しいものを選びなさい。
25//7
正解:3
これは、数値演算子「//」の問題。
「//」を使うと、割り算をしたときの整数部分だけ出力される。
「余り」の部分は出力されない。
ちなみに、余りだけ出力するには「%」を使う。
小数点まで普通に計算するには「/」を使う。
数値演算子 **
以下のプログラムを実行した際の出力結果を選びなさい。
print(5 ** 2 + 4)
正解:29
「 x ** n 」
というのはつまり
「 x を n乗する」
ということ。
数学的には「べき乗」というらしい。
* 一個だけなら普通に掛け算。
これも知っていれば普通に解ける問題
お疲れさまでした!
for ~ in... と if の組み合わせは、やや複雑だけど、順を追って考えれば大丈夫。
「//」と「/」の違いとか、「**」と「*」の違いについても確認できた。
明日も頑張ろう!