永发信息网

python 函数调用问题name 'new_fjcb' is not defined

答案:3  悬赏:30  手机版
解决时间 2021-02-16 01:29
  • 提问者网友:温旧梦泪无声
  • 2021-02-15 09:19
sj = float()
gl = int(10)
xy = int(15)

def fjz(new_fjcb):
_gl=1+gl/100
_xy=1+xy/100
new_fjcb=1*_gl*_xy
return new_fjcb

yj=float(input("请输入原价:"))
sj=yj*fjz(new_fjcb)
print(sj)

请大神帮忙看看问题错在哪里了
错误提示如下:
============== RESTART: C:\Users\Administrator\Desktop\价格计算器.py ==============
请输入原价:10
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\价格计算器.py", line 28, in
sj=yj*fjz(new_fjcb)
NameError: name 'new_fjcb' is not defined
>>>
最佳答案
  • 五星知识达人网友:英雄的欲望
  • 2021-02-15 10:25
new_fjcb是函数fjz的形参,是局部变量,在外部不可见,所以出错,修改如下:

1
2
3
4
5
6
7
8
9
10
11
sj =float()
gl =int(10)
xy =int(15)
deffjz():                             #参数留空
   _gl=1+gl/100
   _xy=1+xy/100
   new_fjcb=1*_gl*_xy
   returnnew_fjcb
yj=float(input("请输入原价:"))
sj=yj*fjz()                            #无参调用  
print(sj)
全部回答
  • 1楼网友:洎扰庸人
  • 2021-02-15 11:38
报错意思是变量'new_fjcb'事先没有被定义。 因为你用input传入赋值给的yj变量,函数fjz需要传入一个值赋值给变量'new_fjcb',而你这里没有传入,直接就调用函数fjz,所以报错 补充一点:变量必须要先定义赋值再使用,不然就会报错NameError
  • 2楼网友:雾月
  • 2021-02-15 11:13
你好! 报错意思是变量'new_fjcb'事先没有被定义。 因为你用input传入赋值给的yj变量,函数fjz需要传入一个值赋值给变量'new_fjcb',而你这里没有传入,直接就调用函数fjz,所以报错 补充一点:变量必须要先定义赋值再使用,不然就会报错NameError 仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯