相关疑难解决方法(0)

Python有三元条件运算符吗?

如果Python没有三元条件运算符,是否可以使用其他语言结构模拟一个?

python operators ternary-operator conditional-operator

5591
推荐指数
25
解决办法
180万
查看次数

如何实现条件字符串格式化?

我一直在用Python编写基于文本的游戏,我遇到过一个实例,我希望根据一组条件对字符串进行不同的格式化.

具体来说,我想显示描述房间内物品的文字.我希望在房间的描述中显示这个,当且仅当有问题的物品对象位于房间对象的物品清单中时.它的设置方式,我觉得简单地连接基于条件的字符串将不会按我的意愿输出,并且最好为每种情况设置不同的字符串.

我的问题是,是否有基于布尔条件结果格式化字符串的pythonic方法?我可以使用for循环结构,但我想知道是否有更简单的东西,类似于生成器表达式.

我正在寻找类似于此的东西,以字符串形式

num = [x for x in xrange(1,100) if x % 10 == 0]
Run Code Online (Sandbox Code Playgroud)

作为我的意思的一般例子:

print "At least, that's what %s told me." %("he" if gender == "male", else: "she")
Run Code Online (Sandbox Code Playgroud)

我意识到这个例子不是有效的Python,但它总体上显示了我正在寻找的东西.我想知道布尔字符串格式是否有任何有效的表达式,类似于上面的.在搜索了一下之后,我无法找到任何与条件字符串格式有关的内容.我确实在格式字符串上找到了几个帖子,但这不是我想要的.

如果确实存在类似的东西,那将非常有用.我也对可能提出的任何替代方法持开放态度.提前感谢您提供的任何帮助.

python string-formatting

64
推荐指数
3
解决办法
5万
查看次数

编写if语句的更短,更pythonic的方式

我有这个

bc = 'off'

if c.page == 'blog':
    bc = 'on'

print bc
Run Code Online (Sandbox Code Playgroud)

在python中有更多的pythonic(和/或更短)的写法吗?

python if-statement

44
推荐指数
5
解决办法
5万
查看次数

Python:内联if语句别无效

如果Django Model的字段与条件匹配,则将其分配给值.

g = Car.objects.get(pk=1234)
g.data_version = my_dict['dataVersion'] if my_dict else expression_false # Do nothing??
Run Code Online (Sandbox Code Playgroud)

在那种情况下我怎么办?我们做不到if conditional else pass.

我知道我能做到:

if my_dict:
    g.data_version = my_dict['dataVersion']
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有办法进行内联expression_true if conditional else do nothing.

python django conditional if-statement inline

5
推荐指数
1
解决办法
2万
查看次数

如何在列表推导中使用if/else?

我正在尝试创建一个列表,其中偶数显示为偶数,奇数显示为"奇数".

这是我正在尝试的代码.

lst = [if x % 2 == 0 else 'odd' for x in range(11)]
Run Code Online (Sandbox Code Playgroud)

我希望得到这样的东西

[0, "odd", 2, "odd", 4, "odd", 6, "odd", 8, "odd", 10]
Run Code Online (Sandbox Code Playgroud)

但我一直有SyntaxError异常:

>>> lst = [if x % 2 == 0 else 'odd' for x in range(11)]
  File "<stdin>", line 1
    lst = [if x % 2 == 0 else 'odd' for x in range(11)]
            ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

python

0
推荐指数
1
解决办法
82
查看次数