Differences
This shows you the differences between two versions of the page.
Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
python3:output [2018/08/15 16:23] jguerin Added summary of results to the introduction. |
python3:output [2018/08/15 16:33] (current) jguerin Added byte count output to shell examples, removed and condensed associated descriptions. |
| |
===== Advanced Output ===== | ===== Advanced Output ===== |
| |
''print()'' is a wrapper around Python's ''write()''. In some instances, ''write()'' may outperform ''print()''. | |
| |
''write()'' requires a single ''str'' argument. ''write()'' does not perform concatenation, and does //not// automatically insert a ''\n'' at the end of your output. ''write()'' returns the number of characters written to the underlying stream. This is hidden in competition environments, but it will appear if testing in the [[competitive_programming:python_interpreter|interactive interpreter]]. | |
| |
<code python> | <code python> |
>>> from sys import * | >>> from sys import * |
>>> stdout.write('\n') # '\n' | >>> stdout.write('\n') |
</code> | |
| |
<code python> | 1 |
>>> from sys import * | |
>>> stdout.write("Hello World!\n") # "Hello World!\n" | |
</code> | </code> |
| |
Concatenation is possible, but needs to be done with the ''+'' operator. | ''stdout.write()'' returns the number of characters written to the underlying stream, but only prints the information in the context of the [[competitive_programming:python_interpreter|interactive interpreter]].((This information is suppressed when ''stdout.write()'' is used in the context of a ''.py'' file, and hence requires no special handling in contests.)) |
| |
<code python> | <code python> |
>>> from sys import * | >>> from sys import * |
>>> stdout.write("Hello" + " " + "World!" + "\n") # "Hello World!\n" | >>> stdout.write("Hello World!\n") # "Hello World!\n" |
</code> | Hello World! |
| 13 |
Numbers can be written using ''write()'', but they need to be cast to string (''str()'') and then concatenated with ''+''. | |
| |
<code python> | |
>>> from sys import * | |
>>> x = 12 | |
>>> stdout.write("x is: " + str(x) + "\n") # "x is: 12\n" | |
</code> | </code> |
| |
| Unlike ''print()'', ''stdout.write()'' takes only a single parameter and offers no formatting options. ''stdout.write()'' over multiple strings requires multiple calls or concatenations. Other types must be converted to string before they are printable. |
| |
==== Benchmarks ==== | ==== Benchmarks ==== |