我正在处理这个函数,它将儒略日转换为公历日期,输出应该类似于22.0,12.0,2000
这就是为什么在打印时我有这三个变量,但是当我运行它时,它会给我错误:
local variable 'mes' referenced before assignment.
此外,“A”以黄色突出显示,并警告“赋值前可能引用局部变量A”。我不知道怎么修。在
我试过改变缩进,但我看不出什么问题。在
以下是我的职能:
def JD2fechaGregoriana(fecha):
fecha1=int(fecha+0.5)
fecha2=float(fecha1-fecha)
Z =fecha1
F = fecha2
if (Z<2299161):
A=Z
elif (Z>= 2291161):
alpha=int((Z-1867216.25)/36524.25)
A= Z + 1 + alpha -int(alpha/4)
B= A +1524
C= int((B-122.1)/365.25)
D= int(365.25*C)
E= int((B-D)/30.6001)
dia1= B-D - int(30.6001*E)+F
if (E>14):
mes=E-1
elif (E==14 or E==15):
mes=E-13
if (mes>2):
anio=C-4716
elif(mes==1 or mes==2):
anio=C-4715
print(dia1,mes,anio)
提前谢谢你。在
朋友,回顾一下变量范围的话题,在IF-ELSE中比较变量之前先声明变量。用一些值初始化它们。例如
^{1}$month = 0
在
if...else
中使用变量mes
,然后打印其值。 即使变量mes
存在,但您在if...else
块中赋值,这自然会在if
块内创建变量,因此当您试图打印mes
时,它会给出错误:您应该首先在if语句之前将变量声明为
0
,然后在if块中进一步使用它。在例如:
^{1}$变量
A
也是如此。在会有用的!在
相关问题 更多 >
编程相关推荐