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 ==== |