Неожиданные ошибки EOF при разборе; ошибка показывает пустую несуществующую строку - PullRequest
1 голос
/ 08 июля 2020

Я написал сценарий на python, чтобы вычислить основные c квадратные c уравнения. это был мой первый раз, когда я делал для меня сложный сценарий. Но когда я запускаю его, он показывает неожиданную ошибку eof при синтаксическом анализе с указанием причины, показанной в виде пустой строки в строке 60. У меня есть строки только до 59.

сценарий, который я использовал, был: -

a=input("write a\n")
b=input("write b\n")
c=input("write c\n")

import cmath
import math
import time

D=b**2 - 4*a*c 

def a_set(a,b,c):
    D=b**2 - 4*a*c
    T=cmath.sqrt(D)
    x1=(-b + T)/(2*a)
    x2=(-b - T)/(2*a)
    return x1,x2#,D

def b_set(a,b,c):
    D=b**2 - 4*a*c
    G=math.sqrt(D)
    x1=(-b + G)/(2*a)
    x2=(-b - G)/(2*a)
    return x1,x2#,D

sol1=a_set(a,b,c)[0]
sol2=a_set(a,b,c)[1]
# sol3=a_set(a,b,c)[2]

ans1=b_set(a,b,c)[0]
ans2=b_set(a,b,c)[1]
# ans3=b_set(a,b,c)[2]

try:
     a=int(a)
     try:
         D== -D 
         print("Imaginary roots found:-\n%e and %e" %(sol1,sol2))

     except ValueError:
         try:
             ans1==str("0") 
             print("Roots are equal")

         except ValueError: 
             print("answer is %r,%r" %(ans1,ans2))

except ValueError:
     try:
         a=float(a)
         try:
             D== -D
             print("Imaginary roots found:-\n%e and %e" %(sol1,sol2))
         except ValueError:
             try:
                 sol1==str("0")
                 print("Roots are equal")

             except ValueError:
                 print("answer is %r,%r" %(sol1,sol2))       

ошибка, которую я получаю: -

$ python maths.py
  File "maths.py", line 60

                                                                 ^
SyntaxError: unexpected EOF while parsing

1 Ответ

1 голос
/ 08 июля 2020

Это потому, что вы забыли добавить предложение except после одной из ваших попыток. Попробуйте следующее:


except ValueError:
     try:
         a=float(a)
         try:
             D== -D
             print("Imaginary roots found:-\n%e and %e" %(sol1,sol2))
         except ValueError:
             try:
                 sol1==str("0")
                 print("Roots are equal")

             except ValueError:
                 print("answer is %r,%r" %(sol1,sol2))       
                 
     except:
         pass

Для последней части вашего кода.

...