Search code examples
pythonsyntaxoperator-overloadingfactorial

use exclam (!) syntax for factorial in python


Can a working factorial function/operator be defined with a syntax like in mathematics? i.e. using the ! symbol.

I can't think of any use cases of the existing symbol where things could be ambiguous

  • ipython !shell_escape always has the bang at the start of a line
  • something like 0!=1 would be True as usual because the other interpretation of factorial(0) = 1 would be SyntaxError: can't assign to literal or similar error)

Solution

  • If you mean, "can I define the ! operator in my Python program?," the answer is no, Python doesn't have a bang operator that can be defined.

    If you mean, "could Python be extended to include a ! operator?," the answer is yes, though probably not as a postfix operator like x!. I very much doubt that the Python community would agree it was a good idea and move ahead with it though.