请告诉我哪里出了问题,还有其他需要改进的地方
def finalcalc(y, d, m):
end = (y + d + m) % 7
return end
def monthlook(m):
if m == 1:
monthout = 6
elif m == 2:
monthout = 2
elif m == 3:
monthout = 2
elif m == 4:
monthout = 5
elif m == 5:
monthout = 0
elif m == 6:
monthout = 3
elif m == 7:
monthout = 5
elif m == 8:
monthout = 1
elif m == 9:
monthout = 4
elif m == 10:
monthout = 6
elif m == 11:
monthout = 2
elif m == 12:
monthout = 4
print(finalcalc(yearout, dayout, monthout))
def daysimp(d):
dayout = d % 7
monthlook(monthin)
def yearc(y):
y = y % 100
yearout = y + (y // 4)
yearrem = y % 4
if yearrem >= 2:
yearout += 1
yearout = yearout % 7
daysimp(dayin)
dayin = int(input("What day in the Month?"))
monthin = int(input("What Month Number? - Eg. January is 1"))
yearin = int(input("What Year?"))
yearc(yearin)
错误信息是:“NameError:name‘yearout’未定义”—请给出您发现的任何其他问题的解决方案和答案,以及可以简化和/或改进的方法。在
yearout
是函数yearc
中定义的一个名称,当您调用finalcalc()
时,该名称是不可见的,您将得到您的错误。在你对
dayout
和monthout
也有同样的问题。在在调用}的值应该是。也许你想把这些名字设置成其他函数的结果?然后,这些函数需要使用
finalcalc()
之前,您需要决定yearout
、dayout
和{return
使这些值对调用者可用。在例如,更改
yearc
函数以返回新的yearout
值:然后以新名称存储该函数的结果:
^{pr2}$对其他名称和函数也一样。在
你真的想再通读一遍Python tutorial on functions。在
与其从其他方法按顺序调用方法,不如从每个方法返回值,然后调用下一个方法来获取下一个值。在
因为,似乎您希望将这三个方法中计算的值传递给您的
finalcalc
方法,所以您需要更改方法以返回这些值yearout
、dayout
和monthout
,并将返回值存储在某个变量中。然后可以将这些返回值用作finalcalc
方法的参数:您的方法
^{pr2}$daysimp
可以简单地更改为:同样修改其他2种方法。在
相关问题 更多 >
编程相关推荐