2017-07-28 12 views
1

私はPythonの初心者で、私が直面している問題を解明しようとしています。私が働いているNameError:名前 '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)) 

誰かが私には欠けているものを説明してもらえます私は、次のエラーMSGを取得していますか?

ありがとうございます。

ありがとうございました。だから仕事をして変更を加えました。

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

あなたが引数命名している方法で定義している:

fishstore(fish, price) 

:あなたは、あなたが存在していない2つの変数を参照しているメソッドを呼び出しているとき

def fishstore(fish, price): 

をあなたはおそらく意味:

fishstore(fishname(), number()) 

fishname()の結果がなってしまいますその結果、の方法では、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

関連する問題