• 注册
  • 后端开发博客 后端开发博客 关注:0 内容:2417

    Python基础之 三元运算符|Python 主题月

  • 查看作者
  • 打赏作者
  • 当前位置: 职业司 > 后端开发 > 后端开发博客 > 正文
    • 后端开发博客
    •  三元运算符

      本文正在参加「Python主题月」,详情查看活动链接

      三元运算符在 Python 中通常称为条件表达式。这些运算符根据条件为真与否来评估某些内容。

      方法一:if else

      格式

      1 if True else 2  # 条件成立为1, 不成立为2
      复制代码

      示例:

      abc = True
      state = 1 if abc else 2
      print(state)
      >>> 1
      复制代码

      它允许快速测试条件而不是多行 if 语句。很多时候它非常有用,可以使您的代码紧凑但仍可维护。

      方法二:(a,b)[True]

      另一个更方便且未广泛使用的示例涉及元组。下面是一些示例代码:

      格式:

      (is_false, is_true)[test]  # test等于True就输出is_true,为False就输出is_false
      复制代码

      例子:

      nice = True
      personality = ("mean", "nice")[nice]
      print(personality)
      >>> nice
      复制代码

      这很简单,因为 True == 1 和 False == 0,因此除了元组之外还可以使用列表来完成。

      上面的例子并没有被广泛使用,因为容易混淆元组中将真值放在哪里和将假值放在哪里。

      避免使用元组三元组的另一个原因是它会导致计算元组的两个元素,而 if-else 三元运算符则不会。

      例子:

      condition = True
      print(2 if condition else 1/0)
      >>> 2
      print((1/0, 2)[condition])
      >>> ZeroDivisionError: division by zero
      复制代码

      发生这种情况是因为使用元组三元技术,首先构建元组,然后找到索引。对于 if-else 三元运算符,它遵循正常的 if-else 逻辑树。因此,如果一种情况可以根据条件引发异常,或者如果任何一种情况都是计算量大的方法,最好避免使用元组。

      方法三:速记三元

      在 python 中还有速记三元标签,它是您在上面看到的普通三元运算符的较短版本。

      例子

      >>> True or "Some"
      True
      >>>
      >>> False or "Some"
      'Some'
      复制代码

      第一个语句(True 或“Some”)将返回True,第二个语句(False 或“Some”)将返回Some。

      如果您想快速检查函数的输出并在输出为空时给出有用的消息,这将很有帮助:

      >>> output = None
      >>> msg = output or "No data returned"
      >>> print(msg)
      No data returned
      复制代码

      或者作为一种使用动态默认值定义函数参数的简单方法:

      >>> def my_function(real_name, optional_display_name=None):
      >>>     optional_display_name = optional_display_name or real_name
      >>>     print(optional_display_name)
      >>> my_function("John")
      John
      >>> my_function("Mike", "anonymous123")
      anonymous123
      复制代码

      请登录之后再进行评论

      登录

      手机阅读天地(APP)

      • 微信公众号
      • 微信小程序
      • 安卓APP
      手机浏览,惊喜多多
      匿名树洞,说我想说!
      问答悬赏,VIP可见!
      密码可见,回复可见!
      即时聊天、群聊互动!
      宠物孵化,赠送礼物!
      动态像框,专属头衔!
      挑战/抽奖,金币送不停!
      赶紧体会下,不会让你失望!
    • 实时动态
    • 签到
    • 做任务
    • 发表内容
    • 偏好设置
    • 到底部
    • 帖子间隔 侧栏位置:
    • 还没有账号?点这里立即注册