2016-04-09 21 views
0

ランダムな質問を作成する数学テストプログラムを作成しています。ユーザに答えを入力し、答えは正しい答えと出力が与えられる。私はユーザ入力と答えを等しくしてユーザ入力に応じて印刷したい

import random 
q = 1 
live=3 
operations = ("+" , "-") 
for q in range(0,11): 
    while live>=1: 
     op=random.choice(operations) 
     num1=random.randint(0,10) 
     num2=random.randint(1,10) 
     if op =="+": 
      op=random.choice(operations) 
      num1=random.randint(0,10) 
      num2=random.randint(1,10) 
      correct = num1+num2 
      print("What is", " " +str(num1) + "+" +str(num2) + "?") 
      answer =input("\n Enter answer") 
      if answer==correct : 
       print("Correct answer") 
       q= q+1 
      else: 
       answer != correct 
       live= live - 1 
       print("The answer is incorrect. Try again mate!") 

これは私の不完全なコードです。この問題は、追加マークの付いた質問があっても、ユーザーが正しい答えを入力してもプログラムが間違った出力を出力しても(ユーザーが間違った答えを入力した場合に出力する必要があります)、助けてください。前もって感謝します。ビーイングは、あなたがstrintを比較することである

answer = int(input("\n Enter answer")) 

理由:これに

answer = input("\n Enter answer") 

答えて

1

単純にこの行を変更します。

num1 = 5の場合

例について

  • correctnum2 = 55+5又は10に等しいであろう。

  • ただし、answerは、文字列"10"と等しくなります。あなたはcorrectanswer間の平等をテストするために行くとき

だから、あなたはもちろんFalseである"10" == 10を比較しています。したがって、文字列answerintに型キャストする必要があります。inputは常に文字列を返すためです。この結果、10==10Trueになります。

+0

私は既にあなたが正しく答えているのを見ていませんでした。編集されたコードは、このイデーンのリンクにあります:http://ideone.com/y3dPZC – arsho

+0

ありがとうございます。私は、彼が投稿が煩雑にならないようにコメントを残しておきます。 – Signal

関連する問題