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未定義のままです。これは、論理積演算子を修正した後にも発生する可能性があります。Amberが指摘しているように and、これはそうではありません。保持する可能性があります。&sg == snmg != mn

于 2012-06-08T16:35:40.090 に答える