前言
什么?你已经很了解 python 了?好.
我们开始做个测验。下面有 12 个题目。填个空,让这个代码片段变的可能.
先做个例子
例子 1:
>>> x, y = ???
>>> x + y == y + x
False
|
其中有个???
. 把它替换成什么就可以让这段代码成立呢?
揭晓答案:
>>> x, y = [0], [1]
>>> x + y == y + x
False
|
这个还是蛮简单的。好继续
例子 2:
>>> x = ???
>>> x < x
True
|
答案呢?
如果使用 python 内置的数据结构,确实是不可能的。唯一可以硬造
一个例子
>>> x = type("", (), {"__lt__": lambda a, b: True})()
>>> x < x
True
|
但是这里不需要这么复杂的去想trick
出结果,只考虑 python 已经实现的设计
发考卷
- 难度 3 星
>>> x, y = ???
>>> min(x, y) == min(y, x)
False
|
- 难度 4 星
>>> x = ???
>>> len(set(list(x))) == len(list(set(x)))
False
|
- 难度 3 星
>>> x, s = ???
>>> s.add(x)
>>> type(x) in map(type, s)
False
|
- 难度 3 星
>>> x, y = ???
>>> x < y and all(a >= b for a, b in zip(x, y))
True
|
- 难度 4 星
>>> x, y = ???
>>> sum(0 * x, y) == y
False
|
- 难度 5 星
>>> x = ???
>>> min(x) == min(*x)
False
|
- 难度 3 星
>>> x, y, z = ???
>>> x * (y * z) == (x * y) * z
False
|
- 难度 3 星
>>> x, y, z = ???
>>> x * (y * z) == (x * y) * z
False
|
- 难度 4 星
>>> x, y = ???
>>> y > max(x) and y in x
True
|
- 难度 5 星
>>> x, y = ???
>>> any(x) and not any(x + y)
True
|
- 难度 3 星
>>> x, y = ???
>>> x.count(y) <= len(x)
False
|
- 难度 5 星
>>> x = ???
>>> all(filter(None, x))
False
|
- 难度 4 星
>>> x, a, b, c = ???
>>> max(x) < max(x[a:b:c])
True
|
答案呢
这是最近我觉得蛮有趣的一个项目 pywat
上面的评星是我加上去。也体现了我做这些题目花费的精力和时间:
3 星:很快就想到,实验出来了
4 星:花了蛮长时间,终于找到答案了
5 星:最后实在找不倒答案,看了答案恍然大悟啊啊啊啊
你能做到什么程度呢?
请慎重点击: 答案地址