LoginSignup
1
0

More than 1 year has passed since last update.

Pythonクイズ:CheckIOから得られた学び、

Last updated at Posted at 2020-11-17

これは何?

Python学習サイトCheckIOで見つけたえげつない解答から見出した、「自分が知らなかったこと言語仕様リスト」をクイズ形式でまとめた物です。
追記予定・・・!

問題①:変数nは誰なのか。

次の式を満たす変数nの値が何かを当ててください。

>>> type(n)
# <class 'float'> ; float型

>>> n < 2 * n
# False

>>> n > 2 * n
# False

>>> 1 < n
# False

>>> 1 == n
# False

>>> n < 1
# False

>>> n == n
# False

>>> n != n
# True

>>> n is n
# True

解答
>>>print(n)
# nan

nanを持つ変数と比較するとなんのエラーも出ないので、適宜math.isnanで確かめなければいけない。(深い後悔)

参考: 6.10.1.値の比較、IEEE 754

問題②:単純な式

次の式は選択肢のどれと等価でしょうか。

# 問題の式
x is x>=2
# 選択肢
(x is x) >= 2 # (a)
x is (x >= 2) # (b)
それ以外         # (c)

HINT

x=2の時与式はTrueです。

解答

正解は「(c)それ以外」です!
ではどういう式なのか、が重要なのでまだ考えていない方は是非お考えください・・・!

(x is x) and (x >= 2)

と等価です。
Pythonでは a>b>c等、演算子を連続させて記述することができますが、"is"もこの演算子リストに含まれており、andを使わずに表現可能です。
上記式は「複雑に見せるために」あえて「x is x」という意味のない比較をする現実的ではない問題ですが、学習になれば幸いです。

参考:Python Docの比較CiO元ネタ(要ログイン&要解答)

1
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
1
0