Skip to main content
 首页 » 编程设计

python之我有什么办法可以提高效率吗

2025年05月04日13webabcd

我想知道是否有办法让这段代码更高效?只是说我对 python 和整个编程有点陌生。任何提示都会很棒。提前致谢。

这是我从哪里得到任务:http://www.101computing.net/how-old-is-your-cat/

该程序只是将猫的年龄转换为人类的年龄。

convertedAge = 0 
stage = 0 
 
question = input("Is you cat under 1 year old?.. Y/N") 
 
if ((question.lower() == "y") or (question.lower() == "yes")): 
  ageOfCat = int(input("How old is your cat (in months)?")) #cat < 1 year old 
  if 1 <= ageOfCat <= 2: 
    convertedAge = "9 to 10 months" 
  elif ageOfCat == 3: 
    convertedAge = "2 to 3 years" 
  elif ageOfCat == 4: 
    convertedAge = "5 to 6 years" 
  elif ageOfCat == 5: 
    convertedAge = "8 to 9 years" 
  elif ageOfCat == 6: 
    convertedAge = "10 years" 
  elif 7 <= ageOfCat <= 8: 
    convertedAge = "13 years" 
  elif 8 <= ageOfCat <= 11: 
    convertedAge = "14 years" 
  print("In human years your cat is the equivalent of " + str(convertedAge) + " old.") 
else: 
  ageOfCat = int(input("How old is your cat (in years)?")) #cat > 1 year old 
  if ageOfCat == 1: 
    convertedAge = 15 
  elif ageOfCat == 2: 
    convertedAge = 15 + 9 
  else: 
    convertedAge = 15 + 9 + ((ageOfCat-2) * 4) 
  print("In human years your cat is the equivalent of " + str(convertedAge) + " years old.") 

请您参考如下方法:

首先,您可以尝试使用字典来消除所有这些 if/else block :

convertedAges = { 
    1: "9 to 10 months", 
    2: "9 to 10 months", 
    3: "2 to 3 years", # and so on 
} 

然后使用字典:

convertedAge = convertedAges[ageOfCat] 

老实说,您应该关注可读性,尤其是在您刚刚起步时。就像您的第一个 if 可以是

if question.lower() in "yes": # "y" is in "yes", so is "yes" (a string is a substring of itself) 

如果您开始看到自己一遍又一遍地重复相同(或非常相似)的台词,请停下来想想您想要完成的事情。