NameError:未定义名称'fish'

时间:2017-07-28 16:03:15

标签: python

我是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))

它有效。谢谢大家的帮助!

2 个答案:

答案 0 :(得分:3)

当您定义方法时,您正在命名参数:

def fishstore(fish, price): 

当你调用方法时,你引用了两个不存在的变量:

fishstore(fish, price)

你可能意味着:

fishstore(fishname(), number())

fishname()的结果在fish方法的上下文中最终为fishstore,同样number()成为price。在特定的上下文之外,这些变量不存在。

答案 1 :(得分:0)

您收到此错误,因为您的程序中未定义变量名称fish和price。

operator<<

我认为您正在尝试从用户读取值并将其传递给fishstore()

这会对你有帮助。

版本1

直接从fishstore()函数读取输入。

wostream& operator<<(wostream& , const X&)

版本2

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())