Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

Autor artykułu: mgr Jerzy Wałaszek

©2024 mgr Jerzy Wałaszek
I LO w Tarnowie

obrazek

Klasa II

Przetwarzanie danych

SPIS TREŚCI

Instrukcje print(...) i input(...)

Instrukcja print(...) pozwala wyświetlać różne informacje. Uruchom poniższy program:

# Program napisy.py demonstruje użycie
# cudzysłowów w łańcuchach znaków

print("Program 'napisy.py' wyświetla")
print("ciekawego", "rodzaju", "napis,")
print("wykorzystując",
"własności",
"tekstów.")
print("Oto", end=" ")
print("on...")
print(
"""
-----------------------------------------
####  ##### #   # #      ###  #   #  ###
#   # #     #  #  #     #   # ## ## #   #
####  ####  ###   #     ##### # # # #####
#   # #     #  #  #     #   # #   # #   #
#   # ##### #   # ##### #   # #   # #   #
-----------------------------------------
"""
)
input("\n\nNaciśnij Enter...")

Przeanalizujmy ważniejsze elementy tego programu:

# ...
Komentarz, zawiera dowolny tekst, który jest ignorowany przez interpreter Pythona. Komentarz rozpoczyna się za znakiem # i kończy wraz z końcem wiersza. Edytor wyświetla komentarze w oddzielnym kolorze.
print(...)
Instrukcja wyświetla to, co otrzymuje jako parametry. Parametry nie są obowiązkowe. Pusta instrukcja print() wyświetla wiersz pusty.
"...(')..."
Obejmuje tekst, który może zawierać apostrofy.
'...(")...'
Obejmuje tekst, który może zawierać cudzysłowy.
print("...", "...", ...)
W jednej instrukcji print(...) może być kilka parametrów rozdzielonych przecinkami. Na wydruku zostaną one rozdzielone spacjami.
print("...",
"...",
...)
Parametry instrukcji można umieszczać w osobnych wierszach. Ostatni parametr należy zakończyć nawiasem zamykającym instrukcji print. Parametry wciąż należy rozdzielać przecinkami.
print(..., end=" ")
Domyślnie instrukcja print(...) wyświetla swe parametry w jednym wierszu i kończy wyświetlanie przejściem do następnego wiersza. Jeśli na końcu wstawimy end="...", to po wyświetleniu informacji zostanie wyświetlony tekst umieszczony za end= i nie nastąpi automatyczne przejście do nowego wiersza. Pozwala to wyświetlać w jednym wierszu dane z kilku kolejnych instrukcji print.
""" ...
... """
''' ...
...'''
Trzy cudzysłowy (trzy apostrofy) pozwalają objąć tekst zbudowany z kilku wierszy.
".../n..."
'.../n...'
Znaki /n są traktowane jako jedna całość. Jest to tzw. znak sterujący nowego wiersza (ang. newline control character). Powoduje on zakończenie wyświetlania bieżącego wiersza i przejście na początek następnego.
input("...")
input('...')
Instrukcja input(...) wyświetla tekst otrzymany w parametrze, a następnie odczytuje znaki wprowadzone przez użytkownika z klawiatury komputera i zwraca je jako wiersz tekstu, gdy użytkownik po ich wprowadzeniu naciśnie klawisz Enter. Tutaj wprowadzony tekst zostanie zignorowany. Zadaniem tej instrukcji jest wstrzymanie zakończenia programu aż do momentu, gdy użytkownik naciśnie klawisz Enter. Parametr input() można pominąć, wtedy instrukcja nic nie wyświetli, będzie jedynie odczytywała wprowadzany tekst do momentu naciśnięcia klawisza Enter.

Na początek:  podrozdziału   strony 

Zmienna

Zmienna jest obiektem, który przechowuje informację podczas pracy programu. W języku Python zmienne posiadają nazwy zbudowane z małych i dużych liter, cyfr oraz znaków podkreślenia. Pierwszym znakiem nazwy zmiennej nie może być cyfra. Należy również unikać podkreśleń w pierwszym znaku, gdyż w Pythonie mają one specjalne znaczenie. Nazwa zmiennej nie powinna być słowem kluczowym (słowa te poznasz później). Zmienną definiujemy nadając jej wartość przy pomocy operatora przypisania =. W nazwach zmiennych duże i małe litery są rozróżniane. Uruchom poniższy program:

szef = "Marek Lewandowski"
robol = "Ferdynand Brzuchokleszcz"
print("Tutaj rządzi", szef, end="")
print(", a pracuje", robol, end=".\n\n")
print(szef, "to nasz boss!!!")
print(robol, "to Przynieś-Odnieś-Pozamiataj!!!")

Zwróć uwagę, iż zmienne szef i robol zostały wykorzystane dwukrotnie w programie.

Informację do zmiennej można również przypisać przy pomocy instrukcji input. Uruchom program:

ty = input("Jak masz na imię? ")
print("\n\nWitaj", ty, end="!\n\n")
print("To ja, twój ukochany Python...")

Instrukcja input wyświetli przekazany jej tekst, odczyta to, co wprowadzi z klawiatury użytkownik i zwróci to jako tekst, który następnie operator = przypisze do zmiennej ty.

W tym programie zawartość zmiennej ty zależy od tego, co zwróci instrukcja input, czyli od tego, co wprowadził użytkownik z klawiatury przed naciśnięciem klawisza Enter.


Na początek:  podrozdziału   strony 

Operacje na tekstach

Konkatencja

Teksty można ze sobą łączyć za pomocą operatora +. Uruchom poniższy program:

a = "Jaś"
b = "Małgosia"
c = a + " i " + b
print(a)
print(b)
print(c)

W programie tworzymy zmienną a i przypisujemy jej tekst "Jaś". Następnie tworzymy zmienną b i przypisujemy jej tekst "Małgosia". Na koniec tworzymy zmienną c i przypisujemy jej "sumę" tekstów: w a, w " i " oraz w b. Suma tekstów oznacza połączenie ich znaków w jeden dłuższy tekst. Operacja ta nosi nazwę konkatencji łańcuchów tekstowych (ang. string concatenation).

Powielanie

Dowolny tekst można powielać przy pomocy operatora *. Uruchom poniższy program

a = "Ada "
b = a * 10 # Powielanie
print(a)
print(b)

W programie tworzymy zmienną o nazwie a i przypisujemy jej tekst "Ada ". Następnie do zmiennej b przypisujemy tekst ze zmiennej a powielony 10 razy.

Zamiana liter małych na duże

W języku Python tekst jest obiektem. Oznacza to, iż posiada on powiązane ze sobą funkcje. Funkcja jest fragmentem programu, który zostaje uruchomiony w momencie wywołania funkcji, a następnie jest zwracany wynik działania tej funkcji. W przypadku obiektu wywołanie wygląda następująco:

obiekt.funkcja(parametry)

Wygląda to na początku zawile, ale jest łatwe do zrozumienia po kilku ćwiczeniach. Funkcję oddzielamy od obiektu kropką. W przypadku tekstu istnieje funkcja, która  zwraca kopię tego tekstu z zamienionymi literami małymi na duże. Uruchom poniższą instrukcję:

print("Alicja w krainie czarów".upper())

Funkcja upper() zwraca kopię tekstu, tekst oryginalny pozostaje niezmieniony. Uruchom poniższy program:

a = input("Wpisz tekst i wciśnij Enter... ")
b = a.upper() # Zamieniamy małe litery na duże
print(a) # tekst oryginalny
print(b) # kopia tekstu ze zmienionymi literami

W programie tworzymy zmienną a i przypisujemy jej tekst odczytany z klawiatury. Tworzymy zmienną b i przypisujemy jej kopię tekstu z a, w której litery małe zostały zamienione na duże. Wyświetlamy oba teksty: zauważ iż tekst a nie został zmieniony.

Zamiana liter dużych na małe

W identyczny sposób działa funkcja lower(). Zwraca kopię tekstu, w której litery duże zamienione zostały na małe. Uruchom program:

a = input("Wpisz tekst i wciśnij Enter... ")
b = a.lower() # Zamieniamy duże litery na małe
print(a) # tekst oryginalny
print(b) # kopia tekstu ze zmienionymi literami

Pierwsze litery wyrazów na duże

Funkcja title() zwraca kopię tekstu, w której pierwsze litery każdego wyrazu zostały zamienione na duże. Uruchom program:

a = input("Wpisz tekst i wciśnij Enter... ")
b = a.title() # Zamieniamy pierwsze litery na duże w każdym wyrazie
print(a) # tekst oryginalny
print(b) # kopia tekstu ze zmienionymi literami

Funkcji związanych z łańcuchami tekstowymi jest dużo więcej. Poznamy je na dalszych lekcjach.

Podsumowanie


Zmienna jest obiektem przechowującym informację. Do zmiennej odwołujemy się poprzez jej nazwę. Nazwa zmiennej zbudowana jest z liter małych i dużych, cyfr oraz znaków podkreślenia "_". Pierwszym znakiem nie może być cyfra oraz nie zaleca się na pierwszy znak dużych liter oraz znaku podkreślenia (tak nazwane zmienne pełnią specjalne funkcje). Nazwy zmiennych nie powinny być zbyt długie (bo wtedy łatwo o pomyłki). Nazwy zmiennych powinny wiązać się z ich użyciem w programie. Litery duże i małe są rozpoznawane. Nazwa zmiennej nie może być identyczna ze słowem kluczowym Pythona. Słowa te są  następujące (warto je sobie wydrukować i trzymać pod ręką):

False  class    from     or
None   continue global   pass
True   def      if       raise
and    del      import   return
as     elif     in       try
assert else     is       while
async  except   lambda   with
await  finally  nonlocal yield
break  for      not

zmienna = "...tekst..."
zmienna = '...tekst...'

Tworzy zmienną o podanej nazwie i przypisuje jej tekst.


print("...tekst...")
print('...tekst...')
print(t1, t2, ...)

Wyświetla podany tekst (lub teksty rozdzielone przecinkami: wtedy wstawia na wydruku automatycznie spacje pomiędzy tymi tekstami) i przechodzi do następnego wiersza.


print()

Wyświetla pusty wiersz.


print(..., end=t)

Na końcu wiersza wyświetla tekst t. Nie przechodzi automatycznie do nowego wiersza


zmienna = input("...tekst...")
zmienna = input('...tekst...')
input("...tekst...")
input('...tekst...')

Wyświetla podany tekst (można go pominąć, wtedy nic nie będzie wyświetlane), po czym odczytuje z klawiatury wiersz znaków aż do naciśnięcia klawisza Enter i przypisuje go do zmiennej. Jeśli użyjemy samej instrukcji input( ), to wyświetli ona podany tekst i odczyta z klawiatury wiersz znaków aż do naciśnięcia klawisza Enter. Odczytany wiersz zostanie zignorowany.


zmienna = t1 + t2 + ...

Jeśli t1, t2... są tekstami lub zmiennymi tekstowymi, to operator + połączy kopie tych tekstów w jeden tekst i przypisze go do zmiennej. Teksty składowe nie są zmieniane.


zmienna = t * n

Jeśli t jest tekstem lub zmienną tekstową, to operator * powieli kopię tego tekstu n razy, połączy te kopie w jeden tekst i przypisze go do zmiennej. Tekst t nie jest zmieniany.


t.upper()

Jeśli t jest tekstem lub zmienną tekstową, to funkcja upper() zwróci kopię tego tekstu z zamienionymi literami małymi na duże. Sam tekst t nie jest zmieniany.


t.lower()

Jeśli t jest tekstem lub zmienną tekstową, to funkcja lower() zwróci kopię tego tekstu z zamienionymi literami dużymi na małe. Sam tekst t nie jest zmieniany.


t.title()

Jeśli t jest tekstem lub zmienną tekstową, to funkcja title() zwróci kopię tego tekstu z ustawionymi dużymi literami na początku każdego wyrazu. Sam tekst t nie jest zmieniany.


Na początek:  podrozdziału   strony 

Odczyt danych liczbowych

Instrukcja input(...) zawsze zwraca tekst jako wynik, czyli ciąg znaków, które użytkownik wprowadził z klawiatury. Poniższy program odczytuje z klawiatury dwa wiersze tekstu i umieszcza je w zmiennych a i b. Następnie dodaje te zmienne i wynik umieszcza w zmiennej c, której zawartość wyświetla:

# Odczyt danych 1
# Data 17.03.2024
#----------------

a = input("tekst a = ")
b = input("tekst b= ")
c = a + b # łączymy teksty
print()
print("Wynik a + b =",c)

Wpisz jako teksty dwie kilkucyfrowe liczby:

tekst a = 123
tekst b = 567

Wynik a + b = 123567

Komputer potraktował je nie jako liczby, lecz jako dwa ciągi znaków cyfr i operacja c = a + b połączyła te dwa ciągi w jeden. Jeśli komputer ma potraktować odczytany tekst jako liczbę, a nie ciąg znaków, to musisz wykonać konwersję. Do tego celu mamy w Pythonie dwie funkcje:

int(tekst)
Zamienia tekst na liczbę całkowitą.

float(tekst)
Zamienia tekst na liczbę rzeczywistą.

Teraz nasz program może wyglądać następująco:

# Odczyt danych 2
# Data 17.03.2024
#----------------

a = int(input("liczba a = "))
b = int(input("liczba b = "))
c = a + b # dodajemy liczby
print()
print("Wynik a + b =",c)

Wpisz kolejno dwie dowolne liczby całkowite:

liczba a = 123
liczba b = 567

Wynik a + b = 690

Wersja dla liczb rzeczywistych:

# Odczyt danych 3
# Data 17.03.2024
#----------------

a = float(input("liczba a = "))
b = float(input("liczba b = "))
c = a + b # dodajemy liczby
print()
print("Wynik a + b =",c)

Na początek:  podrozdziału   strony 

Programy obliczeniowe

Typowy program obliczeniowy wykonywany jest w trzech krokach:

Krok 1: Odczyt danych
Krok 2: Wykonanie obliczeń
Krok 3: Wyprowadzenie wyników

Stopnie Celsjusza na Stopnie Fahrenheita

W krajach anglosaskich temperaturę podaje się w stopniach Fahrenheita. Pierwszy program odczytuje temperaturę w stopniach Celsjusza i przelicza ją na temperaturę w stopniach Fahrenheita. Wykorzystujemy wzór:

TF = 32 + 9/5TC

TF : temperatura w stopniach Fahrenheita
TC : temperatura w stopniach Celsjusza

# Program obliczeniowy
# Data 17.03.2024
#----------------

# odczyt danych

TC = int(input("TC = "))

# obliczenia

TF = 32 + 9 / 5 * TC

# wyprowadzenie wyniku

print("-----")
print("TF =",TF)
print()

TC = 100
-----
TF = 212.0

Stopnie Fahrenheita na Stopnie Celsjusza

Na podstawie poprzedniego programu napisz program, który odczyta temperaturę w stopniach Fahrenheita i przeliczy ją na temperaturę w stopniach Celsjusza.


Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2024 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.