求助:从函数返回整数后在外部打印失败的问题
问题解决:无法访问函数内局部变量导致打印失败
嘿,我一眼就看出问题啦!你这段代码的核心问题是变量作用域——你在函数lukusarjanSumma内部定义的tulos是局部变量,它的作用范围只限于函数内部,函数外面根本“看不到”这个变量,所以直接打印tulos肯定会报错~
错误原因拆解
Python里,函数内部创建的变量默认是局部变量,只有在函数执行的过程中才能被访问。当函数执行完毕,局部变量就会被销毁,外部代码自然无法引用它。你现在直接在函数外调用tulos,Python会认为这个变量根本没被定义过。
修正后的代码方案
你需要调用函数并接收它的返回值,或者直接打印函数调用的结果,两种方式都能解决问题:
方案1:将函数返回值赋值给变量后打印
def lukusarjanSumma(lukun): tulos = (1 + lukun) * (lukun - 1 + 1) / 2 return tulos # 调用函数,把返回值赋值给外部的tulos变量 tulos = lukusarjanSumma(100) print('Lukusarjan summa n=100:', tulos) print(tulos)
方案2:直接打印函数调用结果(更简洁)
而且你的计算式还可以简化哦,(lukun -1 +1)其实就是lukun,可以优化一下:
def lukusarjanSumma(lukun): return (1 + lukun) * lukun / 2 # 直接调用函数并打印结果 print('Lukusarjan summa n=100:', lukusarjanSumma(100)) print(lukusarjanSumma(100))
实现你要的5050.00格式
如果想要输出带两位小数的5050.00,可以用格式化输出:
print('Lukusarjan summa n=100: {:.2f}'.format(lukusarjanSumma(100)))
这样就能精准得到你期望的格式啦~
内容的提问来源于stack exchange,提问作者Sebastian Bergman Sebu
相关产品推荐
相关产品推荐

