You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python多行if条件使用方法及多地址匹配逻辑错误求助

解决你的Python if语句问题

嘿,很高兴能帮你搞定这两个Python问题!先解决你当前遇到的逻辑错误,再聊聊多行if条件的正确写法~

一、修复if语句的逻辑错误

你遇到的问题根源在于if语句的结构:你写了三个独立的if,只有第三个if和else配对。这意味着,哪怕输入匹配了前两个城市中的一个,第三个if的条件不成立时,else分支还是会执行,所以才会同时显示里程和错误提示。

修正方案1:使用if-elif-else链式结构

把后面的两个if改成elif,这样整个逻辑会按顺序判断,只要有一个条件满足,后面的判断就会跳过,最后只有所有条件都不满足时才会执行else:

from colorama import Fore  # 记得导入Fore模块哦

destino1 = "Tuscalosa AL"
destino2 = 'Warren OH'
destino3 = "Atlanta GA"

address = input("请输入地址:")  # 假设这里有获取输入的代码

if address == destino1:  # 这里用==更准确,in是判断子串,你要的是完全匹配对吧?
    print(Fore.WHITE + "\nTotal Miles ", "\033[34m","935 miles")
elif address == destino2:
    print(Fore.WHITE + "\nTotal Miles ", "\033[34m", "1600 miles")
elif address == destino3:
    print(Fore.WHITE + "\nTotal Miles ", "\033[34m", "1107 miles")
else:
    print(Fore.GREEN + "\nAddress not Found, check address again")

注意:原来的address in (destino1)其实是判断address是否是destino1的子串,比如输入"Tuscalosa"也会匹配,如果你需要的是完全匹配,用address == destino1更准确。

修正方案2:用字典优化代码(更推荐)

当你有多个键值对需要匹配时,用字典会让代码更简洁、易维护:

from colorama import Fore

city_miles = {
    "Tuscalosa AL": "935 miles",
    "Warren OH": "1600 miles",
    "Atlanta GA": "1107 miles"
}

address = input("请输入地址:")

miles = city_miles.get(address)
if miles:
    print(Fore.WHITE + "\nTotal Miles ", "\033[34m", miles)
else:
    print(Fore.GREEN + "\nAddress not Found, check address again")

这样后续要添加更多城市,只要在字典里加键值对就行,不用改判断逻辑,非常方便。

二、多行中使用if条件的方法

当你的if条件很长,需要拆分成多行时,有几种常用方式:

  1. 用括号包裹条件:这是最推荐的方式,不需要额外符号,可读性强:
if (address == destino1 
    or address == destino2 
    or address == destino3):
    print("匹配到目标城市")
  1. 使用反斜杠\换行:
if address == destino1 \
   or address == destino2 \
   or address == destino3:
    print("匹配到目标城市")
  1. 结合逻辑运算符拆分多行:如果是多个and/or连接的条件,可以每行写一个条件部分:
if (len(address) > 5 
    and address.endswith("AL") 
    and "Tuscalosa" in address):
    print("匹配到阿拉巴马州的Tuscalosa")

这样拆分后,长条件会更清晰,便于阅读和维护。

内容的提问来源于stack exchange,提问作者DanielTQ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 20:19:11