本文翻译自:Putting a simple if-then-else statement on one line [duplicate]

Possible Duplicate: 可能重复:
Python Ternary Operator Python三元运算符

I'm just getting into Python and I really like the terseness of the syntax. 我刚刚进入Python,我非常喜欢语法的简洁性。 However, is there an easier way of writing an if - then - else statement so it fits on one line? 但是,是否有更简单的方法来编写if - then - else语句,使其适合一行?

For example: 例如:

if count == N:count = 0
else:count = N + 1

Is there a simpler way of writing this? 有没有更简单的写作方式? I mean, in Objective-C I would write this as: 我的意思是,在Objective-C中我会把它写成:

count = count == N ? 0 : count + 1;

Is there something similar for Python? Python有类似的东西吗?

Update 更新

I know that in this instance I can use count == (count + 1) % N . 我知道在这个例子中我可以使用count == (count + 1) % N

I'm asking about the general syntax. 我问的是一般语法。


#1楼

参考:https://stackoom.com/question/Bl7G/在一行上添加一个简单的if-then-else语句-重复


#2楼

Moreover, you can still use the "ordinary" if syntax and conflate it into one line with a colon. 此外,您仍然可以使用“普通” if语法,并使用冒号将其合并为一行。

if i > 3: print("We are done.")

or 要么

field_plural = None
if field_plural is not None: print("insert into testtable(plural) '{0}'".format(field_plural))

#3楼

That's more specifically a ternary operator expression than an if-then, here's the python syntax 这更像是一个三元运算符表达式而不是if-then,这是python语法

value_when_true if condition else value_when_false

Better Example: (thanks Mr. Burns ) 更好的例子:(感谢伯恩斯先生 )

'Yes' if fruit == 'Apple' else 'No'

Now with assignment and contrast with if syntax 现在使用if语法分配和对比

fruit = 'Apple'
isApple = True if fruit == 'Apple' else False

vs VS

fruit = 'Apple'
isApple = False
if fruit == 'Apple' : isApple = True

#4楼

count = 0 if count == N else N+1

- the ternary operator. - 三元运算符。 Although I'd say your solution is more readable than this. 虽然我说你的解决方案比这更具可读性。


#5楼

General ternary syntax: 一般三元语法:

value_true if <test> else value_false

Another way can be: 另一种方式可以是:

[value_false, value_true][<test>]

eg: 例如:

count = [0,N+1][count==N]

This evaluates both branches before choosing one. 这会在选择之前评估两个分支。 To only evaluate the chosen branch: 仅评估所选分支:

[lambda: value_false, lambda: value_true][<test>]()

eg: 例如:

count = [lambda:0, lambda:N+1][count==N]()

#6楼

<execute-test-successful-condition> if <test> else <execute-test-fail-condition>

它会变成你的代码片段,

count = 0 if count == N else N + 1

在一行上添加一个简单的if-then-else语句[重复]相关推荐

  1. 在Kubernetes上部署一个简单的、类PaaS的平台,原来这么容易!

    作者 | Bram Dingelstad 译者 | 弯月 责编 |徐威龙 封图| CSDN下载于视觉中国 我们都遇到过这种情况:有人发现了一个bug,然而这不是一般的软件bug,甚至都不是通常意义上的 ...

  2. 如何在网页上添加一个微信关注链接?(一键跳转微信关注公众号)!!注意是从外部跳到微信关注...

    如何在网页上添加一个微信关注链接?第三方浏览器打开微信的接口,微信只给部分合作平台开放了接口权限,任何第三方想调用只能是通过一些技术手段来请求接口,获取秘钥(ticket).那么如果我们想减少用户从外 ...

  3. android软键盘上添加一个按钮

    android软键盘上添加一个按钮: 第一种 我们在根布局的最底部添加一个按钮,利用布局中的ScrollView在软键盘弹出的时候 将底部的按钮挤压到软键盘上边,先看效果图: 看代码: <?xm ...

  4. 【Pytorch分布式训练】在MNIST数据集上训练一个简单CNN网络,将其改成分布式训练

    文章目录 普通单卡训练-GPU 普通单卡训练-CPU 分布式训练-GPU 分布式训练-CPU 租GPU服务器相关 以下代码示例基于:在MNIST数据集上训练一个简单CNN网络,将其改成分布式训练. 普 ...

  5. 如何为SharePoint添加一个简单地SMTP邮件发送服务器?

    SharePoint经常要进行相关的电子邮件通知, 如果企业内部没有Exchange专业的邮箱,那么可以通过在MOSS的服务器本机上自己部署一个简单的Email smtp 服务.配置方法如下: 一.使 ...

  6. [转]NS2上实现一个简单的路由协议

    NS2版本:2.34 要实现简单的路由协议: 就是按照你的要求从节点1发到节点2在从节点2发到节点3,我修改的是node节点的addr-classifier功能,因为addr-classifier是负 ...

  7. 如何用图灵添加一个简单的QQ聊天机器人

    tip:这里是使用简单的软件,添加一个QQ聊天机器人, 如果想要用代码实现, 请按Ctrl + F4 本文比较墨迹, 看的懂的话, 请开3倍速.本文写于2017/05/9,过期就不用看了 1.进入图灵 ...

  8. 在Linux上搭建 一个简单的vsftpd服务器

    主要配置文件如下: /etc/vsftpd/vsftpd.conf 主配置文件 /etc/vsftpd.ftpusers 阻止用户访问FTP服务器的用户名称清单 /etc/vsftpd.userlis ...

  9. QQ昵称我最炫----“移花接木”在QQ上的一个简单应用

    write by 洱海月 QQ:254034704 http://blog.csdn.net/networkcrazy 很多朋友在QQ昵称上面加上/mn./fw等命令,或者是加上一些特殊的字符,使昵称 ...

最新文章

  1. java中Log4j的使用
  2. 资本加码下注农牧供应链,健安供应链因何成为“香饽饽”?
  3. SpringBoot+Mybatis+Druid批量更新 multi-statement not allow异常
  4. 如何 给给软件开发 添加 代理_如何从“菜鸟码农”变成“一线架构师”?
  5. 项目开发流程 —— 需求文档和设计文档的区别
  6. 【信息系统项目管理师】信息系统项目管理师计算题汇总
  7. 如何控制局域网网速_无线路由器如何限制局域网网速 无线路由器限制局域网网速方法【介绍】...
  8. 如何删除ie浏览器缓存文件、缓存js
  9. MATLAB的appdesigner背景图片设置
  10. Hbase数据管理工具
  11. 战术板将要下岗 iPad登陆橄榄球场
  12. Spring2:bean的使用
  13. HAFederation
  14. mysql sql dateadd_SQL Server Dateadd()函数
  15. Nios II的Boot过程分析
  16. building web
  17. 【Layui】使用table和laypage组件实现动态显示列和分页
  18. 蓝桥杯.振兴中华(递归)
  19. 计算机基础教学效果分析,计算机应用基础的教学反思范文
  20. R语言使用自定义函数编写深度学习Leaky ReLU激活函数、并可视化Leaky ReLU激活函数

热门文章

  1. 第十、十一周项目五 - 摩托车继承自行车和机动车
  2. 正确的理解iOS MVC
  3. cn域名注册国外_国内cn域名注册量超com域名,“com”时代结束了吗?
  4. 解锁UI自动化新姿势-UI Recorder
  5. 写文章 使用conda管理python环境
  6. Mac OS build caffe2 Error:This file was generated by an older version of protoc which is
  7. 葡萄城报表介绍:复杂报表
  8. Fusioncharts图表组件API参考方法(Functions)汇总篇(续)
  9. onethink的熟悉
  10. Simulating Ocean Water (2) (2005-03-31 update)