2016-05-29 8 views
0

Ich habe eine Liste von Floats (L1) und ich möchte L2 erstellen, die L1 * a ist. Ich möchte, dass der Benutzer die Handlung von L1 und L2 sieht, um zu sehen, ob er mit dem 'a', das er eingegeben hat, zufrieden ist. Er kann ein anderes "a" eingeben, bis er mit der Handlung zufrieden ist und dann Enter drücken, um die While-Schleife zu beenden. Ich habe das unten ausprobiert, aber mein Code zeigt nur Graphen an, wenn ich Enter drücke (und nicht jedes Mal ein neues eingibt). Was mache ich falsch?Mit While-Schleife für Benutzereingabe, bis Enter gedrückt wird

import matplotlib.pyplot as plt 
L1 = [10.1, 11.2, 12.3, 13.4, 14.5, 13.4, 12.3, 11.1, 10.0] 
done = False   
while not done: 
    a = float(input("Please enter alpha (between 0 and 1), Enter to exit: ")) 
    L2 = [x * a for x in L1] 
    plt.plot(L1) 
    plt.plot(L2) 
    if a == "": 
     done = True 

Antwort

0

Hier werden Sie zwingen den Eingang float

a = float(input("Please enter alpha (between 0 and 1), Enter to exit: ")) 

Und hier Sie überprüfen, ob das float ein leerer string (was es nicht sein kann)

if a == "": 
    done = True 

Ich würde vorschlagen,

while not done: 
    a = input("Please enter alpha (between 0 and 1), Enter to exit:") 
    if a == "": 
     done = True 
    else: 
     a = float(a) 
     L2 = [x * a for x in L1] 
     plt.plot(L1) 
     plt.plot(L2) 
+0

Obwohl Sie zu Recht auf Fehler in meinem Code hingewiesen haben, die ich zu schätzen weiß, verhält er sich immer noch nicht so, wie ich es wollte. Der Code fragt immer noch nach 'a' und der Graph kommt erst nachdem ich Enter gedrückt habe. – cJc

+0

Ich verstehe nicht was du meinst? Mit dem obigen Code, wenn Sie nur Enter drücken, wird es beendet. Wenn Sie einen 'float' eingeben und Enter drücken, ruft er die' plot' Methoden auf und fragt nach einer anderen Zahl. – C14L

+0

Import matplotlib.pyplot als plt L1 = [10.1, 11.2, 12.3, 13.4, 14.5, 13.4, 12.3, 11.1, 10.0] = False getan während nicht getan: a = Eingang ("Bitte geben Sie alpha (zwischen 0 und 1), Enter, um zu beenden: ") wenn a == "": getan = True sonst: a = Schwimmer (a) L2 = [x * a für x in L1] plt.plot (L1) plt.plot (L2) Bitte geben Sie alpha (zwischen 0 und 1), verlassen Enter: 0,7 Bitte geben Sie alpha (zwischen 0 und 1), um zu beenden geben Sie: – cJc

Verwandte Themen