python - 三元可以与 python 中的 return 和 print 一起使用吗?

标签 python if-statement return function ternary

在检查非 y 变量时,三元很容易使用。

>>> x = None
>>> y = 2 if x else 3
>>> y
3

如果我想在返回之前检查是否存在三元等价物:

def foobar(x):
  if x:
    return x*x
  else:
    print 'x is None-y'

有没有类似的东西:

def foobar(x):
  return x*x if x else print 'x is None-y'

最佳答案

使用print作为函数,从Python2中的__future__导入:

>>> from __future__ import print_function
>>> def foobar(x):
      return x*x if x else print ('x is None-y')
... 
>>> foobar(0)
x is None-y
>>> foobar(2)
4

另一种选择是使用sys.stdout:

>>> import sys
>>> def foobar(x):
      return x*x if x else sys.stdout.write('x is None-y\n')
... 
>>> foobar(0)
x is None-y
>>> foobar(2)
4

关于python - 三元可以与 python 中的 return 和 print 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21078421/

相关文章:

php - 我们如何解析字符串条件以在 if 语句中使用

Jquery:如何突破each()及其内部的函数?

c - 如何从带有指针的函数返回数组

python - 如何理解 pandas resample 方法中的封闭和标签参数?

java - 启动时的if语句

bash - 具有多个条件的 if 语句

java - 为什么即使在 System.exit(0) 之后也需要返回;

python - 使用固定装置运行 python 测试用例时遇到问题

python - 字典中追加的功能?

python - 如何在python中使用谷歌语音识别api?