在Python中使用感叹号(!)语法表示阶乘
我们能不能用数学里的写法来定义一个有效的阶乘函数或者操作符呢?也就是说,能不能用 !
这个符号。
我想不出现在这个符号有什么用法会让人感到困惑的地方。
- 在ipython中,
!shell_escape
这个命令总是以叹号开头。 - 像
0!=1
这样的表达式,结果会是True
,因为如果用另一种方式理解factorial(0) = 1
,就会出现SyntaxError: can't assign to literal
或类似的错误。
2 个回答
6
在Python中,你 不能 定义新的运算符。相反,你可以提供一个 factorial
函数,或者直接使用 math.factorial
。
8
如果你问的是“我可以在我的Python程序中定义!这个操作符吗?”,那么答案是不能,Python里没有可以定义的感叹号操作符。
如果你问的是“Python能不能扩展来包含一个!操作符?”,那么答案是可以,不过可能不会像x!
那样作为后缀操作符。我很怀疑Python社区会觉得这是个好主意并且会去实施。