https://docs.python.org/3/tutorial/inputoutput.html
https://docs.python.org/3/library/io.html
W Pythonie 2 funkcja input() próbuje interpretować wprowadzone dane i z tego powodu jest powolna i raczej niebezpieczna. Lepiej wczytać dane jako string za pomocą funkcji raw_input(), a następnie rzutować na potrzebny typ. W razie potrzeby możemy się zabezpieczyć przez try/except.
W Pythonie 3 istnieje tylko funkcja input(), która działa tak jak raw_input() w Pythonie 2 i zwraca zawsze string.
# Składnia w Py2.
# raw_input([prompt]) - zwraca string
# input([prompt]) - zwraca wartości różnych typów
# równoważne eval(raw_input(prompt))
word = raw_input(prompt)
variable = input(prompt)
# Przy input() wynik może być typu int, float lub inny (Py2).
# Jeżeli chcemy mieć na pewno int, to można zrobić tak:
# n = int(raw_input("Podaj int: "))
# Jeżeli wejście nie będzie pasowało do int, to będzie rzucony wyjątek.
line = raw_input("Podaj napis: ") # Py2
n = input("Podaj liczbe: ") # Py2
print(type(n)) # może być int, float lub coś innego
print("Podana liczba:", n)
# Składnia w Py3. # input([prompt]) - zwraca string (Py3) word = input(prompt)
# Korzystanie z modułu sys. # Obiekt sys.stdin jest typu file, mode "r". import sys line = sys.stdin.readline()
# Można skorzystać z try/except i używać tej samej nazwy input() w Py2 i Py3.
try:
input = raw_input
except NameError: # jesteśmy w Py3
pass