0

我是 Python 的初学者;如果我写这段代码,它会显示:

 Traceback (most recent call last):
  File "C:/Python32/ultimate tym remaining.py", line 37, in <module>
    print("so the reamining time is %d hour, %d minutes and %d seconds" %(hr,minr,sr))
 NameError: name 'minr' is not defined 

我的代码是:

hg=12
mg=00
sg=00
hn=10
mn=47
sn=49

if(mg>mn & hg>hn):
    hr=hn+24-hn-1
elif(mg<mn & hg>hn):
    hr=hn+24-hg
elif(mg>mn & hg<hn):
    hr=hn-hg-1
elif(mg<mn & hg<hn):
    hr=hn-hg
elif(hg==hn):
    hr=0

if(sg<sn & mg>mn):
    minr=mn+60-mg
elif(sg<sn & mg<mn):
    minr= mn-mg
elif(sg>sn & mg>mn):
    minr=mn+60-mg-1
elif(sg>sn & mg<mn):
    minr=mn-mg-1
elif(mg==mn):
    minr=0

if(sg>sn):
    sr=sn+60-sg
elif(sg<sn):
    sr=sn-sg
elif(sf==ss):
    sr=0

print("so the reamining time is %d hour, %d minutes and %d seconds" %(hr,minr,sr))

为什么会这样?为什么是hrsr工作,minr而不是?

4

1 回答 1

7

以下if构造定义minr

if(sg<sn & mg>mn):
    minr=mn+60-mg
elif(sg<sn & mg<mn):
    minr= mn-mg
elif(sg>sn & mg>mn):
    minr=mn+60-mg-1
elif(sg>sn & mg<mn):
    minr=mn-mg-1
elif(mg==mn):
    minr=0

发生的事情很简单:没有一个条件恰好是Trueminr未定义。这甚至可以在修复逻辑 AND 运算符之后发生 -正如 Amber 指出的那样, 它是and, not 。可能会成立,而.&sg == snmg != mn

于 2012-06-08T16:35:40.090 回答