我有比许多if语句更好的方法

时间:2019-08-13 05:40:32

标签: python-3.x

是否有更好和更短的方法

url = input("Url: ")
if '.com' in url:
    print("has .com")
elif '.uk' in url:
    print('has uk')
elif '.au' in url:
    print('hass au')
elif:
    print('has nothing i the list')

我正在使用python3。

2 个答案:

答案 0 :(得分:5)

如果您使用不同的参数执行相同的操作,则for循环听起来像是一个有竞争力的候选人:

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

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

答案 1 :(得分:0)

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

accepted_domains = ['.com', '.uk', '.au']

url = input("Url: ")
try: 
   print("has " + accepted_domains[accepted_domains.index(url)])
except ValueError:
   print('has nothing i the list')