2016-11-17 5 views
-2

私はハングマンを作っています。文字が文字列内にあるかどうかを確認する方法

私はユーザーに一度に1文字を入力させていますが、私は2つの異なるリストが正しいか間違った文字を持っています。問題は、私が何をしても、それが間違ったリストに行くという言葉にあるかどうかにかかわらず、何らかの理由によるものです。

「hello」を世界のためにたとえば、ユーザが「H」

に入った場合は、右のボックスには、この「H」 ようになるはずですし、ユーザインクルードをfに入った場合、間違ったボックスが 空でなければなりません右のボックスはこの "h"のようになります 間違ったボックスはこの "f"のように見えます。

私はそれについて完璧なロジックを作ったと思っていましたが、ユーザーのタイプが間違っているように見えるので、ライトが動作していないようです。私のコードは、画像 enter image description here

+4

'hello'の 'h'は真で、 'hello'の 'f 'はFalseです – depperm

+11

コードを忘れました – Aidin

+2

あなたの問題を示す最短の完全なプログラムを含めるように質問してください持っている。詳細は[mcve]を参照してください。 –

答えて

1
word = 'hello' 
right_letters = [] 
wrong_letters = [] 

def guess(letter): 
    if letter in word: 
     right_letters.append(letter) 
    else: 
     wrong_letters.append(letter) 
0

クイックフィックスに装着されています!

hold_random_word = [] 
hold_random_word.append(random_word) 

は、次の2行を置き換える

hold_random_word = [i for i in random_word] 

そして、あなたのコードは動作します!あなたのコード内


問題:

hold_random_wordので文字列のリストです。だから、書くとき:

if i in hold_random_word: 

はそれがihold_random_wordリストに存在するすべての文字列を比較します。例えば

hold_random_word = ["str","str1","str2"]

文字ch = 's'場合、式if ch in hold_random_word:"str"if 's' == "str" ?なし)と( 'S' である)chを比較した後、"str1"if 's' == "str1" ? No)は、次いで、"str2"if 's' == "str2" ?なし)であろう。一致するものが見つからないので、Falseを返します。

関連する問題