Spyder не всегда указывает, какие части кода требуют обслуживания - PullRequest
0 голосов
/ 18 февраля 2019

Spyder не сообщает мне местонахождение ошибки или ошибок при отладке.это говорит ipdb> дважды на двух отдельных строках.

Я пробовал гуглить, что делать с ipdb, потому что он, кажется, позволяет запускать код через консоль, но что касается аффективной отладки таким образом ...

Мне нужноиспользовать чистую функцию и основную функцию, но сейчас кажется, что большая часть моего кода чистой функции кажется излишней, потому что я не уверен, как сбалансировать вызов функции внутри функции с наличием двух отдельных функций, переменные которых всеопределены и признаны в Python.

def main (mylist):

    n= input("Enter number of binding sites:")


    K= input("Enter binding site constant:")


    x = input("Input genetic factor:")

    a = input("Enter epigenetic correction: ")

    for mylist in PaulingEq():

        H=0              #Normal range in men 13.5-17.5 grams/deciliter  
        print("Number of binding sites: ", n)
        print("Binding site constant: ", K)
        print("Genetic factor: ", x)
        print("Hemoglobin count: ", H = n/4)
        print("Epigenetic correction: ", a)
        print("\n")
        if n%4 != 0:
            response=input("Abnormal blood sample, enter y/n to continue: ")
        if response=='y':
            continue 
            print("Proceeding with calculations")
        else: 
            print("Canceling program")
            return
    mylist = [] 

    Y = ((1/n)*(K*x)+(3*a*K**2)*(x**2)+(3*a**3)*(K**3)*(x**3)+(a**6)*(K**4)*(x**4) ) / ( 1+ 4*K*(x)+(6*a*(K**2)*(x**2))+(4*a**3)*(K**3)*(x**3)+(a**6)*(K**4)(x**4) )              
    mylist= list.append(n,K,x,H,a,Y) 

    mylist= list.append(n,K,x,H,a,Y)  

    #n=mylist.pop(0)
    #K=mylist.pop(1)
    #x=mylist.pop(2)
    #H=mylist.pop(3)
    #a=mylist.pop(4)
    Y=mylist.pop(5)



    print("Oxygen affinity:", Y)


    if __name__ == "__main__":

        main(mylist)

def PaulingEq ():

#Interpretation of Adair's equation
BiSi_open = True
while BiSi_open:

    #The equation assumes subunits are arranged in a square 
    #The equation provides a tetrahedral structure
    #n= num_bisi              #number of binding sites
    #K= bisi_k         #binding site constant
    #x= genetic_factor  
    #Y= Oxygen_aff    
    #H= Hemoglobin_count
    #a= epigenetic factors 


       for mylist in main():                        #four oxygens for four binding sites in hemoglobin
            n=mylist.pop(0)
            K=mylist.pop(1)
            x=mylist.pop(2)
            a=mylist.pop(4)
            H=mylist.pop(3)

            for mylist in main():
                Y = ((1/n)*(K*x)+(3*a*K**2)*(x**2)+(3*a**3)*(K**3)*(x**3)+(a**6)*(K**4)*(x**4) ) / ( 1+ 4*K*(x)+(6*a*(K**2)*(x**2))+(4*a**3)*(K**3)*(x**3)+(a**6)*(K**4)(x**4) )


                mylist = []               
                mylist= list.append(n,K,x,H,a,Y)    


            BiSi_open=False  
            return mylist
...