相关疑难解决方法(0)

Python有三元条件运算符吗?

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

python operators ternary-operator conditional-operator

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

python 是否有速记来检查对象是否具有属性?

背景是我从 JSON API 获取数据,其中许多字段是可选的,我想要数据库中的大部分字段。当特定字段不可用时,我希望将空字符串 ( "") 写入数据库。

目前我一直在做:

if jsonobject.what_i_look_for:
  dbstring = jsonobject.what_i_look_for
else:
  dbstring = ""
Run Code Online (Sandbox Code Playgroud)

然后将dbstring插入到数据库中。然而,我现在得到了更多这些字段,我想要一个更清晰的代码,而不是一个包含大约 80% 的 if 语句的函数。

我找到了if-shorthandsthis shorthand 来检查变量是否为空,但两者似乎都不能直接作为字符串工作。我已经print()在交互式 python 3.5.2 shell 中对此进行了测试:

>>> print(testvar or "")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'testvar' is not defined

>>> print(testvar if testvar else "")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'testvar' is not defined
Run Code Online (Sandbox Code Playgroud)

这: …

python string if-statement conditional-operator python-3.x

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

如果需要速记,则需要速记的建议

我正在尝试以简写形式编写if else语句。如果不是,则检查一个值,如果尚未达到一个值,则递增;否则减去一个设定的数字。

如果可以的话,这是可行的,但是尝试将其作为速记版本并被卡住。

在这种情况下,您不能使用-=或+ =的问题吗?任何了解的帮助将不胜感激。

尝试过day- = 7,如果day == 7,否则day + = 1-但知道这是错误的,因为已经在左侧引用了var。

如果还可以的话

day = 5
if day == 7:
    day-=7
else:
    day+=1
Run Code Online (Sandbox Code Playgroud)

尝试以简写形式编写此代码,但在正确的日子+ = 1时出现错误,因为这显然是错误的。寻找有关如何在day!= 7时增加日值的建议

day = 5
day-=7 if day == 7 else +=1
Run Code Online (Sandbox Code Playgroud)

+ = 1引发错误。

期望一天是6

python

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