2024-09-30 18:33:47 发布
网友
我在codecheftwitterhttps://twitter.com/codechef/status/941329495046459395中找到了这段代码。它是用C写的,我是用Python3写的。这是我的密码:
def vegas(a,b): temp = a a = b b = temp a = 6 b = 9 print(a,b) vegas(a,b) print(a,b)
答案是:
6 9 6 9
我的问题是,为什么我的“vegas”函数不交换变量“a”和“b”的值
是和否。。。 函数vegas做这个工作,但从不返回a和b,所以a和b仍然是6和9。Arguments are passed by assignment in Python.
你可以看到more here
它不会像你想的那样工作。This question正在完整地回答这个问题。简而言之:Python将参数a和b转换为两个变量,这两个变量只在vegas中可见。它们是由a和b的值启动的,但与外部a和b变量没有关系。你知道吗
a
b
vegas
要使代码正常工作,请执行以下操作:
def vegas(a,b): temp = a a = b b = temp return a,b a = 6 b = 9 print(a,b) a,b = vegas(a,b) print(a,b)
另外,您可能有兴趣知道可以用a,b = b,a交换两个值
a,b = b,a
这个代码片段是一个笑话,“在维加斯发生的事情留在维加斯”,因为函数不影响变量的值。要影响值,函数需要返回交换的结果。如果没有return语句,函数将不会影响变量,因为函数会创建自己的临时变量在函数中使用。你知道吗
是和否。。。 函数vegas做这个工作,但从不返回a和b,所以a和b仍然是6和9。Arguments are passed by assignment in Python.
你可以看到more here
它不会像你想的那样工作。This question正在完整地回答这个问题。简而言之:Python将参数
a
和b
转换为两个变量,这两个变量只在vegas
中可见。它们是由a
和b
的值启动的,但与外部a
和b
变量没有关系。你知道吗要使代码正常工作,请执行以下操作:
另外,您可能有兴趣知道可以用
a,b = b,a
交换两个值这个代码片段是一个笑话,“在维加斯发生的事情留在维加斯”,因为函数不影响变量的值。要影响值,函数需要返回交换的结果。如果没有return语句,函数将不会影响变量,因为函数会创建自己的临时变量在函数中使用。你知道吗
相关问题 更多 >
编程相关推荐