2016-05-27 16 views
0
#Intro 
import time 
import random 

def restart(): 
    bowlSize = random.randint(1,100) 
    bowlStrawberries = 0 

def lel(): 
    while bowlSize > bowlStrawberries: 
     if (addCheck + bowlStrawberries) > bowlSize: 
      print('You´re filling the bowl..') 
      time.sleep(2) 
      print('...and...') 
      time.sleep(2) 
      print('Your mom slaps you!') 
      restart() 


def addStrawberries(): 
    print('The bowl has ' + str(bowlStrawberries) + ' strawberries in it') 
    print('How many strawberries do you want to add?') 
    addCheck = input() 
    lel() 

print('STRAWBERRY (:') 
time.sleep(2) 
print('Okey so you have a bowl kinda') 
time.sleep(2) 
print('And you have a bag with 100 strawberries') 
time.sleep(2) 
print('So ur mom forces you to fill the bowl') 
time.sleep(2) 
print('But she will slap you if a strawberry drops on the floor') 
time.sleep(2) 
print('So you have to fill it up in as few tries as possible without overfilling it') 
time.sleep(2) 

restart() 

addStrawberries() 

私はプログラミングの初心者です。今日は5日目です。エラーが発生する理由を理解できません。あなたはpropably同様の質問があったが、私は新しいと私は何を検索するか分からない。私は基本的には、私がボウルのスペースよりも高い値を選んだときに再起動します。変数が定義されていないと言うエラー?

正確なエラー:

Traceback (most recent call last): 
    File "C:/Users/***/Documents/strenter code herew.py", line 44, in <module> 
    addStrawberries() 
    File "C:/Users/***/Documents/strw.py", line 27, in addStrawberries 
    lel() 
    File "C:/Users/***/Documents/strw.py", line 14, in lel 
    if (addCheck + bowlStrawberries) > bowlSize: 
NameError: name 'addCheck' is not defined 
+0

あなたのコードを実行すると、 'name 'addCheck'が定義されていません。 'NameError:グローバル名 'bowlStrawberries'が定義されていません。ここに投稿したコードは、実行しているコードとまったく同じですか? – Kevin

+0

@ケビン私はちょうどコピーして貼り付けたので、それは同じだと思います。私が3.5.1を実行している場合は、 – Batteriet

答えて

0

addCheckそれは、関数の外で見ることができないという意味、addStrawberries内のローカル変数です。私はそれをlelの引数として渡すことをお勧めします。つまり、lel(addCheck)を呼び出し、leldef lel(addCheck)と定義することをおすすめします。あるいは、addCheckをグローバル変数にするには、global addCheckaddStrawberriesに挿入する前にそれを代入することができますが、グローバル変数は厄介な傾向があります。

+0

addStrawberriesが定義されていないことがわかります:トレースバック(最新のコール最後): ファイル "C:/ Users/***/Documents/straw.py" addStrawberries() ファイル "C:/ユーザー/ *** /ドキュメント/ straw.py" で、addStrawberriesでライン27、 LEL(addStawberries) はNameError:名 'addStawberriesは' 申し訳ありませんが、@Batteriet – Batteriet

+0

を定義されていません。 'addCheck'と' addStrawberries'が混在しています。コードを更新しました。 –

+0

これで修正されました。ご支援いただきありがとうございます。残っているのは、lelのif文が真のままであることです – Batteriet

関連する問題