在python中使用全局变量处理默认值
我正在尝试以下代码:在python中使用全局变量处理默认值,python,Python,我正在尝试以下代码: import simplegui import random import math def new_game(): global secret_number global low global high global n print "New game. Range is from" ,low ,"-",high secret_number=random.randrange(low,high) n=math.ceil(math.l
import simplegui
import random
import math
def new_game():
global secret_number
global low
global high
global n
print "New game. Range is from" ,low ,"-",high
secret_number=random.randrange(low,high)
n=math.ceil(math.log((high-low+1),2))
print "no of guesses",n
print " "
def new_game1():
global secret_number
print "New game. Range is from 0-100"
print " "
secret_number=random.randrange(0,100)
# define event handlers for control panel
def range100():
global low,high
low=0
high=100
new_game()
def range1000():
global low
global high
low=0
high=1000
new_game()
def input_guess(guess):
global secret_number
global n
g=int(guess)
print "Guess was",g
--n
print "no of guesses left",n
if(g>secret_number):
print "Lower"
elif(g<secret_number):
print "Higher"
else:
print "Equal"
frame = simplegui.create_frame('Testing', 200, 200)
button1 = frame.add_button('Range is(0,100)', range100,200)
button2 = frame.add_button('Range is(0,1000)', range1000,200)
inp = frame.add_input('Enter a guess', input_guess,200)
frame.start()
new_game1()
导入simplegui
随机输入
输入数学
def新游戏():
全局密码
全球低点
全球高点
全球n
打印“新游戏。范围从”,低,“-”,高
secret_number=random.randrange(低、高)
n=math.ceil(math.log((高-低+1),2))
打印“无猜测”,n
打印“”
def new_game1():
全局密码
打印“新游戏。范围为0-100”
打印“”
秘密号码=随机。随机范围(0100)
#定义控制面板的事件处理程序
def range100():
全球低,高
低=0
高=100
新游戏()
def range1000():
全球低点
全球高点
低=0
高=1000
新游戏()
def输入_猜测(猜测):
全局密码
全球n
g=int(猜测)
打印“猜测是”,g
--n
打印“剩余猜测数”,n
如果(g>机密编号):
打印“下”
elif(g您可以将限制作为函数参数发送,而不是作为全局变量。您可以将默认值设置为某个值,并根据需要覆盖它们。new\u game()
可能会变成:
def new_game( low = 0, high = 100 ):
global secret_number, n # Maybe these can be function arguments as well?
print "New game. Range is from" ,low ,"-",high
secret_number=random.randrange(low,high)
n=math.ceil(math.log((high-low+1),2))
print "no of guesses",n
print " "
您的范围
功能将变为:
def range100():
new_game() # high & low take default values of 0,100
def range1000():
new_game(high = 1000) # high is now 1000
# My own function
def rangeMinus1000():
new_game(low = -100, high = 1000) # low is -100 & high is 1000
为什么所有变量都必须是全局变量?您可以将它们设置为局部变量,并使用默认参数来省去一些麻烦。我如何为newgame()保存low=0和high=100实际上,问题是希望新游戏是一个没有参数的函数,不幸的是这是不可能的。您可能希望在new\u game()
之后调用类似resetRange()
的函数来重置为默认值。