2016-07-01 31 views
-1

...少なくとも私はそれが問題だと思います。whileループは外部関数を呼び出していませんか?

check = ('a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l' 'm' 'n' 'o' 'p' 'q' 'r' 's' 't' 'u' 'v' 'w' 'x' 'y' 'z') 
letter = raw_input('Please enter a letter: ') 
guess_letter = 0 
count = 0 
total_check = check[count] 
def add_count(): 
    count +=1 

while guess_letter != letter: 
    guess_letter = total_check 
    print guess_password 
    add_count 

これを説明するために、私はそれを単純化しようとしました。私はPython 2.7の新機能ですので、心に留めておいてください。

これは、プログラムが行うことになっているものです。 ステップ1:変数を設定し、機能 ステップ3を定義します:ユーザーが文字 ステップ2を入力アルファベットの文字にguess_letterを設定するには(インデックス0から開始または 'a') ステップ4:add_count関数を使用して1に加算する(私がアルファベットの次の文字を呼び出すインデックスを変更すると仮定)ex:0から開始します。 1を加えると、bに変わります。

しかし、私はステップ4で問題に遭遇します。それは増分しているようではなく、繰り返してプリントアウトします。どんな助け?

更新:

check = ('a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l' 'm' 'n' 'o' 'p' 'q' 'r' 's' 't' 'u' 'v' 'w' 'x' 'y' 'z') 
letter = raw_input('Please enter a letter: ') 
guess_letter = 0 
count = 0 
total_check = check[count] 
def add_count(): 
    global count 
    count +=1 
    return count 

while guess_letter != letter: 
    guess_letter = total_check 
    print guess_password 
    add_count() 

これは私がに来たものです少数のユーザーのアドバイスに従った後。しかし、それはまだ「a」だけを続けて印刷しています。 add_count()

while guess_letter != letter: 
    guess_letter = total_check 
    print guess_password 
    add_count() 
#   ^^ 

あなたはまた、それが更新されますので、あなたのwhileにラインtotal_check = check[count]を移動したい、プラスあなたが得るようのようないくつかのより多くの修正が数を返す:

+0

この問題を修正して次の問題(おそらくUnboundLocalError)を実行するときは、最初にGoogleにエラーを組み込むことを忘れないでください。 – user2357112

+0

'guess_password'はどこに定義されていますか? – oliversm

答えて

1

Python関数は'()'を使用して呼ばれています更新された値を使用します。

+0

add_countの最後に()を追加すると、次のエラーが表示されます。UnboundLocalError:代入前にローカル変数 'c​​ount'が参照されています。 – MainStream

+1

@MainStreamなぜGoogleにエラーがあり、それが何を意味するのか見てみませんか? (ヒント:コード内の別の問題が原因で、ここで解決されている問題ではありません) –

+1

@MainStream私は、あなたがすでに述べた他のものとしてグーグルをやることをお勧めします。 –

関連する問題