我正在尝试将一个非常基本的数学程序组合在一起。 下面的函数以前已经起作用,但是现在for循环始终在函数停止之前运行2个完整的迭代。
它只能运行10次。
我尝试了缩进和for / while循环以及范围和xrange的几种组合。
它进行了19次迭代。
def gameADD():
a = 1
b = 50
error = 0
correct = 0
myguess = 0
x = 0
for x in range(0, 10):
print "for loop",x
num1 = random.randint(a, b)
num2 = random.randint(a, b)
result = (num1 + num2)
print " ",num1
print "+ ",num2
print "___________"
print " "
myguess = input('Hvad er Resultatet?: ')
if myguess != result:
print
"Det er forkert"
print
"KOM IGEN MESTER"
error = error + 1
print
"forkert times", x
if myguess == result:
print
"__"
print
"GODT!!! DET ER RIGTIG"
print
result, " er korrekt"
print
"Du har lavet ", error, " fejl."
correct = correct + 1
print
"Du har lavet ", correct, " rigtig."
print
"korrekt times", x
x = x + 1
return error
触发该功能的代码:
pick=input('Hvad vil du lave? :')
if pick == 1:
os.system('clear')
start = time.time()
gameADD()
end = time.time()
calctime = end-start
print (calctime)," sekunder"
#insert new data after each round
con = lite.connect('math.db')
with con:
cur = con.cursor()
user = username
ttime = calctime
errors = gameADD()
cur.execute("INSERT INTO stats VALUES(?, ?, ?, ?);",[user,"1",ttime,errors])
raw_input('Tryk ENTER for at komme til hovedmenu....')
os.system('clear')
答案 0 :(得分:-1)
这是正确的版本(我已经标记了进行更改的地方):
def gameADD():
a = 1
b = 50
error = 0
correct = 0
myguess = 0
x = 0 # <<-- comment or remove this line
for x in range(0, 10):
print "for loop",x
num1 = random.randint(a, b)
num2 = random.randint(a, b)
result = (num1 + num2)
print " ",num1
print "+ ",num2
print "___________"
print " "
myguess = input('Hvad er Resultatet?: ')
if myguess != result:
print
"Det er forkert"
print
"KOM IGEN MESTER"
error = error + 1
print
"forkert times", x
if myguess == result:
print
"__"
print
"GODT!!! DET ER RIGTIG"
print
result, " er korrekt"
print
"Du har lavet ", error, " fejl."
correct = correct + 1
print
"Du har lavet ", correct, " rigtig."
print
"korrekt times", x
#x = x + 1 # <<-- comment or remove this line
return error # <<-- indented to the left
这是结果(应运行10次):
>>> gameADD()
for loop 0
5
+ 28
___________
Hvad er Resultatet?: 4
for loop 1
12
+ 25
___________
Hvad er Resultatet?: 5
for loop 2
25
+ 10
___________
Hvad er Resultatet?: 6
for loop 3
9
+ 12
___________
Hvad er Resultatet?: 4
for loop 4
44
+ 32
___________
Hvad er Resultatet?: 5
for loop 5
31
+ 49
___________
Hvad er Resultatet?: 6
for loop 6
12
+ 45
___________
Hvad er Resultatet?: 4
for loop 7
12
+ 49
___________
Hvad er Resultatet?: 3
for loop 8
18
+ 22
___________
Hvad er Resultatet?: 2
for loop 9
13
+ 10
___________
Hvad er Resultatet?: 3
10
>>>
答案 1 :(得分:-1)
您使用了for循环,但随后添加了条件,就好像您正在使用while循环一样。 for循环处理x = x +1和x = 0本身,因此您不需要这些。
for循环和x = x + 1都将x加1。
def gameADD():
a = 1
b = 50
error = 0
correct = 0
myguess = 0
for x in range(0, 10):
print "for loop",x
num1 = random.randint(a, b)
num2 = random.randint(a, b)
result = (num1 + num2)
print " ",num1
print "+ ",num2
print "___________"
print " "
myguess = input('Hvad er Resultatet?: ')
if myguess != result:
print
"Det er forkert"
print
"KOM IGEN MESTER"
error = error + 1
print
"forkert times", x
if myguess == result:
print
"__"
print
"GODT!!! DET ER RIGTIG"
print
result, " er korrekt"
print
"Du har lavet ", error, " fejl."
correct = correct + 1
print
"Du har lavet ", correct, " rigtig."
print
"korrekt times", x
return error