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
>>>
python 函数调用问题name 'new_fjcb' is not defined
答案:3 悬赏:30 手机版
解决时间 2021-02-16 01:29
- 提问者网友:温旧梦泪无声
- 2021-02-15 09:19
最佳答案
- 五星知识达人网友:英雄的欲望
- 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
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
仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯