Seite 1 von 1

Decibel Calculator. Kann jemand den Code überprüfen?

Verfasst: Freitag 7. Dezember 2018, 11:04
von donutdrake
Hallo an das Forum,

ich weiß wie man ein Taschenrechner erstellt und wie man Dezibel addiert.
Für die Addition muss man import math und math.log verwenden.
Jedoch wenn ich es ausführe kommt die folgende Fehlermeldung: return 10*math.log*((10^x)+(10^y))

TypeError: unsupported operand type(s) for *: 'int' and 'builtin_function_or_method'

Hier ist mein Code:

Code: Alles auswählen

import math

def addition(x, y):
    return 10*math.log*((10^x)+(10^y))

print("Willst du zwei Dezibelwerte addieren?")
print("Y oder N?")

choice=input()

num1=int(input("Gib den ersten Dezibelwert an:"))
num2=int(input("Gib den zweiten Dezibelwert an"))

if choice == 'Y':
    print(num1, "+", num2, "=",addition(num1,num2))

elif choice == 'N':
    print("Verstanden")

else:
    print("Ungültige Eingabe")    
Hiermit bedanke ich mich vorraus :)

Re: Decibel Calculator. Kann jemand den Code überprüfen?

Verfasst: Freitag 7. Dezember 2018, 11:09
von __deets__
math.log ist eine Funktion. math.log(10) ist der Aufruf der Funktion mit einem Argument. Und der ^-Operator macht auch nicht, was du denkst. Das ist bitweises xor. Du suchst **, den Operator zur Exponierung.

Re: Decibel Calculator. Kann jemand den Code überprüfen?

Verfasst: Freitag 7. Dezember 2018, 11:16
von donutdrake
__deets__ hat geschrieben: Freitag 7. Dezember 2018, 11:09 math.log ist eine Funktion. math.log(10) ist der Aufruf der Funktion mit einem Argument. Und der ^-Operator macht auch nicht, was du denkst. Das ist bitweises xor. Du suchst **, den Operator zur Exponierung.
Ah verstehe, danke dir, jetzt funktioniert die auch.
Aber wenn ich zwei Werte eingebe kommt als Ergebnis das hier raus.
Als Beispiel:
100 & 120
100 + 120 = 2.302585092994046e+120

Re: Decibel Calculator. Kann jemand den Code überprüfen?

Verfasst: Freitag 7. Dezember 2018, 11:28
von donutdrake
Beziehungsweise wie kann man der Exponent in Dezimalzahlen darstellen am Ende?

Re: Decibel Calculator. Kann jemand den Code überprüfen?

Verfasst: Freitag 7. Dezember 2018, 11:37
von ArtooDetoo
Ich glaube, die Formel müsstest du noch einmal überprüfen, bei 100 und 120 sollte in etwa wieder 120 dB herauskommen und nicht 2.3e120 ...
Zum Beispiel hast du die Division durch 10 in den Exponenten vergessen.