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
相关产品推荐
相关产品推荐

