Podany tylko 1 parametr funkcji

0

Cześć,

uczę się Pythona od podstaw i utknęłam przy jednym zadaniu. Mianowicie, mam napisać funkcję do liczenia prostokąta w taki sposób, aby gdy użytkownik poda tylko jeden parametr, ma obliczyć i zwrócić pole kwadratu. Dodatkowo zabezpieczam funkcję, na wypadek gdy użytkownik poda wartości ujemne bądź równe 0. Jak to zrobić?

def pole_prostokata(a,b):
if a <= 0 or b <= 0:
print("Jedna z podanych wartosci jest nieprawidlowa! ")
elif a is None and b > 0:
return a a
elif a > 0 and b is None:
return a a
else:
return a * b
0

Też o tym myślałam, tylko wartości do liczenia funkcji pobieram za pomocą inputa. Pisząc cały program do liczenia pól, definicje funkcji podałam na początku a gdy pisze,

def pole_prostokata (a, b = a):
	if a <= 0 or b <=0:
		print("Jedna z wartosci jest nieprawidlowa")
	return a * b

wtedy wyświetla mi się błąd, że zmienna a jest niezidentyfikowana. I nie wiem jak to poprawić

0

Nie jestem mistrzem Pythona. Na kolanie napisalbym "b = None" i w ciele "if b == None then b = a"

0
stivens napisał(a):

Nie jestem mistrzem Pythona. Na kolanie napisalbym "b = None" i w ciele "if b == None then b = a"

Też nie działa a poza tym w zadaniu napisane jest, że jeżeli użytkownik poda tylko 1 parametr ( czyli nie wiadomo który )...

1
#!/bin/python3

def area(a, b = None):
	if b is None:
		b = a
	print(a * b)


area(1)
area(2)
area(3)
area(4, 5)

./test.py 
1
4
9
20

1 użytkowników online, w tym zalogowanych: 0, gości: 1