2017-07-28 79 views
1

我是一個Python新手,並試圖找出我面臨的問題。我收到以下錯誤信息:NameError:name'fish'沒有定義

 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

那麼,你*不*定義'魚'或'價格',那麼問題是什麼? – EJoshuaS

+0

謝謝大家!我想我誤解了我試圖解決的練習題。 – Tae

回答

3

當你定義的方法,你命名參數:

def fishstore(fish, price): 

當你打電話給你要引用兩個變量不存在的方法:

fishstore(fish, price) 

你大概的意思:

fishstore(fishname(), number()) 

fishname()的結果呢?fish在該方法的範圍內,同樣number()變爲price。在特定的上下文之外,這些變量不存在。

+0

非常感謝! – Tae

0

你會得到這個錯誤,因爲變量名稱fish和price沒有在你的程序中定義。

print(fishstore(fish, price)) 

我認爲你正在嘗試讀取用戶的價值和把它傳遞給fishstore()

這將幫助你。

版本1

直接從fishstore()函數讀取輸入。

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

版本2

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, price_entry):   
    output = "Fish Type: " + fish_entry + ", costs $" + price_entry 
    return output 

print(fishstore(fishname(), number())) 

兩個版本會給你你期待的結果。

output: 
Enter Name: tilapia 
Enter Price: 10 
Fish Type: Tilapia, costs $10 
+0

非常感謝您的幫助! – Tae