首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在一行python3中组合多个if语句

如何在一行python3中组合多个if语句
EN

Stack Overflow用户
提问于 2021-01-31 04:53:46
回答 2查看 383关注 0票数 0

嗨,我对python和编程很陌生,我将如何将它们结合起来:

代码语言:javascript
复制
if "Web" in source:
    source = "WEB"
if ((source == "Blu-ray") and (other == "Remux") and (reso == "1080p")):
    reso = "BD Remux"
if "DVD" in name:
    reso = "DVD Remux"
if ((source == "Ultra HD Blu-ray") and (other == "Remux") and (reso == "2160p")):
    reso = "UHD Remux"
if source == "Ultra HD Blu-ray":
    source = "Blu-ray"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-31 05:11:01

您可以使用elif clause扩展带有额外条件的if语句:

代码语言:javascript
复制
mystring='what will it print?' 

if   mystring == 'hello':
     print('world!')
elif mystring == 'good':
     print('bye!')
elif mystring == 'how':
     print('are you?')
else:
     print('I ran out of ideas!')
代码语言:javascript
复制
 [out]: I ran out of ideas!

对您的示例稍加改写如下:

代码语言:javascript
复制
source='Ultra HD Blu-ray'
name='DVD'
reso='2160p'
other='Remux'

resos={'1080p':'BD Remux','2160p':'UHD Remux'}

if "Web" in source:
    source = "WEB"
elif "Blu-ray" in source and other == "Remux":
    source = "Blu-ray"
    reso   = resos.get(reso,'UNDEFINED')
elif "DVD" in name:
    reso = "DVD Remux"

print(source, name, reso)
代码语言:javascript
复制
[out]: Blu-ray DVD UHD Remux

请注意,我使用了resos字典来替换两个if标记,更详细地介绍了这个here

票数 1
EN

Stack Overflow用户

发布于 2021-01-31 05:57:20

将这么多的语句合并成一行(问题是一行吗?)可能不会是"Pythonic"。括号也是不必要的。

代码语言:javascript
复制
if "Web" in source:
    source = "WEB"
elif source == "Blu-ray" and other == "Remux" and reso == "1080p":
    reso = "BD Remux"
elif "DVD" in name:
    reso = "DVD Remux"
elif source == "Ultra HD Blu-ray" and other == "Remux" and reso == "2160p":
    reso = "UHD Remux"
elif source == "Ultra HD Blu-ray":
    source = "Blu-ray"
else:
    source = ""
          reso = ""
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65975866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档