Python 3.x 我认为有比许多if语句更好的方法

Python 3.x 我认为有比许多if语句更好的方法,python-3.x,Python 3.x,有没有更好、更短的方法 url=input(“url:”) 如果url中有“.com”: 打印(“has.com”) url中的elif“.uk”: 打印('has uk') url中的elif“.au”: 打印('hass au') 埃利夫: 打印('列表中没有任何内容') 我使用的是python3。如果您使用不同的参数执行相同的操作,那么for循环听起来像是一个竞争对手: for s in [".com", ".uk", ".au"]: if s in url: p

有没有更好、更短的方法

url=input(“url:”)
如果url中有“.com”:
打印(“has.com”)
url中的elif“.uk”:
打印('has uk')
url中的elif“.au”:
打印('hass au')
埃利夫:
打印('列表中没有任何内容')

我使用的是python3。

如果您使用不同的参数执行相同的操作,那么
for
循环听起来像是一个竞争对手:

for s in [".com", ".uk", ".au"]:
    if s in url:
        print("has %s" % s)
        break
else:
    print("has nothing")

如果
for
循环正常完成(而不是
中断
或异常),则将执行
else
块,因此上述构造是一个完美的解决方案。

如果您使用不同的参数执行相同的操作,那么
for
循环听起来像是一个竞争对手:

for s in [".com", ".uk", ".au"]:
    if s in url:
        print("has %s" % s)
        break
else:
    print("has nothing")

如果
for
循环正常完成(而不是
break
或异常),则将执行
else
块,因此上述构造是一个完美的解决方案。

您的代码看起来不错。另一种可能的办法:

accepted_domains=['.com'、'.uk'、'.au']
url=输入(“url:”)
尝试:
打印(“has”+接受的\u域[接受的\u域.索引(url)])
除值错误外:
打印('列表中没有任何内容')

您的代码看起来不错。另一种可能的办法:

accepted_domains=['.com'、'.uk'、'.au']
url=输入(“url:”)
尝试:
打印(“has”+接受的\u域[接受的\u域.索引(url)])
除值错误外:
打印('列表中没有任何内容')

考虑到您的代码已经在运行,并且您只想得到关于如何改进的建议,您的问题在我们姐妹方可能会更好。如何更好?你在找什么?你想改进什么?您的标准是什么?占位符代表什么?这里有太多令人毛骨悚然的信息……问题中的代码甚至无法工作(最后一个
elif
应该是
else
)。另外,逻辑看起来也不正确。考虑到您的代码已经在运行,您只想得到关于如何改进的建议,您的问题在我们姐妹方可能会更好。如何更好?你在找什么?你想改进什么?您的标准是什么?占位符代表什么?这里有太多令人毛骨悚然的信息……问题中的代码甚至无法工作(最后一个
elif
应该是
else
)。而且逻辑看起来也不正确。