Python 3.x 是什么导致了这个名称错误?Python3.x
我的代码是来自网站rosalind.info的IPRB问题。它适用于变量k、m、n的示例数据集值2、2、2。但是当我改变变量,比如25,25,19。它给出了:Python 3.x 是什么导致了这个名称错误?Python3.x,python-3.x,nameerror,Python 3.x,Nameerror,我的代码是来自网站rosalind.info的IPRB问题。它适用于变量k、m、n的示例数据集值2、2、2。但是当我改变变量,比如25,25,19。它给出了: C:\Users\mNm\PycharmProjects\PySummer\venv\Scripts\python.exe C:/Users/mNm/PycharmProjects/PySummer/venv/Scripts/IPRB.py Traceback (most recent call last): File "C:/Use
C:\Users\mNm\PycharmProjects\PySummer\venv\Scripts\python.exe C:/Users/mNm/PycharmProjects/PySummer/venv/Scripts/IPRB.py
Traceback (most recent call last):
File "C:/Users/mNm/PycharmProjects/PySummer/venv/Scripts/IPRB.py", line 43, in <module>
pr3 = float(pr31 + pr32 + pr33)
NameError: name 'pr31' is not defined
Process finished with exit code 1
只有当
i==n
并且org
中的某个值等于k
时,才定义pr31
,消息指出了问题所在。在将pr31
设置为具有值之前,您正在尝试访问第43行上的pr31
。以后,请进行更改。这将帮助您和我们了解问题。谢谢。我将删除并以更清晰的方式重新发送问题。对不起,我态度不好。这是我的第一次。
k = 2
m = 2
n = 2
whole = k + m + n
org = [k, m, n]
for i in org:
if i == k:
k_start = float(k/whole)
for j in org:
if j == k:
pr11 = float(k_start * ((k - 1) / (whole - 1)))
if j == m:
pr12 = float(k_start * (m / (whole - 1)))
if j == n:
pr13 = float(k_start * (n / (whole - 1)))
pr1 = float(pr11 + pr12 + pr13)
if i == m:
m_start = float(m/whole)
for j in org:
if j == k:
pr21 = float(m_start * (k / (whole - 1)))
if j == m:
pr22 = float(m_start * ((m - 1) / (whole - 1)) * 0.75)
if j == n:
pr23 = float(m_start * (n / (whole - 1)) * 0.5)
pr2 = float(pr21 + pr22 + pr23)
if i == n:
n_start = float(n / whole)
for j in org:
if j == k:
pr31 = float(n_start * (k / (whole - 1)))
if j == m:
pr32 = float(n_start * (m / (whole - 1)) * 0.5)
if j == n:
pr33 = float(n_start * ((n - 1) / (whole - 1)) * 0)
pr3 = float(pr31 + pr32 + pr33)
dom_pr = float(pr1 + pr2 + pr3)
print(dom_pr)