1

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)
wim
  • 338,267
  • 99
  • 616
  • 750

2 Answers2

7

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.

Ned Batchelder
  • 364,293
  • 75
  • 561
  • 662
6

You can not define new operators in Python. Instead, either provide a factorial function or simply use math.factorial.

Community
  • 1
  • 1
phihag
  • 278,196
  • 72
  • 453
  • 469