Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Pobierz materiał do EPUB Pobierz materiał do MOBI Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał Zaloguj się, aby udostępnić materiał Zaloguj się, aby dodać całą stronę do teczki

Standardowe funkcje wejścia/wyjścia

Jak już wiesz, podczas pracy z  programem użytkownik może wprowadzać dane przez standardowe wejściestandardowe wejściestandardowe wejście – klawiaturę. W języku Python wszystkie dane zwracane przez funkcję input() są typu string. W sytuacji, w której potrzebujemy zmienić typ danych, możemy wykorzystać kilka funkcji:

Linia 1. int otwórz nawias okrągły zamknij nawias okrągły minus zamiana na liczby całkowite. Linia 3. kratka przykładowo. Linia 4. dana podkreślnik wejsciowa znak równości cudzysłów 12 cudzysłów. Linia 5. print otwórz nawias okrągły type otwórz nawias okrągły dana podkreślnik wejsciowa zamknij nawias okrągły zamknij nawias okrągły. Linia 6. otwórz nawias ostrokątny class apostrof str apostrof zamknij nawias ostrokątny. Linia 7. wyjsciowo znak równości int otwórz nawias okrągły dana podkreślnik wejsciowa zamknij nawias okrągły. Linia 8. print otwórz nawias okrągły type otwórz nawias okrągły wyjsciowo zamknij nawias okrągły zamknij nawias okrągły. Linia 9. otwórz nawias ostrokątny class apostrof int apostrof zamknij nawias ostrokątny. Linia 10. print otwórz nawias okrągły wyjsciowo zamknij nawias okrągły. Linia 11. 12. Linia 13. float otwórz nawias okrągły zamknij nawias okrągły minus zamiana na liczbę zmiennoprzecinkową. Linia 15. kratka przykładowo. Linia 16. dana podkreślnik wejsciowa znak równości cudzysłów 12 kropka 45 cudzysłów. Linia 17. print otwórz nawias okrągły type otwórz nawias okrągły dana podkreślnik wejsciowa zamknij nawias okrągły zamknij nawias okrągły. Linia 18. otwórz nawias ostrokątny class apostrof str apostrof zamknij nawias ostrokątny. Linia 19. wyjsciowo znak równości float otwórz nawias okrągły dana podkreślnik wejsciowa zamknij nawias okrągły. Linia 20. print otwórz nawias okrągły type otwórz nawias okrągły wyjsciowo zamknij nawias okrągły zamknij nawias okrągły. Linia 21. otwórz nawias ostrokątny class apostrof float apostrof zamknij nawias ostrokątny. Linia 22. print otwórz nawias okrągły wyjsciowo zamknij nawias okrągły. Linia 23. 12 kropka 45. Linia 25. str otwórz nawias okrągły zamknij nawias okrągły minus zamiana na ciągi znaków. Linia 27. kratka przykładowo. Linia 28. dana podkreślnik wejsciowa znak równości 12 kropka 45. Linia 29. print otwórz nawias okrągły type otwórz nawias okrągły dana podkreślnik wejsciowa zamknij nawias okrągły zamknij nawias okrągły. Linia 30. otwórz nawias ostrokątny class apostrof float apostrof zamknij nawias ostrokątny. Linia 31. wyjsciowo znak równości str otwórz nawias okrągły dana podkreślnik wejsciowa zamknij nawias okrągły. Linia 32. print otwórz nawias okrągły type otwórz nawias okrągły wyjsciowo zamknij nawias okrągły zamknij nawias okrągły. Linia 33. otwórz nawias ostrokątny class apostrof str apostrof zamknij nawias ostrokątny. Linia 34. print otwórz nawias okrągły wyjsciowo zamknij nawias okrągły. Linia 35. 12 kropka 45.
Polecenie 1

Napisz program obliczający wiek na podstawie danych podanych przez użytkownika. Wiek powinien być wyświetlony na standardowym wyjściu.

Specyfikacja problemu:

Dane:

  • rok_urodzenia – rok urodzenia użytkownika, liczba naturalna dodatnia pobrana od użytkownika

Wynik:

Program na standardowym wyjściu wypisuje wiek użytkownika.

Ciekawostka

Polecenie int('4A',base=16) spowoduje przeliczenie liczby 4A z postaci szesnastkowej na dziesiętną.

Sposoby formatowania informacji przekazywanych przez program

Funkcja print() służy do wyświetlania informacji na standardowym wyjściustandardowe wyjściestandardowym wyjściu. Gdy chcemy wypisać dużą liczbę różnych informacji w ujednolicony sposób, możemy ułatwić sobie takie zadanie, stosując metodę .format().

1
Przykład 1

Przeanalizujmy wyświetlenie 5 różnych liczb zmiennoprzecinkowych – zostaną one wypisane na ekranie. Kod będzie wyglądał w następujący sposób:

Linia 1. liczby znak równości otwórz nawias kwadratowy 2 kropka 34 przecinek 11 kropka 24 przecinek 1 kropka 864 przecinek 33 kropka 1 przecinek 12 kropka 456 zamknij nawias kwadratowy. Linia 2. for liczba in liczby dwukropek. Linia 3. print otwórz nawias okrągły liczba zamknij nawias okrągły. Linia 5. 2 kropka 34. Linia 6. 11 kropka 24. Linia 7. 1 kropka 864. Linia 8. 33 kropka 1. Linia 9. 12 kropka 456.

Chcielibyśmy wypisać te liczby w kolejnych wierszach. Tak, aby kropka dziesiętna była zawsze w tym samym miejscu. Formatowanie specjalne to sposób formatowania powodujący np. równe rozmieszczenie znaku separatora tych liczb. Użyjemy opisu formatowania {:>6.3f}, który oznacza:

  • znak ">" – równamy do prawej strony,

  • 6 – długość napisu ma mieć minimum 6 znaków (wliczając separator), jeśli napis będzie krótszy, zostanie uzupełniony znakami spacji na początku,

  • 3 – ilość miejsc dziesiętnych, jeśli liczba będzie miała więcej, wynik będzie zaokrąglony, jeśli mniej, zostaną dodane 0,

  • znak "f" – oznacza, że liczba jest typu float,

  • znaki ":" oraz „"." są wymagane zgodnie z dokumentacją Pythona.

Linia 1. for liczba in liczby dwukropek. Linia 2. print otwórz nawias okrągły cudzysłów otwórz nawias klamrowy dwukropek zamknij nawias ostrokątny 6 kropka 3f zamknij nawias klamrowy cudzysłów kropka format otwórz nawias okrągły liczba zamknij nawias okrągły zamknij nawias okrągły. Linia 4. 2 kropka 340. Linia 5. 11 kropka 240. Linia 6. 1 kropka 864. Linia 7. 33 kropka 100. Linia 8. 12 kropka 456.

Ogólna postać zapisu kodów sterujących formatowaniem dla liczb wygląda następująco:

Linia 1. otwórz nawias kwadratowy wyrównanie zamknij nawias kwadratowy otwórz nawias kwadratowy znak zamknij nawias kwadratowy otwórz nawias kwadratowy ilość cyfr zamknij nawias kwadratowy otwórz nawias kwadratowy kropka precyzja zamknij nawias kwadratowy otwórz nawias kwadratowy typ zamknij nawias kwadratowy. Linia 3. wyrównanie dwukropek cudzysłów otwórz nawias ostrokątny cudzysłów kreska pionowa cudzysłów zamknij nawias ostrokątny cudzysłów kreska pionowa cudzysłów znak równości cudzysłów kreska pionowa cudzysłów kareta cudzysłów. Linia 4. do lewej przecinek do prawej przecinek wypełnianie znakami apostrof 0 apostrof przecinek centrowanie. Linia 6. znak dwukropek cudzysłów plus cudzysłów kreska pionowa cudzysłów minus cudzysłów kreska pionowa cudzysłów cudzysłów. Linia 7. znak dla liczb dodatnich i ujemnych przecinek znak tylko dla liczb ujemnych przecinek dla liczb dodatnich spacja plus znak dla liczb ujemnych. Linia 9. liczba cyfr minus łączna minimalna długość otwórz nawias okrągły liczba znaków zamknij nawias okrągły wypisanego ciągu znaków otwórz nawias okrągły jeśli łączna ilość cyfr i znaku separatora. Linia 10. będzie mniejsza przecinek wynikowy ciąg zostanie uzupełniony na początku znakami spacji zamknij nawias okrągły. Linia 12. kropka precyzja minus minimalna ilość cyfr części dziesiętnej przecinek która będzie wypisana na wyjściu przecinek lub ilość cyfr przecinek do których nastąpi zaokrąglenie przecinek jeśli cyfr w części. Linia 13. dziesiętnej będzie więcej. Linia 16. typ dwukropek cudzysłów b cudzysłów kreska pionowa cudzysłów c cudzysłów kreska pionowa cudzysłów d cudzysłów kreska pionowa cudzysłów e cudzysłów kreska pionowa cudzysłów E cudzysłów kreska pionowa cudzysłów f cudzysłów kreska pionowa cudzysłów F cudzysłów kreska pionowa cudzysłów g cudzysłów kreska pionowa cudzysłów G cudzysłów kreska pionowa cudzysłów n cudzysłów kreska pionowa cudzysłów o cudzysłów kreska pionowa cudzysłów s cudzysłów kreska pionowa cudzysłów x cudzysłów kreska pionowa cudzysłów X cudzysłów kreska pionowa cudzysłów procent cudzysłów. Linia 17. określa sposób przecinek w jaki ma być prezentowana liczba przecinek np dwukropek. Linia 18. cudzysłów f cudzysłów minus zmiennoprzecinkowa przecinek domyślnie 6 miejsc po przecinku. Linia 19. cudzysłów e cudzysłów minus notacja wykładnicza przecinek inżynierska. Linia 20. cudzysłów procent cudzysłów minus procentowa przecinek wyświetla liczbę przeliczoną na procent.

Przykładowe wykonanie różnych sposobów formatowania:

Linia 1. l1 znak równości 2 kropka 36. Linia 2. l2 znak równości minus 3 kropka 14. Linia 3. l3 znak równości 4 kropka 467. Linia 4. print otwórz nawias okrągły apostrof Liczba dwukropek otwórz nawias klamrowy zamknij nawias klamrowy przecinek otwórz nawias klamrowy zamknij nawias klamrowy przecinek otwórz nawias klamrowy zamknij nawias klamrowy apostrof kropka format otwórz nawias okrągły l1 przecinek l2 przecinek l3 zamknij nawias okrągły zamknij nawias okrągły. Linia 5. Liczba dwukropek 2 kropka 36 przecinek minus 3 kropka 14 przecinek 4 kropka 467. Linia 6. print otwórz nawias okrągły apostrof Liczba dwukropek otwórz nawias klamrowy dwukropek otwórz nawias ostrokątny plus 6 kropka 3f zamknij nawias klamrowy przecinek otwórz nawias klamrowy dwukropek zamknij nawias ostrokątny 6 kropka 4f zamknij nawias klamrowy przecinek otwórz nawias klamrowy zamknij nawias klamrowy apostrof kropka format otwórz nawias okrągły l1 przecinek l2 przecinek l3 zamknij nawias okrągły zamknij nawias okrągły. Linia 7. Liczba dwukropek plus 2 kropka 36 przecinek minus 3 kropka 14 przecinek 4 kropka 467. Linia 8. print otwórz nawias okrągły apostrof Liczba dwukropek otwórz nawias klamrowy dwukropek otwórz nawias ostrokątny plus 6 kropka 3f zamknij nawias klamrowy przecinek otwórz nawias klamrowy dwukropek zamknij nawias ostrokątny 6 kropka 4f zamknij nawias klamrowy przecinek otwórz nawias klamrowy dwukropek 6 kropka 2f zamknij nawias klamrowy apostrof kropka format otwórz nawias okrągły l1 przecinek l2 przecinek l3 zamknij nawias okrągły zamknij nawias okrągły. Linia 9. Liczba dwukropek plus 2 kropka 360 przecinek minus 3 kropka 1400 przecinek 4 kropka 47. Linia 10. print otwórz nawias okrągły apostrof Liczba dwukropek otwórz nawias klamrowy dwukropek otwórz nawias ostrokątny plus 6 kropka 3f zamknij nawias klamrowy przecinek otwórz nawias klamrowy dwukropek zamknij nawias ostrokątny 6 kropka 4f zamknij nawias klamrowy przecinek otwórz nawias klamrowy dwukropek 6 kropka 3f zamknij nawias klamrowy apostrof kropka format otwórz nawias okrągły l1 przecinek l2 przecinek l3 zamknij nawias okrągły zamknij nawias okrągły. Linia 11. Liczba dwukropek plus 2 kropka 360 przecinek minus 3 kropka 1400 przecinek 4 kropka 467. Linia 12. print otwórz nawias okrągły cudzysłów Liczba dwukropek otwórz nawias klamrowy dwukropek otwórz nawias ostrokątny 10 kropka 5f zamknij nawias klamrowy kropka cudzysłów kropka format otwórz nawias okrągły 123 kropka 122 zamknij nawias okrągły zamknij nawias okrągły. Linia 13. Liczba dwukropek 123 kropka 12200 kropka. Linia 14. print otwórz nawias okrągły cudzysłów Liczba dwukropek otwórz nawias klamrowy dwukropek otwórz nawias ostrokątny 10 kropka 5f zamknij nawias klamrowy kropka cudzysłów kropka format otwórz nawias okrągły 123 kropka 122345678 zamknij nawias okrągły zamknij nawias okrągły. Linia 15. Liczba dwukropek 123 kropka 12235 kropka. Linia 16. print otwórz nawias okrągły cudzysłów Liczba dwukropek otwórz nawias klamrowy dwukropek otwórz nawias ostrokątny 10 kropka 5f zamknij nawias klamrowy kropka cudzysłów kropka format otwórz nawias okrągły 123123 kropka 122345678 zamknij nawias okrągły zamknij nawias okrągły. Linia 17. Liczba dwukropek 123123 kropka 12235 kropka. Linia 18. print otwórz nawias okrągły apostrof Liczba dwukropek otwórz nawias klamrowy dwukropek f zamknij nawias klamrowy apostrof kropka format otwórz nawias okrągły 453 zamknij nawias okrągły zamknij nawias okrągły. Linia 19. Liczba dwukropek 453 kropka 000000. Linia 20. print otwórz nawias okrągły apostrof Liczba dwukropek otwórz nawias klamrowy dwukropek e zamknij nawias klamrowy apostrof kropka format otwórz nawias okrągły 453 zamknij nawias okrągły zamknij nawias okrągły. Linia 21. Liczba dwukropek 4 kropka 530000e plus 02.
Ważne!

Sposób formatowania i postać kodów sterujących są opisane w dokumentacji, dostępnej po wydaniu polecenia help('FORMATTING').

Polecenie 2

Napisz program, który pobierze od użytkownika dane 3 osób: imię, liczbę punktów uzyskanych na sprawdzianie oraz obliczy wynik procentowy każdej osoby. Przyjmij, że maksymalnie można uzyskać 120 punktów. Wyniki wyświetl w tabeli zawierającej nagłówek:  ' Lp. | Imię | Punkty | Procenty '.

Specyfikacja problemu:

Dane:

  • maks – liczba naturalna dodatnia; maksymalna liczba punktów możliwych do uzyskania na sprawdzianie

  • imiona – pobrane od użytkownika trzy imiona; trzy łańcuchy znaków

  • punkty – pobrane od użytkownika liczby zdobytych przez każdego ucznia punktów

Wynik:

Na standardowym wyjściu program wypisuje tabele składającą się z nagłówka oraz wierszy reprezentujących wyniki każdego z trzech uczniów.

Polecenie 3

Przygotuj kilka tabel podobnych do tej z poprzedniego polecenia. Porównaj i przedyskutuj z innymi osobami wyniki działania programów.

Interfejs graficzny i wprowadzanie danych

Niektóre programy mają graficzny interfejs użytkownikagraficzny interfejs użytkownika (GUI)graficzny interfejs użytkownika (GUI). Podczas pisania takich aplikacji wykorzystywane są środowiska RADRADRAD. Dla języka Python nie powstało rozbudowane środowisko tego typu.

Do pisania graficznych aplikacji desktopowych możemy wykorzystać środowiska IDEIDEIDE, które pomagają tworzyć kod źródłowy. W przypadku języka Python dostępny jest moduł PySimpleGUI, pozwala on wyświetlać proste okna dialogowe.

Opisywany moduł trzeba zainstalować za pomocą menedżera pip. Należy w tym celu wydać komendę w linii poleceń systemu operacyjnego:

Linia 1. pip install PySimpleGUI.

A oto wywołanie funkcji, która wyświetli okno komunikatu:

Linia 1. import PySimpleGUI as sg. Linia 2. sg kropka Popup otwórz nawias okrągły cudzysłów Nasz pierwszy program graficzny cudzysłów przecinek. Linia 3. cudzysłów Witam serdecznie minus nazywam się Python przecinek cudzysłów przecinek. Linia 4. cudzysłów jestem językiem programowania przecinek potrafię działać w wielu środowiskach przecinek cudzysłów przecinek. Linia 5. cudzysłów warto się ze mną zaprzyjaźnić minus a zobaczysz przecinek ile jestem w stanie zdziałać kropka cudzysłów przecinek. Linia 6. cudzysłów Zatem minus do nauki i pracy średnik minus zamknij nawias okrągły cudzysłów zamknij nawias okrągły. Linia 7. apostrof OK apostrof. Linia 8. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny.
Ciekawostka

Składnię import PySimpleGUI as sg stosujemy w celu skrócenia zapisu w programie.

Innym przykładem biblioteki realizującej operacje graficzne jest turtle. Będziemy korzystać z niej przy tworzeniu rysunków fraktali.

RlenMzXntvqSO
Python Turtle Graphics
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Turtle bazuje na innej bibliotece – Tkinter. Jest to standardowa biblioteka języka Python, dostępna bez konieczności doinstalowania.

Środowisko IDLE, które wykorzystujemy do tworzenia programów, zostało opracowane z zastosowaniem właśnie tej biblioteki.

R1CpTlUrzTxEI1
Środowisko programistyczne IDLE bazuje na bibliotece TKinter .
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Oto przykładowy kod, który pozwala wyświetlić minimalne okno programu i zamknąć okno po naciśnięciu przycisku.

Linia 1. import tkinter. Linia 3. def ok otwórz nawias okrągły zamknij nawias okrągły dwukropek. Linia 4. window kropka destroy otwórz nawias okrągły zamknij nawias okrągły. Linia 6. window znak równości tkinter kropka Tk otwórz nawias okrągły zamknij nawias okrągły. Linia 7. window kropka title otwórz nawias okrągły cudzysłów Nasz pierwszy program graficzny cudzysłów zamknij nawias okrągły. Linia 8. label znak równości tkinter kropka Label otwórz nawias okrągły window przecinek. Linia 9. text znak równości cudzysłów Witam serdecznie minus nazywam się Python przecinek cudzysłów zamknij nawias okrągły kropka pack otwórz nawias okrągły zamknij nawias okrągły. Linia 10. label znak równości tkinter kropka Label otwórz nawias okrągły window przecinek. Linia 11. text znak równości cudzysłów jestem językiem programowania przecinek potrafię działać w wielu środowiskach przecinek cudzysłów zamknij nawias okrągły kropka pack otwórz nawias okrągły zamknij nawias okrągły. Linia 12. label znak równości tkinter kropka Label otwórz nawias okrągły window przecinek. Linia 13. text znak równości cudzysłów warto się ze mną zaprzyjaźnić minus a zobaczysz przecinek ile jestem w stanie zdziałać kropka cudzysłów zamknij nawias okrągły kropka pack otwórz nawias okrągły zamknij nawias okrągły. Linia 14. label znak równości tkinter kropka Label otwórz nawias okrągły window przecinek. Linia 15. text znak równości cudzysłów Zatem minus do nauki i pracy średnik minus zamknij nawias okrągły cudzysłów zamknij nawias okrągły kropka pack otwórz nawias okrągły zamknij nawias okrągły. Linia 17. b znak równości tkinter kropka Button otwórz nawias okrągły window przecinek text znak równości cudzysłów OK minus koniec cudzysłów przecinek command znak równości ok zamknij nawias okrągły kropka pack otwórz nawias okrągły zamknij nawias okrągły.

Słownik

argument
argument

element składni w określonym języku programowania, który w wyniku wywołania podprogramu zostaje utożsamiony (skojarzony) z określonym parametrem podprogramu

graficzny interfejs użytkownika (GUI)
graficzny interfejs użytkownika (GUI)

(ang. Graphical User Interface) interfejs pozwalający komunikować się z programem za pomocą widżetów; pozwala również na rysowanie

IDE
IDE

(ang. Integrated Developement Environment) zintegrowane środowisko programistyczne, które wspomaga pracę z kodem źródłowym; przykładowymi IDE są Atom, PyCharm, Visual CodeSublime Text

inspektor obiektów
inspektor obiektów

w środowisku PyCharm narzędzie umożliwiające podgląd obiektów w czasie rzeczywistym, sprawdzanie ich wartości oraz typu

parametr
parametr

element składni w określonym języku programowania umożliwiający komunikację pomiędzy podprogramem wywołanym a programem wywołującym; parametry określa się wraz z deklaracją określonego podprogramu w jego nagłówku

RAD
RAD

(ang. Rapid Application Developement) metodyka udostępniająca zbiór narzędzi do szybkiego tworzenia aplikacji; programista rysuje w nim elementy interfejsu, zaś kod dodaje się tylko do poszczególnych obiektów; przykładowymi środowiskami RAD są QT Designer, Visual Studio, Lazarus i Delphi

standardowe wejście
standardowe wejście

standardowe urządzenie służące do wprowadzania danych; zazwyczaj jest to klawiatura; istnieją również niestandardowe wejścia (np. pliki)

standardowe wyjście
standardowe wyjście

standardowe urządzenie służące do przedstawiania wyników działania programu; zazwyczaj jest to ekran (w przypadku Pythona: aktywne okno terminala tekstowego); istnieją też niestandardowe wyjścia, takie jak plik