我的一点代码(不是全部,但我认为只需要它):
functions = {'1':cels_kelw, '2':cels_farh, '3':cels_kelw, '4':kelw_farh, '5':cels_farh, '6':kelw_farh}
while True:
operation = raw_input("Choose number:\n")
if operation == '7':
print 'PROGRAM ENDED'
break
try:
chosenFunction = functions.get(operation)
if (operation == '3') or (operation == '5') or (operation == '6'):
turn = 1
else:
turn = 0
print ("Result of your conversion is {num}".format(num = chosenFunction(get_float(), turn)))
except NameError:
print("Function you have chosen doesn't exists or you have put wrong type of data")
现在,当我在python解释器中运行它时它运行良好,当我被要求选择函数并且它存在时 - 没有异常并且它会抛出拾取函数的结果。
当我用py2exe将它转换为.exe时,它要求我在脑海中输入一些函数,但它不起作用。在输入数字(例如1)后,它再次要求我输入数字。
这段代码有什么问题?谢谢你的帮助。
答案 0 :(得分:1)
我想这些函数是在另一个python模块中定义的。你错过了写setup.py
文件的错误。
您必须将所有python模块/包添加到setup.py
。
只是一种感觉,但是,您能在else
之后添加break
声明吗?
if operation == '7':
print 'PROGRAM ENDED'
break
else: # Add this here.
try:
chosenFunction = functions.get(operation)
# ... Etcera ...
也许你的身份有问题,或py2exe
在这里做些奇怪的事情。进行此更改并告知我们。