Kurs maturalny z języka angielskiego!
kurs-maturalny-jezyk-angielski

PROGRAMOWANIE I ALGORYTMY

Zajęcia maturalne z informatyki
Olimpiada Informatyczna Juniorów
    Prowadzący: Marcin Kasprowicz
  • właściciel serwisu algorytm.edu.pl
  • wrzesień 2024 — start zajęć
  • czytaj więcej

Pobieranie i wypisywanie danych


powrót

W tym artykule zajmiemy się metodami wczytywania danych z klawiatury oraz wypisywania informacji na ekranie monitora (w okienku konsoli).

Instrukcja print()

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)
Wyście:
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
Wyście:
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 = ';')
Wyjście
333;11;34

Formatowanie wyjścia

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')
Wyjście
ala ma 10 lat

Zaokrąglanie liczb typu float (rzeczywistych)

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

Znaki specjalne

W Pythonie istnieją różne znaki specjalne, które mają specjalne znaczenie. Oto niektóre z najważniejszych znaków specjalnych:

  1. Znak nowej linii (\n):

    • Ten znak specjalny reprezentuje nową linię w tekście. Jest używany, aby przechodzić do nowej linii w napisach lub w wyjściu na konsolę.
      print("ala\nma\nkota")
      Wyjście
      ala
      ma
      kota
  2. Znak tabulacji (\t):

    • Reprezentuje znak tabulacji. Jest używany, aby wstawić tabulację w tekście lub w formatowaniu.
      print("ala\tma\tkota")
      Wyjście
      ala	ma	kota
  3. Znak ucieczki (\\):

    • Jeśli chcesz wstawić znak ucieczki \ do napisu, musisz podwójnie wstawić ten znak, tj. \\. Na przykład:
      print("C:\\Folder\\Plik.txt") # C:\Folder\Plik.txt
      .
  4. Znak pojedynczego cudzysłowu (\') i podwójnego cudzysłowu (\"):

    • Są używane, aby wstawiać pojedyncze lub podwójne cudzysłowy wewnątrz napisów. Na przykład:
      print("To jest napis z pojedynczym cudzysłowem: \'Tekst\'") # To jest napis z pojedynczym cudzysłowem: 'Tekst'
      .

Instrukcja input()

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
Wczytywanie wielu danych z jednego wiersza

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