• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tworzyłem kalkulator. Sprawdzałem jak program reaguje na komendy, gdy zrobiłem potege do sześcianu program widzi błąd.

VPS Starter Arubacloud
+1 głos
276 wizyt
pytanie zadane 16 kwietnia 2020 w Python przez cicociemny Nowicjusz (160 p.)

Miałem za zadanie zrobić kalkulator. Wszystko działało działało a jak zrobiłem potęge do sześcianu to lipa :(

Pomoże ktoś? Wyswietla się komunikat: unindent does not match any outer indentation level.

Prosze o wyrozumienie dopiero się uczę

Python files


#kalkulator
print("KALKULATOR NA ZALICZENIE Z INFORMATYKI DEDYKOWANY DLA PANA ADAMA")
 
def dodawanie(a, b):
   return a + b
 
def odejmowanie(a, b):
   return a - b
 
def mnozenie(a, b):
   return a * b
 
def dzielenie(a, b):
   return a / b
 
def potegowanie_do_kwadratu(a):
    return a **2 
   
 def potegowanie_do_sześcianu(a):
    return a **3 
 
wyjscie = False
while wyjscie == False:
 
    print("::Menu Adriana Męczyńskiego kl. 1aei::")
    print("1 - dodawanie")
    print("2 - odejmowanie")
    print("3 - mnozenie")
    print("4 - dzielenie")
    print("5 - potegowanie do kwadratu")
    print("6 - potegowanie do sześcianu")
    print("7 - wyjscie")
 
    choice = input("Wybierz (1/2/3/4/5/6/7):")
 
    if choice == '7':
        pytanie = input("Panie Adamie czy napewno? Proszę napiać. (Tak/Nie): ")
        if pytanie == 'Tak':
            wyjscie = True
            print('Koniec programu! Dowidzenia Panie Adamie')
            exit()
        elif pytanie == 'Nie':
            wyjscie = False
            print('Powraca Pan do mojego programu')
            choice = input("Wybierz (1/2/3/4/5/6):")
 
    x= float(input("Podaj liczbe: "))
    y = float(input("Podaj liczbe: "))
 
    if choice == '1':
         print(x,"+",y,"=", dodawanie(a,b))
 
    elif choice == '2':
        print(x,"-",y,"=", odejmowanie(a,b))
 
    elif choice == '3':
         print(x,"*",y,"=", mnozenie(a,b))
 
    elif choice == '4':
         print(x,"/",y,"=", dzielenie(a,b))
 
    elif choice == '5':
        print(x,"**2",y,"=", potegowanie(a,b))
        
    elif choice == '6':
        print(x,"**3",y,"=", potegowanie(a,b))
      
 
    else:
     print("Panie Adamie wybrał Pan nieistniejącą opcje lub próbuje Pan dzielić przez zero!")

1 odpowiedź

+2 głosów
odpowiedź 16 kwietnia 2020 przez DawidK Nałogowiec (37,910 p.)
wybrane 16 kwietnia 2020 przez cicociemny
 
Najlepsza
Ten  komunikat oznacza, że jest problem z białymi znakami / wcięciami. Prawdopodobnie gdzieś jest za mało/za dużo spacji lub tabów. Obstawiałbym ostatnie else.
komentarz 16 kwietnia 2020 przez cicociemny Nowicjusz (160 p.)
Dziękuje teraz wszystko działa, (program się urochamia) ale niestety nie oblicza potęgi. Wiesz może o co chodzi? Mógłbys mi pomóc jeszcze raz? Tak jak mówiłem dopiero się uczę.. Błąd jest tego typu "  File "C:\Users\Admin\Desktop\Prace na lekcje\KAlkulator ukończony.py", line 64, in <module>
    print(x,"**2",y,"=", potegowanie(a,b))
NameError: name 'potegowanie' is not defined"
komentarz 16 kwietnia 2020 przez DawidK Nałogowiec (37,910 p.)
funkcje nazywają się u Ciebie:

- potegowanie_do_kwadratu

- potegowanie_do_sześcianu

nie ma funkcji:

- potegowanie
komentarz 16 kwietnia 2020 przez cicociemny Nowicjusz (160 p.)
próbowałem ale nadal nie wiem co mam zrobić. #kalkulator print("KALKULATOR NA ZALICZENIE Z INFORMATYKI DEDYKOWANY DLA PANA ADAMA") def dodawanie(a, b): return a + b def odejmowanie(a, b): return a - b def mnozenie(a, b): return a * b def dzielenie(a, b): return a / b def potegowanie_do_kwadratu(a,): return a **2 def potegowanie_do_sześcianu(a,): return a **3 wyjscie = False while wyjscie == False: print("::Menu Adriana Męczyńskiego kl. 1aei::") print("1 - dodawanie") print("2 - odejmowanie") print("3 - mnozenie") print("4 - dzielenie") print("5 - potegowanie do kwadratu") print("6 - potegowanie do sześcianu") print("7 - wyjscie") choice = input("Wybierz (1/2/3/4/5/6/7):") if choice == '7': pytanie = input("Panie Adamie czy napewno? Proszę napiać. (Tak/Nie): ") if pytanie == 'Tak': wyjscie = True print('Koniec programu! Dowidzenia Panie Adamie') exit() elif pytanie == 'Nie': wyjscie = False print('Powraca Pan do mojego programu') choice = input("Wybierz (1/2/3/4/5/6):") x= float(input("Podaj liczbe: ")) y = float(input("Podaj liczbe: ")) if choice == '1': print(a,"+",b,"=", dodawanie(a,b)) elif choice == '2': print(a,"-",b,"=", odejmowanie(a,b)) elif choice == '3': print(a,"*",b,"=", mnozenie(a,b)) elif choice == '4': print(a,"/",b,"=", dzielenie(a,b)) elif choice == '5': print(a,"**2","=", potegowanie_do_kwadratu (a)) elif choice == '6': print(a,"**3","=", potegowanie_do_sześcianu (a)) else: print("Panie Adamie wybrał Pan nieistniejącą opcje lub próbuje Pan dzielić przez zero!")
komentarz 16 kwietnia 2020 przez cicociemny Nowicjusz (160 p.)
#kalkulator
print("KALKULATOR NA ZALICZENIE Z INFORMATYKI DEDYKOWANY DLA PANA ADAMA")
 
def dodawanie(a, b):
   return a + b
 
def odejmowanie(a, b):
   return a - b
 
def mnozenie(a, b):
   return a * b
 
def dzielenie(a, b):
   return a / b
 
def potegowanie_do_kwadratu(a, b):
    return a **2
   
def potegowanie_do_sześcianu(a, b):
    return a **3
 
wyjscie = False
while wyjscie == False:
 
    print("::Menu Adriana Męczyńskiego kl. 1aei::")
    print("1 - dodawanie")
    print("2 - odejmowanie")
    print("3 - mnozenie")
    print("4 - dzielenie")
    print("5 - potegowanie do kwadratu")
    print("6 - potegowanie do sześcianu")
    print("7 - wyjscie")
 
    choice = input("Wybierz (1/2/3/4/5/6/7):")
 
    if choice == '7':
        pytanie = input("Panie Adamie czy napewno? Proszę napiać. (Tak/Nie): ")
        if pytanie == 'Tak':
            wyjscie = True
            print('Koniec programu! Dowidzenia Panie Adamie')
            exit()
        elif pytanie == 'Nie':
            wyjscie = False
            print('Powraca Pan do mojego programu')
            choice = input("Wybierz (1/2/3/4/5/6):")
 
    x= float(input("Podaj liczbe: "))
    y = float(input("Podaj liczbe: "))
 
    if choice == '1':
         print(a,"+",b,"=", dodawanie(a,b))
 
    elif choice == '2':
        print(a,"-",b,"=", odejmowanie(a,b))
 
    elif choice == '3':
         print(a,"*",b,"=", mnozenie(a,b))
 
    elif choice == '4':
         print(a,"/",b,"=", dzielenie(a,b))
 
    elif choice == '5':
        print(a,"**2","=", potegowanie_do_kwadratu (a))
        
    elif choice == '6':
        print(a,"**3","=", potegowanie_do_sześcianu (a))
      
 
    else:
     print("Panie Adamie wybrał Pan nieistniejącą opcje lub próbuje Pan dzielić przez zero!")
1
komentarz 16 kwietnia 2020 przez DawidK Nałogowiec (37,910 p.)

od użytkownika pobierasz zmienne x i y i takie też powinny zostać przekazane do funkcjach

 print(x,"+",y,"=", dodawanie(x,y))
 print(x,"-",y,"=", odejmowanie(x,y))

i w pozostałych

ewentualie zamień nazwy zmiennych od użytkownika na a i b

a = float(input("Podaj liczbe: "))
b = float(input("Podaj liczbe: "))

w funkcjach potęgowych powinien być tylko jeden parametr a

def potegowanie_do_kwadratu(a):
    return a **2
   
def potegowanie_do_sześcianu(a):
    return a **3

i użycie

print(x,"**2","=", potegowanie_do_kwadratu(x))

odnosnie zmiennych:

- masz zmienną x od użytkownika

- przekazujesz ją do funkcji np potegowanie_do_sześcianu(x)

- funkcja przyjmuje "dla siebie" 'x' jako 'a'

def potegowanie_do_sześcianu(a):
    return a **3

wykonuje obliczenia i zwraca wartość

chodzi mi o to, że 'a' jest niejako zmienna/nazwa "na potrzeby funkcji" nie musi to być taka sama nazwa jak ta przekazywana.

komentarz 16 kwietnia 2020 przez cicociemny Nowicjusz (160 p.)
Dziękuje wszystko działa

Podobne pytania

0 głosów
1 odpowiedź 594 wizyt
+1 głos
1 odpowiedź 145 wizyt
pytanie zadane 10 kwietnia 2016 w Python przez Daniel Saluter Początkujący (280 p.)

93,005 zapytań

141,971 odpowiedzi

321,252 komentarzy

62,344 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...