简体   繁体   English

python-def-else语句不起作用

[英]python - def - else statement not working

Okay, I'm very new to this, wrote a simple unit conversion program from miles to km however my else statement doesn't seem to be working. 好的,我对此很陌生,编写了一个简单的单位转换程序,从英里到公里,但是我的else语句似乎不起作用。

Here's what wrote: 内容如下:

def kmtoMil(dist):
   return (dist / 0.62137)

def miltoKm(dist):
   return (dist * 0.62137)

def convert(dist, toScale):
   if toScale.lower() == "K":
      return miltoKm(dist)
   else:
      return kmtoMil(dist)

print ("Enter a distance: ")
dist = int(input())
print ("Choose unit to convert to: ")
scale = input()
convertDist = convert(dist, scale)
print (dist, convertDist, scale)

It seems to apply the first def (I can interchange the kmtoMil & miltoKm on line 9 & 11 and 9 seems to take) but not the second. 它似乎应用了第一个定义(我可以在第9和11行上互换kmtoMil和miltoKm,而第9行似乎需要),但没有应用第二个。 I hope that makes sense. 我希望这是有道理的。

I'm thinking something wrong with the else: statement...but not sure and curious. 我在想别的问题else:陈述...但是不确定和好奇。

Thanks in advance! 提前致谢!

you have a bug dude... its pretty simple 你有一个臭虫家伙,这很简单

if toScale.lower() == "K":
SHOULD BE
if toScale.lower() == "k":

but try this: 但是尝试一下:

if toScale in ["K", "k"]:

You're using lower() but comparing with an upper-case character. 您正在使用lower()但要与大写字符进行比较。 So consider using if toScale.lower() == "k": or if toScale.upper() == "K": . 因此,请考虑使用if toScale.lower() == "k":if toScale.upper() == "K":

toScale.lower() == "K"更改为toScale.lower() == "k"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM