You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python自定义两参数交换值函数运行结果不符合预期求助

问题排查及修正

核心问题点

  • 错误1:函数返回值错误。你在函数内部交换的是局部形参n1、n2,但最终return的是未做任何修改的全局变量num1、num2,相当于交换逻辑没有作用到返回结果上。
  • 错误2:调用函数时没有接收返回值。Python中整数属于不可变类型,函数内对形参的修改不会直接影响外部的实参变量,你需要把函数返回的交换后的值重新赋值给外部的num1、num2才能生效。

修正后可运行代码

num1 = int(input('put the number 1 : '))
num2 = int(input('put the number 2 : '))

def permitation(n1,n2):
    nn1 = n1
    n1 = n2
    n2 = nn1
    # 返回交换后的局部变量而非全局变量
    return n1, n2

# 接收函数返回值,重新赋值给全局变量
num1, num2 = permitation(num1,num2)

print('num1 : {}'.format(num1))
print('num2 : {}'.format(num2))

扩展优化

你也可以用Python特有的语法糖直接完成变量交换,不需要定义临时变量nn1,交换逻辑可以简化为:

def permitation(n1,n2):
    return n2, n1

运行后即可得到你期望的输出结果。

内容的提问来源于stack exchange,提问作者user16723757

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 19:45:04