Warum funktioniert das nicht?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Overlord_42
User
Beiträge: 5
Registriert: Donnerstag 6. August 2020, 23:26

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?
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

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
tonikae
User
Beiträge: 90
Registriert: Sonntag 23. Februar 2020, 10:27

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
Overlord_42
User
Beiträge: 5
Registriert: Donnerstag 6. August 2020, 23:26

Vielen Dank an euch beide für die Information und Hilfe! Ich werde bei zukünftigen Beiträgen darauf achten!
maowmaow
User
Beiträge: 18
Registriert: Freitag 7. August 2020, 10:30

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?
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

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.
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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).
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Wie man auch in der Dokumentation nachlesen kann.
Antworten