我是Python的新手,试图找出我面临的问题。我收到以下错误信息:
16 return output
17
---> 18 print(fishstore(fish, price))
19
20
NameError: name 'fish' is not defined
我正在制作的剧本:
def fishname():
user_input=input("Enter Name: ")
return (user_input.title())
def number():
number_input=input("Enter Price: ")
return number_input
def fishstore(fish, price):
fish_entry = fishname()
price_entry = number()
output = "Fish Type: " + fish_entry + ", costs $" + price_entry
return output
print(fishstore(fish, price))
有人可以解释我错过了什么吗?
提前谢谢。
谢谢大家的帮助。所以我做了一些工作并做出改变......
def fishstore(fish, price):
output = "Fish Type: " + fish + ", costs $" + price
return output
fish_entry = input("Enter Name: ")
fish = fish_entry
price_entry = input("Enter Price: ")
price = price_entry
print(fishstore(fish, price))
它有效。谢谢大家的帮助!
答案 0 :(得分:3)
当您定义方法时,您正在命名参数:
def fishstore(fish, price):
当你调用方法时,你引用了两个不存在的变量:
fishstore(fish, price)
你可能意味着:
fishstore(fishname(), number())
fishname()
的结果在fish
方法的上下文中最终为fishstore
,同样number()
成为price
。在特定的上下文之外,这些变量不存在。
答案 1 :(得分:0)
您收到此错误,因为您的程序中未定义变量名称fish和price。
operator<<
我认为您正在尝试从用户读取值并将其传递给fishstore()
这会对你有帮助。
直接从fishstore()函数读取输入。
wostream& operator<<(wostream& , const X&)
print(fishstore(fish, price))
两个版本都会为您提供您期望的结果。
def fishname():
user_input=input("Enter Name: ")
return (user_input.title())
def number():
number_input=input("Enter Price: ")
return number_input
def fishstore():
fish_entry = fishname()
price_entry = number()
output = "Fish Type: " + fish_entry + ", costs $" + price_entry
return output
print(fishstore())