2017-10-23 4 views
-2
a = eval(input()) 
b = "." 
p = 0 
contador = 0 
while a != b: 
    a = eval(input()) 
    contador = contador + 1 
    if a == b: 
    print(contador) 
    print(p+a) 

Ich möchte ein Programm, das eine Reihe Zeile für Zeile liest, die auf summiert, wie viele Zahlen, die ich schrieb (Contador) und summiert die Zahlen zwischen ihnen. Beim Schreiben der Zahlen nach dem Schreiben "." Das Programm würde aufhören und beide Drucke machen. Und ich bekomme diese Fehler.unerwartetes EOF beim Parsen (Zusammenfassung)

Antwort

0

Die eval() ist das Problem. Dies funktioniert:

a = input() 
b = "." 
p = 0 
contador = 0 
while a != b: 
    contador = contador + 1 
    p += int(a) 

    a = input() 
    if a == b: 
     print(contador) 
     print(p) 

Sie verwenden eval(), wenn Sie eine Zeichenfolge in Python ausführbaren Code umwandeln möchten. Zum Beispiel würde eval('print("hello")') Hallo drucken.

+0

Vielen Dank! Es löste den Fehler, aber wenn ich es ausführe, würde es die Zahlen zwischen ihnen nicht zusammenfassen, es gibt 0 zurück. Gibt es einen anderen Fehler? Ich habe versucht p = p + a und dann gibt es mir den gleichen Fehler von int + str – RiceGum

+0

Ja! Ich danke dir sehr! Können Sie Ihre Logik hinter den Änderungen erklären, die Sie vorgenommen haben? – RiceGum

+0

Wenn Sie 'p = p + a' probiert haben, hat es nicht funktioniert, da' a' eine Zeichenkette ist, also müssen Sie 'int (a)' machen, um sie in eine Ganzzahl umzuwandeln. – gommb

Verwandte Themen