Seite 1 von 1

Simple Addition zweier Zahlen

Verfasst: Donnerstag 27. Juli 2023, 08:56
von lionsbook7
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) + ".")

Re: Simple Addition zweier Zahlen

Verfasst: Donnerstag 27. Juli 2023, 09:04
von ThomasL
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!')

Re: Simple Addition zweier Zahlen

Verfasst: Donnerstag 27. Juli 2023, 12:33
von Sirius3
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)

Re: Simple Addition zweier Zahlen

Verfasst: Freitag 28. Juli 2023, 10:52
von lionsbook7
Tausend Dank!