如何在以下代码中返回 if not 2 >= 3:
的布尔值?
如何从以前的if语句中获取结果值?我知道它的" true",但是我该如何指代?
def using_control_once():
if not 2 >= 3:
return "Success"
print using_control_again()
def using_control_once():
if not 2 >= 3:
return "Controlled"
print using_control_once()
我想在评估not 2 >= 3
后而不是返回函数分配的值后打印IF语句的值
在以下代码中,我没有为条件变量分配任何新值。我们只是在这里返回条件本身的值。
我认为这就是您要寻找的。
def using_control_once():
condition = not 2 >= 3
if condition:
return condition
print(using_control_once())
在python中,在有条件的语句中:
if <condition>:
<statement>
<condition>
在布尔上下文中进行评估,但并未保存在变量中。您在这里有两个选择:
1(如果您只需要打印条件的真实价值:
print(<condition>)
Devesh Kumar Singh建议,或者是安全的一面:
print(str(<condition>))
2(如果您需要if语句:
if <condition>:
print("True")
<other statement>
else:
print("False")
<other statement>
我希望这会有所帮助。我还建议阅读有关Python中有条件陈述的文章
如果要跟踪评估何时以及如何评估条件,则可以做这样的事情:
from inspect import getouterframes, currentframe, getsourcelines
import re
def test(exp):
frame_info = getouterframes(currentframe(), 2)[1]
result = re.search(f'{test.__name__}[ ]*(([^)]+))', frame_info.code_context[1], re.DOTALL)
condition = '{} is {}'.format(result.group(1), bool(exp))
print(condition)
return bool(exp)
def using_control_once(x):
if test(x < 10):
return "Success #1"
if test(x < 20):
return "Success #2"
if test(x < 30):
return "Success #3"
print("x=3")
result = using_control_once(3)
print(f"result is: {result}")
print("nx=13")
result = using_control_once(13)
print(f"result is: {result}")
print("nx=23")
result = using_control_once(23)
print(f"result is: {result}")
输出将是:
x=3
x < 10 is True
result is: Success #1
x=13
x < 10 is False
x < 20 is True
result is: Success #2
x=23
x < 10 is False
x < 20 is False
x < 30 is True
result is: Success #3
非常感谢伙计们,感谢勤奋的维克多,我仍然是Python和编程的新手。这将需要一些时间才能理解,但很高兴它可行。
def test(exp):
frame_info = getouterframes(currentframe(), 2)[1]
result = re.search(f'{test.__name__}[ ]*(([^)]+))',
frame_info.code_context[1], re.DOTALL)
condition = '{} is {}'.format(result.group(1), bool(exp))
print(condition)
return bool(exp)