को हटाने के लिए रिफैक्टर कोड मैं वर्तमान में correct
नामक कोड में एक वैश्विक चर का उपयोग कर रहा हूं। ग्लोबल को ध्यान में रखते हुए, क्या वैश्विक कोड को "सुरक्षा" करने के लिए अपना कोड सेट अप करने का एक बेहतर तरीका है?पायथन: ग्लोबल वैरिएबल
from random import randint
from random import choice
lower = int(raw_input("Enter a lower integer constraint: "))
higher = int(raw_input("Enter a higher integer constraint: "))
correct = 0
def gen_randoms(lower, higher):
integers = list()
for x in xrange(4):
rand_int = randint(lower, higher)
integers.append(rand_int)
return integers
def gen_equation(integers):
nums = map(str, integers)
operators = ['*', '+', '-']
equation = 'num op num op num op num'
while 'op' in equation:
equation = equation.replace('op', choice(operators), 1)
while 'num' in equation:
equation = equation.replace('num', choice(nums), 1)
print equation
return equation
def evaluate(equation):
answer = eval(equation)
print answer
return answer
def compare_answers(gen_answer, game):
global correct
user_answer = int(raw_input("What is the answer? "))
if user_answer == gen_answer:
correct += 1
print 'Correct!'
print 'Current streak: %s' % str(correct)
game()
else:
print 'Incorrect!'
correct = 0
game()
def game():
nums = gen_randoms(lower, higher)
this_equation = gen_equation(nums)
gen_answer = evaluate(this_equation)
compare_answers(gen_answer, game)
game()
क्या यह एक इनपुट है और compar_answers() से वापस आ गया है? – Jiminion
सबसे आसान तरीका 'compar_answers() 'को' game() 'में रेखांकित करना है, और चर' सही' 'को' game() 'में भी ले जाना है। – Nayuki
इसके अलावा, तथ्य यह है कि आप 'गेम()' और 'compar_answers()' में पूंछ रिकर्सन का उपयोग कर रहे हैं, इसका मतलब है कि आप अंततः स्टैक स्पेस से बाहर हो जाएंगे। – Nayuki