#!/usr/bin/env python #encoding:UTF-8 def showmenu(): tmp=""" (1)取五个数的和 (2)取5个数的平均值 (X)退出 enter you choice:""" def adder(): alist=[] for i in range(5): alist.append(int(raw_input('plesae input:'))) return sum(alist) def diver(): alist=[] for i in range(5): alist.append(int(raw_input('please input:'))) sum1=float(sum(alist)) avg=sum1/len(alist) return avg cmd={'1':adder(),'2':diver} while True: while True: try: choice=raw_input(tmp).strip()[0].lower() except (EOFError): choice='x' if not choice in '12x': print 'invalid option' else: break if choice=='x': break cmd[choice]() if __name__=='__main__': showmenu()
Traceback (most recent call last): File "2-11.py", line 26, in <module> choice=raw_input(tmp).strip()[0].lower() NameError: name 'tmp' is not defined
谁可以告诉我为什么总是显示我tmp没有定义啊?????
在函数内定义的变量默认是局部变量,其它函数不能读取。
具体看教程 和搜索 局部变量和全局变量的概念。
tmp在函数里面 为局部变量。global 声明一下为全局变量