python删除变量_Python:重构代码以删除全局变量

我可能会这样做:

#!/usr/bin/python

"""Equation solving game."""

from random import randint

from random import choice

def gen_randoms(lower,higher):

"""Generates four random numbers between provided bounds."""

integers = [randint(lower,higher) for x in range(4)]

return integers

def gen_equation(integers):

"""Generates a random equation from four provided integers."""

nums = [str(i) for i in integers]

operators = ['*',1)

return equation

def evaluate(equation):

"""Evaluates an equation."""

return eval(equation)

def main():

"""Main game function."""

lower = int(raw_input("Enter a lower integer constraint: "))

higher = int(raw_input("Enter a higher integer constraint: "))

nums = gen_randoms(lower,higher)

streak = 0

while True:

this_equation = gen_equation(nums)

print this_equation

user_answer = raw_input("What is the answer? ('Q' to quit) ")

if user_answer.lower()[0] == 'q':

break

gen_answer = evaluate(this_equation)

print 'The answer was: %d' % gen_answer

if gen_answer == int(user_answer):

streak += 1

print 'Correct!'

print 'Current streak: %d' % streak

else:

streak = 0

print 'Incorrect!'

if __name__ == "__main__":

main()

一些评论:

>每个函数通常只应该做一件事,所以如果一个函数评估一个方程式,通常最好不要打印方程式.

>当你这样做时,弄清楚变量应该去哪里变得容易得多,因为你不需要在每个函数执行几个不同的事情时都要传递它们.

>这里的主要游戏逻辑非常简单,你不需要将它从你的主游戏()函数(或者我的例子中的main()函数)中分解出来,这样,它不会使事情过于复杂而留下它在那里.如果你想进行更多的错误检查(例如,查看用户是否输入了无效的号码,并且你想要返回并要求更多输入,那么你可能想要更多一些.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值