中供以后使用功能的Python店变量?函数中的变量可以在以后使用吗?
这是低于(未完)一个统计计算器:
#Statistics Calculator
import random
def main(mod):
print ''
if (mod == '1'):
print 'Mode 1 activated'
dat_entry = dat()
elif (mod == '2'):
print 'Mode 2 activated'
array = rndom(dat_entry)
elif (mod == '3'):
print 'Mode 3 activated'
array = user_input(dat_entry)
elif (mod == '4'):
disp(array)
elif (mod == '5'):
mean = mean(array)
elif (mod == '6'):
var = var(array)
elif (mod == '7'):
sd = sd(array, var)
elif (mod == '8'):
rang(array)
elif (mod == '9'):
median(array)
elif (mod == '10'):
mode(array)
elif (mod == '11'):
trim(array)
print ''
def dat():
dat = input('Please enter the number of data entries. ')
return dat
def rndom(dat_entry):
print 'This mode allows the computer to generate the data entries.'
print 'It ranges from 1 to 100.'
cntr = 0
for cntr in range(cntr):
array[cntr] = random.randint(1,100)
print 'Generating Data Entry', cntr + 1
def rndom(dat_entry):
print 'This mode allows you to enter the data.'
cntr = 0
for cntr in range(cntr):
array[cntr] = input('Please input the value of Data Entry ',
cntr + 1, ': ')
run = 0 #Number of runs
mod = '' #Mode
cont = 'T'
while (cont == 'T'):
print 'Statistics Calculator'
print 'This app can:'
print '1. Set the number of data entries.'
print '2. Randomly generate numbers from 1 to 100.'
print '3. Ask input from you, the user.'
print '4. Display array.'
print '5. Compute mean.'
print '6. Compute variance.'
print '7. Compute standard deviation.'
print '8. Compute range.'
print '9. Compute median.'
print '10. Compute mode.'
print '11. Compute trimmed mean.'
print ''
if (run == 0):
print 'You need to use Mode 1 first.'
mod = '1'
elif (run == 1):
while (mod != '2' or mod != '3'):
print 'Please enter Mode 2 or 3 only.'
mod = raw_input('Please enter the mode to use (2 or 3): ')
if (mod == '2' or mod == '3'):
break
elif (run > 1):
mod = raw_input('Please enter the mode to use (1-11): ')
# Error line
main(mod)
cont = raw_input("Please enter 'T' if and only if you want to continue"
" using this app. ")
run += 1
print ''
这里这条线是输出(修整): 模式2激活
Traceback (most recent call last):
File "F:\Com SciActivities\Statistics.py", line 81, in <module>
main(mod)
File "F:\Com Sci Activities\Statistics.py", line 10, in main
array = rndom(dat_entry)
UnboundLocalError: local variable 'dat_entry' referenced before assignment
请告诉我为什么.. 。
我没有足够的声誉上的主要问题发表意见,我已经提交了答案,但我只注意到rndom(dat_entry)在代码中定义了两次。我建议删除其中一个定义。此外,我不认为rndom(dat_entry)函数对程序有什么实际影响,看看它的写法。 –