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) + ".")
Simple Addition zweier Zahlen
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
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
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:
Noch besser, um Codeduplizierung zu vermeiden, eine Funktion schreiben:
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.")
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)