Python:'不支持的操作数类型'错误

时间:2015-09-17 18:01:24

标签: python unix

我在UNIX上使用Python。

我有这个代码,它应该采用单个输入Z并通过A的值从A = Z到A = 3Z,并找到每个核子的最大结合能(结合能/ A)。代码如下:

Z = int(input('An atomic Number '))
B_max = 0
A_max = 0

for A in xrange(Z,3*Z+1):  

      B1 = calc_binding_energy(A,Z) #calculates the binding energy 
                                    #for all the values of A

      B2 = float(B1/A)  #finds the energy per nucleon 

      if B2 > B_max:  
          B_max = B1/A  #Then if it is the max it goes back to that 
                        #calculation for the energy per nucleon

          A_max = A #Goes back to find A for the greatest energy

print(A_max)

print (B_max)

但它一直给我这个错误:

unsupported operand type(s) for /: 'NoneType' and 'int'

当我将Z输入更改为浮点数时,它给了我这个错误:

float() argument must be a string or a number

我做错了什么?

1 个答案:

答案 0 :(得分:1)

B1NoneTypecalc_binding_energy可能不会返回像您预期的数字。您需要粘贴/检查calc_binding_energy