Python 3.x Python if逻辑数据无法捕获

Python 3.x Python if逻辑数据无法捕获,python-3.x,if-statement,Python 3.x,If Statement,试图捕获输出统计信息,下面的代码检查布尔条件。如果为true,则添加到正文,否则传递或不添加任何详细信息到包含。如果最终条件为真,则下面的逻辑工作,否则在包含中不会捕获任何内容。请告知如何根据不同的布尔条件实现包含 fail = True success = True count = False contain = '' contain = contain + "\nFailed\n" if fail else '' contain = contain + "\n

试图捕获输出统计信息,下面的代码检查布尔条件。如果为true,则添加到正文,否则传递或不添加任何详细信息到包含。如果最终条件为真,则下面的逻辑工作,否则在包含中不会捕获任何内容。请告知如何根据不同的布尔条件实现包含

fail = True
success = True
count = False

contain = ''
contain = contain + "\nFailed\n" if fail else ''
contain = contain + "\nSuccess\n" if success else ''
contain = contain + "\nCount\n" if count else ''

print(contain)

预期产量

Failed

Success

当前输出为空

然而,如果我将count变量更改为true,我就能够实现预期的输出。但变量值并不总是正确的。只需要捕捉真实情况

fail = True
success = True
count = False

contain = ''
contain = contain + "\nFailed\n" if fail else ''
contain = contain + "\nSuccess\n" if success else ''
contain = contain + "\nCount\n" if count else ''

print(contain)

这会奏效的

fail = True
success = True
count = False

contain = ''
contain+= "\nFailed\n" if fail else ''
contain+= "\nSuccess\n" if success else ''
contain+= "\nCount\n" if count else ''

print(contain)
在上面的代码中,这三行将连接三元运算的结果以包含

contain+= "\nFailed\n" if fail else ''
contain+= "\nSuccess\n" if success else ''
contain+= "\nCount\n" if count else ''
在原始代码中,等效行将contain的值设置为三值运算的结果

因此,在计数为False的最后一行中,contain设置为“”

也许这不是最好的解释,也许在代码中穿插一些打印语句可以澄清这一点

fail = True
success = True
count = False

contain = ''

contain = contain + "\nFailed\n" if fail else ''
print(f'contain: {contain}')
contain = contain + "\nSuccess\n" if success else ''
print(f'contain: {contain}')
contain = contain + "\nCount\n" if count else ''
print(f'contain: {contain}')
这会奏效的

fail = True
success = True
count = False

contain = ''
contain+= "\nFailed\n" if fail else ''
contain+= "\nSuccess\n" if success else ''
contain+= "\nCount\n" if count else ''

print(contain)
在上面的代码中,这三行将连接三元运算的结果以包含

contain+= "\nFailed\n" if fail else ''
contain+= "\nSuccess\n" if success else ''
contain+= "\nCount\n" if count else ''
在原始代码中,等效行将contain的值设置为三值运算的结果

因此,在计数为False的最后一行中,contain设置为“”

也许这不是最好的解释,也许在代码中穿插一些打印语句可以澄清这一点

fail = True
success = True
count = False

contain = ''

contain = contain + "\nFailed\n" if fail else ''
print(f'contain: {contain}')
contain = contain + "\nSuccess\n" if success else ''
print(f'contain: {contain}')
contain = contain + "\nCount\n" if count else ''
print(f'contain: {contain}')

当前if块转换为以下内容:

if fail:
    temp = contain +  "\nFailed\n"
    contain = temp
else:
    contain = ''

if success:
    temp = contain +  "\nSuccess\n"
    contain = temp
else:
    contain = ''

if count:
    temp = contain +  "\nCount\n"
    contain = temp
else:
    contain = ''
现在,由于计数为False,因此为contain分配了一个空字符串。在此if块之前,contain将具有正确的值。您可以通过在条件后面添加print语句来验证这一点

您可以尝试以下代码以获得正确答案:

contain = ''
contain += "\nFailed\n" if fail else ''
contain += "\nSuccess\n" if success else ''
contain += "\nCount\n" if count else ''

在这种情况下,您只需决定向现有字符串追加什么。

您当前的if块转换为以下内容:

if fail:
    temp = contain +  "\nFailed\n"
    contain = temp
else:
    contain = ''

if success:
    temp = contain +  "\nSuccess\n"
    contain = temp
else:
    contain = ''

if count:
    temp = contain +  "\nCount\n"
    contain = temp
else:
    contain = ''
现在,由于计数为False,因此为contain分配了一个空字符串。在此if块之前,contain将具有正确的值。您可以通过在条件后面添加print语句来验证这一点

您可以尝试以下代码以获得正确答案:

contain = ''
contain += "\nFailed\n" if fail else ''
contain += "\nSuccess\n" if success else ''
contain += "\nCount\n" if count else ''

在这种情况下,您只需要决定向现有字符串追加什么。

使用括号。代码将其解释为
(contain+“\n count\n”)if fail else“”
,而不是
contain+(“\n count\n”if fail else“”)
谢谢您使用括号。代码将其解释为
(contain+“\n count\n”)if fail-else“”
,而不是
contain+(“\n count\n”if fail-else“”)
谢谢你的代码。如果您添加一些解释,这可能是一个很好的答案。很好的代码。如果您添加一些解释,这可能是一个很好的答案。