SharKv07 utworzono 20 października 2020 utworzono 20 października 2020 (edytowane) Witam mam problem z kodem. Chodzi o to że jak wybiorę daną figurę to program podczas próby zmiany na inną się psuje. Póki nie chce zmienić figury program liczy tylko dany rodzaj figury prawidłowo. Wie ktoś jak to zmienić? Proszę o pomoc. Kod zamieszczam poniżej. print('Wybierz figure, poprzez wpisanie cyfry danej figury:') odp = '' print('1. Prostokat\n2. Kwadrat\n3. Kolo\n4. Romb\n') odp = input('Podaj cyfre odpowiadajaca danej figurze: ') def tak_nie(): odp = str.lower(input('Jezeli chcesz wybrac inna figure napisz "tak". Jezeli nie napisz "nie": ')) if odp=="tak": print('1. Prostokat\n2. Kwadrat\n3. Kolo\n4. Romb\n') odp = input('Podaj cyfre odpowiadajaca figurze: ') if odp =="nie": print('Koniec programu!') def prostokat(): dlugosc = input('Podaj dlugosc dluzszego boku prostokata: ') szerokosc = input('Podaj dlugosc krotszego boku prostokata: ') szerokosc = int(szerokosc) dlugosc = int(dlugosc) pole = (dlugosc*szerokosc) print ('Pole twojego prostokata wynosi: ', pole) def kwadrat(): bok = input('Podaj dlugosc boku kwadratu: ') bok = int(bok) pole = (bok*bok) print('Pole twojego kwadratu wynosi:', pole) def romb(): wysokosc = input('Podaj wysokosc rombu: ') bok = input('Podaj dlugosc boku rombu: ') wysokosc = int(wysokosc) bok = int(bok) pole = (wysokosc*bok) print('Pole twojego rombu wynosi: ', pole) def kolo(): promien = input('Podaj dlugosc promienia: ') promien =int(promien) pole = ((promien**2)*3.14) print('Pole twojego kola wynosi: ', pole) print('Wartosc liczby PI zostala przyjeta jako 3,14') while True: try: odp = int(odp) if odp == 1: prostokat() tak_nie() elif odp == 2: kwadrat() tak_nie() elif odp == 3: kolo() tak_nie() elif odp == 4: romb() tak_nie() else: print("Wybrano zla liczbe!") except: print('Wpisano cos innego niz liczba!')
fernandez komentarz 2 lutego 2021 komentarz 2 lutego 2021 poczytaj o widoczności zmiennych: https://www.w3schools.com/python/python_scope.asp w skrócie, żeby rozwiązać ten konkretny przypadek najszybciej jak się da, musisz użyć słowa kluczowego "global" natomiast masz inny błąd w kodzie, ale myślę, że już dalej sobie poradzisz
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.