W tym artykule zajmiemy się metodami wczytywania danych z klawiatury oraz wypisywania informacji na ekranie monitora (w okienku konsoli).
Funkcja print(tekst lub dane do wyświetlenia) jest używana do wyświetlania tekstowych informacji, wartości zmiennych oraz wyników obliczeń.
print("ala ma kota")
#lub
print('ala ma kota')
#lub
print('4*5', '=', 4*5) # zobaczysz: 4*5 = 20
Zauważ, że możesz wyświetlać tekst zawarty w cudzysłowie "tekst" lub w apostrofach 'tekst'. Jeśli potrzebujesz wstawić znak końca wiersza (znak enter) w tekście do wyświetlenia, to musisz użyć potrójnego znaku cudzysłowu lub potrójnego apostrofu:
print("""ala
ma
kota""")
print('''ala
ma kota''')
Domyślnie funkcja print dodaje znak końca wiersza (enter) na koniec wypisanej zawartości. Jeśli chcesz, aby to była spacja lub coś innego, to możesz dodać jako drugi argument, który ma następującą konstrukcję:
end = 'znak/i dodany/e na koniec wyświetlonej informacji'
np.
print('ala ma kota', end = ' ')
Wyświetlony tekst: 'ala ma kota '
Zawartość zmiennej lub wynik obliczeń wypisujemy nie używając cudzysłowa ani apostrofu:
x = 333
print(x, 6*2) # 333 12
Możemy łączyć tekst (dane typu string) z innymi typami, oddzielając je przecinkiem. Domyślnie funkcja print wstawia znak spacji pomiędzy każdą wypisaną informacją:
x = 333
print('Zmienna x przechowuje liczbę:',x)
lub
x = 333
print('Zmienna x przechowuje liczbę:',x,'i jeszcze raz',x)
Zmienna x przechowuje liczbę: 333 i jeszcze raz 333
Dodatkowym atutem takiego rozwiązania jest fakt, że po wypisaniu każdego elementu zostanie wstawiony znak spacji. Jeśli jednak nie chcemy spacji rozdzielających wypisywane dane, to możemy użyć znaku + zamiast przecinka:
x = 333
print('Zmienna x przechowuje liczbę:'+str(x)+'i jeszcze raz'+str(x))
#str(x) rzutuje liczbę na stringa
Zmienna x przechowuje liczbę:81i jeszcze raz81
Możesz także ustawić swój własny separator, używając konstrukcji:
sep = 'separator'
Na przykład, jeśli każdy wyświetlany argument funkcji print chcesz rozdzielić znakiem ';', to możesz zapisać to w następujący sposób:
x = 333
y = 11
z = 34
print(x, y, z, sep = ';')
333;11;34
Możemy kontrolować formatowanie wyjścia, używając specjalnych znaków specjalnych lub metody formatowania napisów, takiej jak str.format() lub f-stringi (dostępne od Pythona 3.6). Aby użyć f-stringów, należy wpisać znak f przed formatowanym stringiem. Dzięki temu będziemy mogli wstawiać wartości zmiennych do stringa, wpisując je w klamrowych nawiasach:
x = 10
print(f'ala ma {x} lat')
ala ma 10 lat
Aby wypisać liczbę z dokładnością do n miejsc po przecinku, możesz zastosować następującą konstrukcję:
print(f"{liczba:.nf}
Na przykład wypiszmy liczbę 5/7 z dokładnością do 6 miejsc po przecinku:
print(f"{5/7:.6f}") # 0.714286
W Pythonie istnieją różne znaki specjalne, które mają specjalne znaczenie. Oto niektóre z najważniejszych znaków specjalnych:
Znak nowej linii (\n
):
print("ala\nma\nkota")
ala ma kota
Znak tabulacji (\t
):
print("ala\tma\tkota")
ala ma kota
Znak ucieczki (\\
):
\
do napisu, musisz podwójnie wstawić ten znak, tj. \\
. Na przykład: print("C:\\Folder\\Plik.txt") # C:\Folder\Plik.txt
.Znak pojedynczego cudzysłowu (\'
) i podwójnego cudzysłowu (\"
):
print("To jest napis z pojedynczym cudzysłowem: \'Tekst\'") # To jest napis z pojedynczym cudzysłowem: 'Tekst'
.Funkcja input() zwraca wczytane dane z klawiatury, które możemy zapisać w zmiennej:
x = input() # podajmy np 22
print(x) # zostanie wypisane 22
Jeśli chcesz dodać interakcję, np. informację, że należy wczytać liczbę, to możesz zrobić to w następujący sposób:
x = input('Podaj liczbę: ')
print(x) # pamietaj, że wczytana liczba będzie tekstem,
#czyli nie możesz jeszcze wykonywać na niej operacji arytmetycznych
Gdy wczytujemy więcej liczb i używamy instrukcji input(), musimy zadbać, aby te liczby znajdowały się w oddzielnych wierszach (dotyczy to sytuacji, gdy rozwiązujemy zadania za pomocą sprawdzarek typu spoj.com). Jeśli jednak specyfikacja wejścia jest określona w ten sposób, że kilka liczb (lub innych danych) znajduje się w jednym wierszu, to musimy użyć następującej kontrukcji:
x = input('Podaj dwie liczby: ') # np. 2 i 3
print(x) #zostanie wypisane 2 3
a, b = x.split() #zapiszemy kolejne wartości do tablicy x
print('Pierwsza liczba:',a,'Druga liczba:',b)
lub prościej:
a, b = input('Podaj dwie liczby: ').split() # np. 2 i 3
print('Pierwsza liczba:',a,'Druga liczba:',b)
Użyliśmy metody .split(), dostępnej dla obiektu string. Metoda ta domyślnie przyjmuje, że dane są rozdzielane znakiem spacji. Jeśli jednak separatorem jest inny znak, np. ";" (średnik), to musisz podać go jako argument:
a, b = input().split(';') # np. 2;3
print(a, b) # 2 3