gpt4 book ai didi

python-3.x - 显示 IF 语句的函数与 IF 语句的工作方式不同

转载 作者:行者123 更新时间:2023-12-01 01:21:28 25 4
gpt4 key购买 nike

这是一个我无法弄清楚的家庭作业问题的问题:

问题开始

Q3。让我们尝试编写一个与 if 语句执行相同操作的函数:

def if_function(condition, true_result, false_result):

"""Return true_result if condition is a true value, and false_result otherwise."""

if condition:
return true_result
else:
return false_result

在所有情况下,这个函数实际上并不与 if 语句做同样的事情。为了证明这一事实,编写函数 c、t 和 f,使得这些函数之一返回数字 1,但另一个不返回:
def with_if_statement():

if c():
return t()
else:
return f()

def with_if_function():

return if_function(c(), t(), f())

问题结束

这是我想出的:

如果 c() 为真,with_if_statement() 不评估 f(),但 with_if_function() 在检查 c() 是否为真之前评估所有 3。

所以,我想到了在 c() 中分配一个全局变量,并在 f() 中改变它的值

这是我的代码(不起作用):
def c():

try:
global x
except NameError:
x=1
if x==1:
return True
else:
return False

def t():

if x==1:
return (1)
else:
return (0)

def f():

global x
x=2
if x==1:
return (1)
else:
return (0)

谁能帮我找出答案?谢谢..!

最佳答案

global语句不应该抛出 NameError (所以你不会在 x=1 中运行 c() )。我会尝试在不使用异常的情况下重写您的代码,它们不需要解决这个问题,并且使它比需要的更复杂。使用全局变量并在函数中产生副作用当然是正确的做法。

关于python-3.x - 显示 IF 语句的函数与 IF 语句的工作方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8955828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com