私は Python の初心者です (1 週間前に独学を始めたばかりです)。乗算表テストのように、0 から 12 までの因数を使用して、ユーザーが送信した数のランダムに生成された乗算の質問をするプログラムを作成しようとしました。
import math
import random
#establish a number of questions
questions = int(input("\n How many questions do you want? "))
#introduce score
score = 1
for question in range(questions):
x = random.randrange(0,13)
y = random.randrange(0,13)
#make the numbers strings, so they can be printed with strings
abc = str(x)
cba = str(y)
print("What is " + abc + "*" + cba +"?")
z = int(input("Answer here: "))
print z
a = x*y
#make the answer a string, so it can be printed if you get one wrong
answer = str(a)
if z > a or z < a:
print ("wrong, the answer is " + answer)
print("\n")
#this is the line that's being skipped
score = score - 1/questions
else:
print "Correct!"
print ("\n")
finalscore = score*100
finalestscore = str(finalscore)
print (finalestscore + "%")
ユーザーが質問を間違えるたびに、スコア (1 に設定) が質問ごとに 1 ずつ減っていき、100 を掛けると、質問のパーセンテージが間違っているということになります。ただし、何問出題しても、数を間違えても、score は 1 のままなので、finalestscore は 100 のままです。 3 は明らかに、数学に abs 関数があることを認めていません。
このような単純なアキュムレータ パターンは、古いバージョンの Python であっても問題にはならないようです。ヘルプ?