Как мне улучшить этот фрагмент кода, чтобы избежать ошибок - PullRequest
0 голосов
/ 02 августа 2020

Вот мой код для решения модели жидкой капли в ядерной физике (я знаю, что это не имеет отношения к моему запросу, но мне нужно ввести текст, чтобы я мог задать вопрос. Мне очень жаль, если я грубо это Кстати, мне просто нужна помощь, чтобы решить эту проблему, пожалуйста)

import pandas as pd
import matplotlib.pyplot as plt
#importing the excel sheet with elements, mass and atomic number
x=pd.read_excel('Elements.xlsx')
#converting atomic number column to a list
Z=x['Z'].tolist()
#converting mass column to another list
A=x['A'].tolist()
#converting number of neutrons to another list
N=x['N'].tolist()
#defining a function as the binding energy per nucleon eqn according to liquid drop model
#different energies per nucleon are listed below:
a1,a2,a3,a4,a5=14.1,13,0.595,19.0,33.5
i=0
Ev=a1 #volume energy per nucleon
Es=-a2/((A[i])**(1/3) #surface energy per nucleon
Eo=-a3*Z[i]*(Z[i]-1)/((A[i])**(4/3)) #coloumb energy per nucleon
Ea=-a4*((A[i]-2*Z[i])**2)/((A[i])**2) #asymmetry energy per nucleon
Ep=a5/(A[i])**(7/4) #pairing energy per nucleon

def y(i):
    if Z[i]%2==0 and N[i]%2==0:
        return Ev+Es+Eo+Ea+Ep
    elif Z[i]%2!=0 and N[i]!=0:
        return Ev+Es+Eo+Ea
    else:
        return Ev+Es+Eo+Ea-Ep

Я получаю эту ошибку:

 Eo=-a3*Z[i]*(Z[i]-1)/((A[i])**(4/3)) #coloumb energy per nucleon
    ^
SyntaxError: invalid syntax

Я не знаю, что здесь исправить. Пожалуйста, помогите.

1 Ответ

1 голос
/ 02 августа 2020

Вы забыли скобку здесь:

Es=-a2/((A[i])**(1/3)) #<--Here: surface energy per nucleon

Лучшим советом для вас будет:

  1. Закомментируйте проблему c кусок кода
  2. Вставьте значение-заглушку для Eo (например, Eo = 0)
  3. Причина такой ошибки будет очевидна
  4. Если все еще не очевидно, закомментируйте код сверху / снизу, по частям, тогда причина такого бага будет еще очевиднее
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...