Simple Addition zweier Zahlen

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
lionsbook7
User
Beiträge: 5
Registriert: Dienstag 25. Juli 2023, 09:12

Hallo,

ich möchte einfach nur zwei Werte zwischen 5 und 10 addieren und finde einfach nicht meinen Fehler. Könnt ihr mir vielleicht helfen?

In der dritten Zeile stimmt irgendetwas mit den logischen Operatoren nicht. In diesem Fall sollen sich ja sowohl a als auch b nicht zwischen 5 und 10 befinden.
Wenn sich nur a zwischen 5 und 10 befindet, passt das auch, da Programm läuft weiter und gibt aus, dass sich b nicht zwischen 5 und 10 befindet. Wenn sich aber nur b zwischen 5 und 10 befindet, bleibt das Programm irgendwie im ersten Block und gibt aus, dass sich beide Zahlen nicht zwischen 5 und 10 befinden.
Was passt also mit dem "and" nicht, denn offenbar versteht das Programm ja nicht, dass beide Bedingungen erfüllt sein müssen.

Danke schon einmal!

a= int(input("Geben Sie eine Zahl zwischen 5 und 10 ein: "))
b= int(input("Geben Sie eine Zahl zwischen 5 und 10 ein: "))
while ((a < 6 or a>9) and (b<6 or b>6)):
print("Diese Zahlen befinden sich nicht zwischen 5 und 10.")
a = int(input("Geben Sie eine Zahl zwischen 5 und 10 ein: "))
b = int(input("Geben Sie eine Zahl zwischen 5 und 10 ein: "))
while a < 6 or a>9:
print ("a befindet sich nicht zwischen 5 und 10.")
a = int(input("Bitte geben Sie für a eine Zahl zwischen 5 und 10 ein: "))
while b<6 or b>9:
print("b befindet sich nicht zwischen 5 und 10.")
b = int(input("Bitte geben Sie für b eine Zahl zwischen 5 und 10 ein: "))
print ("Die Summe der beiden Zahlen beträgt " + str(a+b) + ".")
Benutzeravatar
ThomasL
User
Beiträge: 1367
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Könnte man so lösen:

Code: Alles auswählen

while True:
    a= int(input("Geben Sie eine Zahl zwischen 5 und 10 ein: "))
    b= int(input("Geben Sie eine Zahl zwischen 5 und 10 ein: "))
    if 5 < a < 10 and 5 < b < 10:
        break
    else:
        print('Eine der beiden Zahlen liegt nicht im geforderten Bereich!')
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Sirius3
User
Beiträge: 17761
Registriert: Sonntag 21. Oktober 2012, 17:20

Der Fehler ist, dass Deine Bedingung für b falsch ist.

Im Moment weiß der Nutzer aber gar nicht, welche Zahlen er eingeben soll.
Besser wäre es aber, die beiden Zahlen einzeln abzufragen:

Code: Alles auswählen

while True:
    a = int(input("Geben Sie eine Zahl a zwischen 5 und 10 ein: "))
    if 5 < a < 10:
        break
    print("a befindet sich nicht zwischen 5 und 10.")

while True:
    b = int(input("Geben Sie eine Zahl b zwischen 5 und 10 ein: "))
    if 5 < b < 10:
        break
    print("b befindet sich nicht zwischen 5 und 10.")
Noch besser, um Codeduplizierung zu vermeiden, eine Funktion schreiben:

Code: Alles auswählen

def input_number_range(name, low, high):
    while True:
        try:
            number = int(input(f"Geben Sie eine Zahl {name} zwischen {low} und {high} ein: "))
        except ValueError:
            print(f"{name} ist keine Zahl.")
        else:
            if low < number < high:
                return number
            print(f"{name} befindet sich nicht zwischen {low} und {high}.")

a = input_number_range("a", 5, 10)
b = input_number_range("b", 5, 10)
lionsbook7
User
Beiträge: 5
Registriert: Dienstag 25. Juli 2023, 09:12

Tausend Dank!
Antworten