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

Python乘法函数控制台无输出问题及变量初始化疑问求助

为什么初始化全局变量后乘法函数才能运行?

最初代码的问题

你第一次写的代码里,调用multip(num2, num1)时,num2和num1这两个变量在全局范围内根本没定义过。Python执行到这一行会直接抛出NameError错误,程序直接终止,根本没机会进入函数内部执行输入和打印步骤,所以控制台没输出。

最初代码:

def multip(num2,num1):
    num1 = int(input("Give me a value for num1:"))
    num2 = int(input("Do the same for num2:"))
    print(num1 * num2)
multip(num2, num1)

加全局变量后的变化

你给num1和num2设了全局初始值后,调用multip(num2, num1)时,Python能找到这两个变量的存在(哪怕值是0),可以正常把参数传给函数,程序就能进入函数内部执行输入、计算和打印的逻辑了。

修改后代码:

num1 = 0
num2= 0

def multip(num2,num1):
    num1 = int(input("Give me a value for num1:"))
    num2 = int(input("Do the same for num2:"))
    print(num1 * num2)
multip(num2, num1)

额外优化建议

其实你这个函数根本不需要传参数,因为函数内部会重新通过输入获取num1和num2的值,完全可以去掉参数和全局变量,简化成:

def multip():
    num1 = int(input("Give me a value for num1:"))
    num2 = int(input("Do the same for num2:"))
    print(num1 * num2)
multip()

这样逻辑更清晰,也不会出现变量作用域的混淆。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 01:45:16