Ich bin ein echter Anfänger mit Python, obwohl ich jede Minute davon bis jetzt liebe.Ablehnen oder Schleife über Benutzereingabe, wenn zwei Bedingungen nicht erfüllt
Ich mache ein kleines Programm, das Benutzereingaben nimmt und dann Sachen damit macht. Mein Problem ist, dass die Zahlen die Benutzereingaben müssen
(1) Alle summieren sich zu nicht mehr als eine (dh a1 + a2 + a3 \ leq 1)
(2) Jede einzeln < 1.
so weitHier ist mein Code (nur die wesentliche Mitte Bit):
num_array = list()
a1 = raw_input('Enter percentage a (in decimal form): ')
a2 = raw_input('Enter percentage b (in decimal form): ')
...
an = raw_input('Enter percentage n (in decimal form): ')
li = [a1, a2, ... , an]
for s in li:
num_array.append(float(s))
Und ich würde gerne in etwas zu bauen, um es dem Benutzer Wiedereingänge Dinge zu verlangen, wenn ihre Eingaben entweder die Forderung übersteigen,
a1 + a2 + a3> 1
oder dass a1> 1, a2> 1, a3> 1 usw.
Ich habe das Gefühl, das wirklich einfach sein würde, zu implementieren, aber mit meinem begrenzten Wissen Ich stecke fest!
geschätzt Jede Hilfe wäre viel :-)
Ich sehe, dass Sie eine n ersten, die die Anzahl der Prozentsätze der Benutzereingabe wird, ist lesen müssen. Danach sollten Sie das Lesen eines Prozentsatzes n Mal wiederholen (verwenden Sie eine for-Anweisung, um dies zu erreichen). Jetzt können Sie eine Bestätigung hinzufügen, dass jeder Prozentwert beim Lesen oder am Ende niedriger als 1 ist. Auch am Ende würden Sie alle Werte hinzufügen und bestätigen, dass ihre Summe nicht größer als 1 ist. Setzen Sie eine Wiederholung für den gesamten Code und beenden Sie nur, wenn Sie möchten. Wenn also eine Validierung fehlschlägt, beginnen Sie erneut. – gplayer
Sie können unter https://wiki.python.org/moin/WhileLoop – Zety
Danke, @gplayer und @WalR starten! Das sind wirklich hilfreiche Vorschläge, und danke dafür, dass ich über die Antwort nachgedacht habe und mir nicht nur eins gegeben habe :-) –