私はこのようになります機能があります。一覧
class Question:
Ans = "";
checkAns = 0;
isPos=False;
def Ask(Q, PosAns):
checkAns=0;
Ans = raw_input("{} ({})".format(Q,PosAns));
while(checkAns<len(PosAns) and isPos!=True):
if(Ans==PosAns[x]):
isPos=True; #if it IS a possible answer, the loop ends
checkAns+=1;
if(checkAns==len(PosAns)):
#If the loop goes through all the possible answers and still doesn't find a
#match, it asks again and resets checkAns to zero.
Ans = raw_input("{} ({})".format(Q,PosAns));
checkAns=0;
return ("Good Answer");
ques = Question();
print(ques.Ask("Do you like to code?",["Yes","No"]));
まずオフを、この関数のポイントは、質問(Q)で取ることですし、可能なすべての答え(PosAns)であり、ユーザが可能な回答の1つではないものを入れると、関数は単に再び質問します。
しかし、Ask()関数は2つのパラメータしか扱えず、3つ与えました(YesNoには2つの文字列があることに注意してください)。リストをパラメータとして扱うのではなく、リストのオブジェクトを読み取るのはなぜですか?どのように私はそれがパラメータとしてリストを取ることができますか?
私がコードする方法は、大抵の人にとってはラウンドアバウトで、奇妙なものだと認識していますが、それは私にとって意味をなさない方法です。私は、関数全体を書く新しい方法(私はまだそれに取り組んでいる)よりも私の質問への答えにもっと興味があります。
であるかを把握することができwann't薄くなるものの 自己は、この例では
を
isPos
、checkAns
とans
変数などのコールの他の属性を参照するために使用することができますあなたは '自己 'を欠いている。 – Kevin正確です。それがエラーの理由です。 Askメソッドに 'self'パラメータがありません – Joe