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.
f=0
a=0
x=0
v=0
a=input("Diese Zahl wird addiert:")
x=input("Bis zu diser Zahl wird Addiert:")
if type(a) and (x) == int:
while a<=0 or x<=0:
f=f+1
if f>2:
print("Du Spast hast es schon",f,"falsch eingegeben")
print("Das ergibt keinen sinn")
a=int(input("Diese Zahl wird addiert:"))
x=int(input("Bis zu diser Zahl wird Addiert:"))
if a>0 and x>0:
break
x = int(x)
while v<x:
v=v+a
print(v)
else:
print("du huso")
a=input("Diese Zahl wird addiert:")
x=input("Bis zu diser Zahl wird Addiert:")
Man setzt nicht am Anfang nicht alle möglichen Variablen auf 0. Einbuchstabige Variablennamen sind schlecht, weil sie nicht sagen, wozu sie dienen.
a und x werden dann auch gleich mit einem anderen Wert überschrieben.
type(a) ist immer str und damit wahr. x ist nie gleich dem Typ int, denn es ist ein String. Damit wird die for-Schleife nie betreten und das Programm endet.
`input` liefert immer Strings, wenn man eine Zahl will, muß man die explizit umwandeln. Dann ist aber eine Typprüfung unsinnig (auch wenn sie korrekt programmiert wäre, was sie aber nicht ist).
a und x müssen also 0 oder negativ sein, sonst wird die while-Schleife nicht betreten. Das else wird auch nur in diesem Fall ausgeführt, weil in allen anderen Fällen die while-Bedingung gar nicht mehr gebraut wird.
Dann muß man wieder ein a und ein x eingeben, die wieder beide 0 oder negativ sein müssen.
v ist 0, x ist kleiner 0 also ist v<x nie erfüllt, womit die innere while-Schleife nie betreten wird. Wäre auch nicht gut, weil sie dann nie verlassen wird, weil v immer kleiner wird (a ist ja kleiner 0) und damit niemals größer als x.
Was im else gemacht wird, verstehe ich auch nicht.
Die eigentliche Frage ist also was versuchst Du da zu erreichen. Man schreibt keine 25 Zeilen herunter, ohne einmal die Einzelteile getestet zu haben, ob die was sinnvolles machen.
@Likigamer: Was heisst „bleibt stecken“ genau? Was passiert? Was gibst Du ein? Was erwartest Du statt dem was tatsächlich passiert? Und warum? Also an welcher Stelle macht das Programm nicht mehr das was Du erwartest?
Verwende aussagekräftige Namen und keine nichtssagenden einbuchstabigen Namen. Der Name soll dem Leser verraten was der Wert dahinter bedeutet. `f`, `a`, `x`, und `v` tun das hier so überhaupt gar nicht.
Man definiert auch nicht am Anfang alle Namen sondern erst dann wenn man sie tatsächlich braucht. Die Hälfte der Definitionen am Anfang wird auch überhaupt gar nicht benutzt sondern einfach nur durch einen anderen Wert ersetzt.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari