我正在将Python代码翻译成C,以便利用HPC系统上可用的并行性(这是一个痛苦的过程)而且我遇到了Python中的条件,原来的程序员使用它让我感到困惑
if rnum <> current_res:
alim = 0
if len(f): alim = f[-1]
Run Code Online (Sandbox Code Playgroud)
如果len(f)满足怎么办?我无法在网上找到以这种方式使用的这种约定.我想这是一个糟糕的编程习惯.
任何帮助将非常感激!
Mar*_*ers 15
在Python中,被视为"空"的值(例如数字0)在布尔上下文中被视为False,否则为True.
因此,len(f)如果f有长度则为True ,否则为空.如果f是标准的Python序列类型,那么代码可以简化为:
if f: alim = f[-1]
Run Code Online (Sandbox Code Playgroud)
因为这同样适用于序列; empty为False,长度非零意味着它为True.
有关所有重要细节,请参阅Python文档中的真值测试.
请注意,<>已弃用; 你应该真的用!=.
这个
if len(f)
Run Code Online (Sandbox Code Playgroud)
会翻译成:
if len(f) != 0
Run Code Online (Sandbox Code Playgroud)
或者在这种情况下,因为len(f)永远不会是负数,
if len(f) > 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20151 次 |
| 最近记录: |