Seite 1 von 1

Warum funktioniert das nicht?

Verfasst: Sonntag 9. August 2020, 03:54
von Overlord_42
def multiplication_or_sum(num1, num2):
product = num1 * num2
if product <= 1000:
return product
else:
return num1 + num2

number1 = 20
number2 = 30

print("\n")
result = multiplication_or_sum(number1, number2)
print("The result is", result)



Das obere funktioniert. Nun wollte ich die Zahlenauswahl variabel machen und habe deswegen number 1= 20 und number2 = 30 geändert zu number1 = input(„Number 1 is: „) und dasselbe mit number2

Wenn ich das laufen lasse und 2 Zahlen eingebe, wird ein Fehler angezeigt. Warum?

Re: Warum funktioniert das nicht?

Verfasst: Sonntag 9. August 2020, 05:37
von sparrow
Setz deinen Code im Forum immer in Code-Tags. Die erscheinen automatisch, wenn man im "Vollständiger Editor & Vorschau[/code] den </>-Button drückt.

Zeige immer den Code, den du verwendest, nicht irgendwelchen ähnlichen Code.

Zeige immer die vollständige Fehlermeldung. Ebenfalls in Code Tags.

Denn woher sollen wir denn wissen, welcher Fehler aufgetreten ist?
Und die Fehlermeldung gibt dir ja auch einen Hinweis, was da falsch läuft. Zum Beispiel, dass der Rückgabewert von input() eine Zeichenkette ist und du daraus den passenden Datentyp machen musst.
Lesen: Datentypen in Python
Stichwort: casten

Re: Warum funktioniert das nicht?

Verfasst: Sonntag 9. August 2020, 07:46
von tonikae
Overlord_42 hat geschrieben: Sonntag 9. August 2020, 03:54 def multiplication_or_sum(num1, num2):
product = num1 * num2
if product <= 1000:
return product
else:
return num1 + num2

number1 = 20
number2 = 30

print("\n")
result = multiplication_or_sum(number1, number2)
print("The result is", result)



Das obere funktioniert. Nun wollte ich die Zahlenauswahl variabel machen und habe deswegen number 1= 20 und number2 = 30 geändert zu number1 = input(„Number 1 is: „) und dasselbe mit number2

Wenn ich das laufen lasse und 2 Zahlen eingebe, wird ein Fehler angezeigt. Warum?
Du brauchst nur eine kleine Änderung an deiner Input-Zeile vorzunehmen, dann funktioniert alles.Sonst sind die eingegebenen Zahlen nämlich Strings....und damit kann dein Proggi nicht rechnen
d.h.

number1 = int(input('Number 1 is: ')) # Wenn Eingabe = Integer
number2 = float(input('Number 2 is: ')) # Wenn Eingabe = Float

Re: Warum funktioniert das nicht?

Verfasst: Sonntag 9. August 2020, 11:52
von Overlord_42
Vielen Dank an euch beide für die Information und Hilfe! Ich werde bei zukünftigen Beiträgen darauf achten!

Re: Warum funktioniert das nicht?

Verfasst: Montag 10. August 2020, 05:46
von maowmaow
Wenn er sagt number1=20 dann ist das ein string, keine int? Sorry bin auch neu im programmieren, aber sollte das dann nicht automatisch ne int sein wenn ich ne Zahl gebe?

Re: Warum funktioniert das nicht?

Verfasst: Montag 10. August 2020, 06:22
von Jankie
Wenn du

Code: Alles auswählen

number = 20
hast, dann ist number in int, das kannst du auch herausfinden mit

Code: Alles auswählen

print(type(number))
Ein String ist immer zwischen zwei Hochkommata. Vielleicht lohnt es sich für dich hier noch einmal drüber zu schauen.

Re: Warum funktioniert das nicht?

Verfasst: Montag 10. August 2020, 07:39
von __blackjack__
@maowmaow: Wenn er sagt ``number1 = 20`` dann ist das natürlich eine Zahl. Er hat das dann aber mit ``number1 = input("Number 1 is: ")`` ersetzt. Und von `input()` kommt keine Zahl sondern immer eine Zeichenkette (in Python 3).

Re: Warum funktioniert das nicht?

Verfasst: Montag 10. August 2020, 07:50
von sparrow
Wie man auch in der Dokumentation nachlesen kann.