如果代码中的条件工作不正常,则代码中的任务之一

2024-10-03 21:24:00 发布

您现在位置:Python中文网/ 问答频道 /正文

https://www.codecademy.com/en/courses/python-beginner-P5YtY/1/6?curriculum_id=4f89dab3d788890003000096

def plane_ride_cost(city):

  if city== "Tampa" or "tampa":
      return 220 
  elif city== "Charlotte" or "charlotte":
      return 183
  elif city== "Pittsburgh" or "pittsburgh":
      return 222
  elif city== "Los Angeles" or "los angeles":
      return 474

在这段代码中,当提交给codeacedemy时,它只返回220,这是第一个返回值,我猜除了它没有被选中之外?你知道吗


Tags: orhttpscomidcityreturndefwww
3条回答

不能像那样同时对照两个不同的值来检查city的值。你知道吗

def plane_ride_cost(city):
  if city == "Tampa" or city == "tampa":
      return 220 
  elif city == "Charlotte" or city == "charlotte":
      return 183
  elif city == "Pittsburgh" or city == "pittsburgh":
      return 222
  elif city == "Los Angeles" or city == "los angeles":
      return 474

或者

def plane_ride_cost(city):
  if city in ["Tampa","tampa"]:
      return 220 
  elif city in ["Charlotte","charlotte"]:
      return 183
  elif city in ["Pittsburgh","pittsburgh"]:
      return 222
  elif city in ["Los Angeles","los angeles"]:
      return 474

你能做到的

if city == "Tampa" or city == "tampa":

或者

if city in ("Tampa", "tampa"):

字符串的另一个选项是使用lower方法(如果需要不区分大小写的comparison)

if city.lower() == "tampa":

您需要确保对照两个值检查city的值:

if city == "Tampa" or city == "tampa":
    # do stuff

否则,Python会将其解释为(city == "Tampa") or ("tampa"),后者的值总是True

或者,如果要检查列表中的多个条件,可以将值放入数组中:

tampa = ["Tampa", "tampa"]
if city in tampa:
    # do stuff

相关问题 更多 >