# Python Your submission should be a program or a function. It should print the output or return it. These examples submissions compute the [factorial][1]: <!-- language-all: lang-python --> **General I/O** # Program that prints n=input();p=1 for i in range(1,n+1):p*=i print p # Defined function that outputs or prints def f(n): p=1 for i in range(1,n+1):p*=i print p # Lambda function, no name needed lambda n:reduce(int.__mul__,range(1,n+1)) # Lambda function, named to use recursive call f=lambda n:1 if n==0 else n*f(n-1) Your may not expect input pre-written to a variable. # Invalid, expects input in n p=1 for i in range(1,n+1):p*=i print p Nor may you output just by saving the result to a variable. # Invalid, saves result to p n=input();p=1 for i in range(1,n+1):p*=i Nor can the output just be the value of an expression like in the interactive shell. **Inputs** We're liberal about input formats. For example, if a challenge says to take a list of numbers, you may expect a Python list like `l=[1,2,3]`, not like `"1 2 3"`. So, a Python 2 program can do l=input() rather than l=map(int,raw_input().split()) Likewise, when a program takes string input, you expect it in quotes to use `input()` in Python 2 rather than `raw_input()`. **Version** Either Python 2 or Python 3 is fine. If the code only works correctly in a specific version, include the version number in the header. **Libaries** You may import libraries. The `import` statement counts as part of the code length. If it's a non-default library like `scipy`, call the language "Python with scipy" in the header. **Truthy/Falsey** Some challenges ask for a output to be truthy or falsey , which is determined by the value of `bool(x)`. Only `False`, `0`, `None`, and empty collections are Falsey, and the rest are Truthy. **More on functions** A function submission may include helper code outside the function, for example import re;r=range lambda l: ... Functions may use extra optional arguments. For example, this factorial function submission expects a single number, but uses the optional input `i` to help recurse: f=lambda n,i=1:1 if i>n else i*f(n,i+1) You may not, however, require the function to be called with a specific extra argument, like "call this with 2nd argument 1" for f=lambda n,i:1 if i>n else i*f(n,i+1) [1]: https://en.wikipedia.org/wiki/Factorial