The following compilers are available for Python programs:
The syntax is checked with the py_compile.compile
function. Errors like IndentationError
lead to the Compilation error
judging result on this stage. Then the interpreter is invoked without additional arguments: python %1
. Since Python is an interpreted language, the errors like NameError
are recognized by the online judge as a Runtime error
but not as a Compilation error
.
How to read input data until the end of stream
To solve certain problems you should know how to read data until the end of input stream. The following example shows how to process all the lines until the end of input stream.
import sys
def process(line):
...
for line in sys.stdin:
process(line[:-1])
This example shows how to read all the tokens up to the end of input stream.
import sys
tokens = sys.stdin.read().split()
Using recursion
By default the depth of a recursion in Python is very limited (about 1000 of nested calls). This limit can be increased with the command:
import sys
sys.setrecursionlimit(2000)
An example of solving a problem
A sample solution for the 1000. A + B problem in Python:
print(sum(int(x) for x in input().split(' ')))
A sample solution for the 1001. Reverse Root in Python:
import sys, math
nums = []
for line in sys.stdin:
for word in line.split():
nums.append(float(word))
nums.reverse()
for num in nums:
print("%.4f" % math.sqrt(num))
More efficient solution of the same problem:
from sys import stdin, stdout
from math import sqrt
tokens = reversed(stdin.read().split())
stdout.write('\n'.join(['%.4f' % sqrt(float(t)) for t in tokens]))
Earlier compilers
- The Python 2.7.3 was used until October 3, 2014.
- The Python 3.3.0 was used until October 3, 2014.
- The Python 3.4.1 was used until September 1, 2017.
- The Python 2.7.8 was used until September 1, 2020.
- The Python 3.6.2 was used until September 1, 2020.
- The Python 3.8.5 x64 was used until January, 22 2024.
- The PyPy 3.8 x64 was used until January, 22 2024.