0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SuiSuiAdvent Calendar 2023

Day 13

Python Quiz (for newbie)

Last updated at Posted at 2023-12-08

はじめに

Pythonの知見が浅い自分が,X(旧Twitter)を見ていてへぇ~となったQuizを取り上げます.初学者向けです.

問題

Quiz1

>>> a = ~4
>>> b = a + 4
>>> print(b)

Output:
1. -1
2. 1
3. 2
4. -2

Quiz2

x = [1, 3, 8, 6, 8, 9]
y = set([1, 4, 7, 9, 7, 4])
print(len(x) + len(y))

Output:
1. 9
2. 12
3. 8
4. 10

Quiz3

print(0.1 + 0.2 == 0.3)

Output:
1. True
2. False
3. Machine dependent
4. Error

解説

簡単に解説していきます.

Quiz1

Answer -> -1

L1の~演算子はビット反転を意味します.
Python3では~演算子で反転する際に,オペランドが正数だと値の先頭が無限個の符号ビット「0」で埋めたもの(...00000100)とみなされるので,反転した結果の値の先頭はそれが全て反転された無限個の符号ビット「1」で埋めたもの(...11111011)とみなされます.
演算結果は符号ビットが「1」の負数-5として出力されます.

詳細はこちら -> Python3での2の補数と~演算子(ビット反転)

今回のケースでは,4(0100)のビット反転なので1011となり,これは10進数で-5となります.

Quiz2

Answer -> 10

len関数はオブジェクトの長さや要素数を取得します.
set関数はリストと同様に複数の要素から構成されます.リストと異なる点は"要素の重複"がなく,"要素の順番がない"ことです.

今回のケースでは,yは以下のようになります.

>>> y = set([1, 4, 7, 9, 7, 4])
>>> print(y)
{1, 4, 9, 7}

Quiz3

Answer -> False

浮動小数点数0.3の値は,必ずしも正確な0.3とは限らず,0.323や0.3426などになる可能性があり,0.3(0.1 + 0.2)とは等価ではありません.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?