@stivens podlinkował Ci filmiki wyjaśniające, więc jak je obejrzałeś to raczej powinieneś wiedzieć co i jak, ale jeszcze dopiszę na tym przykładzie ...
Funkcja działa tak, że jak ją definiujesz np.:
Kopiuj
def sprawdz_czy_wygrana(liczba1, liczba2):
To mówisz: Słuchaj Python, tutaj masz nową funkcję, która nazywa się "sprawdz_czy_wygrana", musi być wywoływana z dwoma argumentami, pierwszy z nich będziesz widział wewnątrz funkcji jako liczba1, a drugi jako liczba2. Jak ta funkcja jest wywoływana to Python te zmienne sobie odpowiednio przypisuje.
Te Twoje funkcje są pisane w bardzo chaotyczny sposób, brakuje im planu. Funkcja to taka mała czarna skrzyneczka, którą gdy potrząsasz (wywołujesz) to coś robi. Możesz do niej najpierw coś wrzucić (argumenty) by to coś "przemieliła", skrzyneczka może też coś "wypluwać" (poprzez return). U Ciebie tradycyjnie wszystko jest pomieszane.
Kopiuj
def dane(imie = None):
imie = input(f'podaj imie:')
return imie
Nazwa tradycyjnie nic nie mówi o czynności, którą ma wykonać funkcja, "danymi" może być wszystko. Funkcja opcjonalnie oczekuje argumentu "imie", z tym że jak podasz przy wywoływaniu funkcji to imię, to i tak zaraz pobierze nową wartość dla niej poprzez input, więc jest to zbędny parametr. "f" przed stringiem dajemy gdy chcemy w tekście umieścić jakieś wartości zmiennych. Zwraca imię, to jest ok.
Kopiuj
def obliczenie(rok_urodzenia = None, wiek = 0):
rok_urodzenia = input ('Podaj rok urodzenia: ')
wiek = int(aktualny_rok) - int(rok_urodzenia)
for x in dane():
print('f {x} masz lat: ',wiek)
return rok_urodzenia,wiek
Podobnie jak w przypadku "dane", wrzucasz i wyrzucasz z tej funkcji co popadnie. Rok urodzenia chcesz pobierać od użytkownika wewnątrz funkcji i obliczać w niej wiek? To usuń te parametry wejściowe. Chcesz tam wyświetlać wiek i imię osoby, wiek obliczysz, a imię jest Ci potrzebne z "zewnątrz" i to właśnie imię musisz sobie przekazać do niej poprzez argument funkcji. Pętla for... nie mam bladego pojęcia czemu ma służyć, wywalić. "f" w print daje się przed apostrofem/cudzysłowem, "x"... to właśnie powinna być nazwa argumentu funkcji, którego Ci brakuje. Funkcja zwraca rok_urodzenia i wiek i nic dalej z tym nie robisz, ale to już jak chcesz, nikt Ci nie zabroni ;)