Python od podstaw: zmienne, typy danych, if/else, petle, funkcje
ð Podstawa programowa: II.1Klasa III to czas, w ktorym powinieneses swobodnie poruszac sie w srodowisku programistycznym. Ta lekcja jest powtorzeniem najwazniejszych zagadnien z Pythona, ktore beda fundamentem do bardziej zaawansowanych tematow w tym roku szkolnym. Upewnimy sie, ze kazdy uczen opanuje podstawy na poziomie pozwalajacym na samodzielna prace.
Zmienna to nazwane miejsce w pamieci komputera, w ktorym przechowujemy dane. W Pythonie nie deklarujemy typu zmiennej - jest on ustalany automatycznie na podstawie przypisanej wartosci (typowanie dynamiczne).
int - liczby calkowite (np. 42, -7)float - liczby zmiennoprzecinkowe (np. 3.14, -0.5)str - lancuchy znakow (np. "Witaj", 'Python')bool - wartosci logiczne (True, False)list - listy (np. [1, 2, 3])dict - slowniki (np. {"klucz": "wartosc"})
# Przykladowe zmienne
imie = "Jan" # str
wiek = 17 # int
srednia = 4.75 # float
zdal_egzamin = True # bool
# Sprawdzanie typu
print(type(imie)) # <class 'str'>
print(type(wiek)) # <class 'int'>
# Konwersja typow
tekst_liczby = "123"
liczba = int(tekst_liczby) # konwersja str -> int
print(liczba + 10) # 133
Instrukcje warunkowe pozwalaja na wykonywanie roznych fragmentow kodu w zaleznosci od spelnienia warunku. Python uzywa wciecia (indentacji) zamiast klamer do oznaczenia blokow kodu.
# Prosta instrukcja warunkowa
wiek = int(input("Podaj swoj wiek: "))
if wiek >= 18:
print("Jestes pelnoletni")
elif wiek >= 13:
print("Jestes nastolatkiem")
else:
print("Jestes dzieckiem")
# Operatory porownania: ==, !=, <, >, <=, >=
# Operatory logiczne: and, or, not
ocena = 5
frekwencja = 95
if ocena >= 4 and frekwencja >= 90:
print("Swietny uczen!")
Petla for sluzy do iterowania po sekwencji (liscie, zakresie, napisie). Petla while wykonuje kod tak dlugo, jak warunek jest prawdziwy.
# Petla for z range()
for i in range(5): # 0, 1, 2, 3, 4
print(i)
for i in range(1, 11): # 1, 2, ..., 10
print(i)
# Petla for po liscie
przedmioty = ["informatyka", "matematyka", "fizyka"]
for p in przedmioty:
print(f"Lubie {p}")
# Petla while
liczba = 1
while liczba <= 10:
print(liczba)
liczba += 1
# break i continue
for i in range(100):
if i == 5:
break # przerywa petle
if i % 2 == 0:
continue # pomija reszte iteracji
print(i) # wypisze: 1, 3
Funkcje pozwalaja na grupowanie kodu w logiczne bloki, ktore mozna wielokrotnie wywolywac. Funkcja moze przyjmowac argumenty i zwracac wartosc.
# Definicja funkcji
def powitanie(imie):
return f"Czesc, {imie}!"
print(powitanie("Anna")) # Czesc, Anna!
# Funkcja z wartoscia domyslna
def potega(baza, wykladnik=2):
return baza ** wykladnik
print(potega(3)) # 9 (3^2)
print(potega(2, 10)) # 1024 (2^10)
# Funkcja z wieloma wartosciami zwracanymi
def statystyki(lista):
return min(lista), max(lista), sum(lista) / len(lista)
mini, maksi, srednia = statystyki([4, 7, 2, 9, 1])
print(f"Min: {mini}, Max: {maksi}, Srednia: {srednia}")
Napisz program, ktory pobiera od uzytkownika wage (w kg) i wzrost (w metrach), oblicza wskaznik BMI (waga / wzrost^2) i wyswietla kategorie: <18.5 - niedowaga, 18.5-24.9 - norma, 25-29.9 - nadwaga, >=30 - otylosc.
waga = float(input("Podaj wage w kg: "))
wzrost = float(input("Podaj wzrost w metrach: "))
bmi = waga / (wzrost ** 2)
print(f"Twoje BMI: {bmi:.1f}")
if bmi < 18.5:
print("Kategoria: niedowaga")
elif bmi < 25:
print("Kategoria: norma")
elif bmi < 30:
print("Kategoria: nadwaga")
else:
print("Kategoria: otylosc")
Napisz program, ktory dla liczb od 1 do 100 wypisuje: "Fizz" jesli liczba jest podzielna przez 3, "Buzz" jesli przez 5, "FizzBuzz" jesli przez oba, a w przeciwnym razie sama liczbe.
for i in range(1, 101):
if i % 3 == 0 and i % 5 == 0:
print("FizzBuzz")
elif i % 3 == 0:
print("Fizz")
elif i % 5 == 0:
print("Buzz")
else:
print(i)
Napisz dwie funkcje: silnia(n) obliczajaca n! oraz fibonacci(n) zwracajaca n-ty wyraz ciagu Fibonacciego. Przetestuj je dla roznych wartosci.
def silnia(n):
if n <= 1:
return 1
wynik = 1
for i in range(2, n + 1):
wynik *= i
return wynik
def fibonacci(n):
if n <= 0:
return 0
if n == 1:
return 1
a, b = 0, 1
for _ in range(2, n + 1):
a, b = b, a + b
return b
# Testy
for i in range(8):
print(f"silnia({i}) = {silnia(i)}")
print(f"fibonacci({i}) = {fibonacci(i)}")
print()
Napisz program, ktory wczytuje oceny uczniow (zakonczenie: wpisanie 0), a nastepnie oblicza i wyswietla: srednia, mediane, najwyzsza i najnizsza ocene, ile ocen pozytywnych (>=2) i negatywnych (1).
def mediana(lista):
posortowana = sorted(lista)
n = len(posortowana)
if n % 2 == 1:
return posortowana[n // 2]
else:
return (posortowana[n // 2 - 1] + posortowana[n // 2]) / 2
oceny = []
while True:
ocena = int(input("Podaj ocene (0 = koniec): "))
if ocena == 0:
break
if 1 <= ocena <= 6:
oceny.append(ocena)
else:
print("Nieprawidlowa ocena!")
if oceny:
print(f"Liczba ocen: {len(oceny)}")
print(f"Srednia: {sum(oceny)/len(oceny):.2f}")
print(f"Mediana: {mediana(oceny)}")
print(f"Najwyzsza: {max(oceny)}")
print(f"Najnizsza: {min(oceny)}")
print(f"Pozytywne: {sum(1 for o in oceny if o >= 2)}")
print(f"Negatywne: {sum(1 for o in oceny if o == 1)}")
else:
print("Nie podano zadnych ocen.")