Tworzenie wlasnych funkcji - modularyzacja kodu w Pythonie
ð Podstawa programowa: II.1Funkcja to wydzielony, nazwany fragment kodu, ktory wykonuje okreslone zadanie. Funkcje pozwalaja na:
def powitanie():
print("Witaj na lekcji informatyki!")
print("Dzisiejszy temat: funkcje")
# Wywolanie funkcji
powitanie()
powitanie() # mozna wywolac wielokrotnie
Parametry pozwalaja przekazywac dane do funkcji:
# Jeden parametr
def powitaj(imie):
print(f"Czesc, {imie}!")
powitaj("Anna") # Czesc, Anna!
powitaj("Tomek") # Czesc, Tomek!
# Wiele parametrow
def pole_prostokata(a, b):
wynik = a * b
print(f"Pole prostokata {a}x{b} = {wynik}")
pole_prostokata(5, 3) # Pole prostokata 5x3 = 15
def powitaj(imie, powitanie="Czesc"):
print(f"{powitanie}, {imie}!")
powitaj("Anna") # Czesc, Anna!
powitaj("Anna", "Dzien dobry") # Dzien dobry, Anna!
Python ma wiele gotowych funkcji, ktorych juz uzywalismy:
print() - wyswietla tekstinput() - wczytuje dane od uzytkownikaint(), float(), str() - konwersja typowlen() - dlugosc napisu/listyrange() - generowanie zakresu liczbmax(), min(), sum() - operacje na kolekcjachabs() - wartosc bezwzglednaround() - zaokraglaniedef pole_kola(r):
"""Oblicza pole kola o promieniu r.
Args:
r: promien kola (liczba dodatnia)
"""
import math
wynik = math.pi * r ** 2
print(f"Pole kola o promieniu {r} = {wynik:.2f}")
Napisz trzy funkcje: pole_kwadratu(a), pole_prostokata(a, b), pole_trojkata(a, h). Kazda wyswietla pole odpowiedniej figury. Przetestuj je, wywolujac z roznymi argumentami.
def pole_kwadratu(a):
print(f"Pole kwadratu o boku {a} = {a * a}")
def pole_prostokata(a, b):
print(f"Pole prostokata {a}x{b} = {a * b}")
def pole_trojkata(a, h):
print(f"Pole trojkata (a={a}, h={h}) = {a * h / 2}")
pole_kwadratu(5)
pole_prostokata(4, 7)
pole_trojkata(6, 3)
Napisz funkcje separator(znak, dlugosc) z domyslnymi wartosciami: znak="-", dlugosc=40. Funkcja wyswietla linie z podanego znaku. Wywolaj ja na rozne sposoby.
def separator(znak="-", dlugosc=40):
print(znak * dlugosc)
separator() # ----------------------------------------
separator("=") # ========================================
separator("*", 20) # ********************
separator("#", 50) # ##################################################
Napisz program z menu: 1) Oblicz pole kola, 2) Oblicz obwod kola, 3) Koniec. Kazda opcja to osobna funkcja. Program dziala w petli az uzytkownik wybierze "Koniec".
import math
def pole_kola():
r = float(input("Podaj promien: "))
print(f"Pole kola = {math.pi * r**2:.2f}")
def obwod_kola():
r = float(input("Podaj promien: "))
print(f"Obwod kola = {2 * math.pi * r:.2f}")
def menu():
print("\n--- MENU ---")
print("1. Oblicz pole kola")
print("2. Oblicz obwod kola")
print("3. Koniec")
while True:
menu()
wybor = input("Twoj wybor: ")
if wybor == "1":
pole_kola()
elif wybor == "2":
obwod_kola()
elif wybor == "3":
print("Do zobaczenia!")
break
else:
print("Nieprawidlowy wybor!")
Napisz kalkulator z funkcjami: dodaj(a, b), odejmij(a, b), pomnoz(a, b), podziel(a, b), potega(a, n). Funkcja podziel powinna sprawdzac dzielenie przez zero. Calosc oplec menu w petli.
def dodaj(a, b):
print(f"{a} + {b} = {a + b}")
def odejmij(a, b):
print(f"{a} - {b} = {a - b}")
def pomnoz(a, b):
print(f"{a} * {b} = {a * b}")
def podziel(a, b):
if b == 0:
print("Blad: dzielenie przez zero!")
else:
print(f"{a} / {b} = {a / b:.4f}")
def potega(a, n):
print(f"{a} ^ {n} = {a ** n}")
while True:
print("\n=== KALKULATOR ===")
print("1. Dodawanie 2. Odejmowanie 3. Mnozenie")
print("4. Dzielenie 5. Potega 6. Koniec")
wybor = input("Wybierz: ")
if wybor == "6":
break
a = float(input("Podaj a: "))
b = float(input("Podaj b: "))
if wybor == "1": dodaj(a, b)
elif wybor == "2": odejmij(a, b)
elif wybor == "3": pomnoz(a, b)
elif wybor == "4": podziel(a, b)
elif wybor == "5": potega(a, int(b))
else: print("Nieprawidlowy wybor!")