为什么我的代码在pythonshell中工作,而在双击py文件时却不工作

为什么我的代码在pythonshell中工作,而在双击py文件时却不工作,python,Python,为什么我的python文件在空闲状态下运行得很好,但双击它时却无法工作。让我换一种说法,我的if/else语句似乎从来都不是真的,即使它们在空闲状态下工作正常 我甚至将所有代码分解为最简单的if/else语句进行测试,以确保没有遗漏任何内容。这是我分解的代码。这正是py文件中的代码,同样,它在空闲时工作,但在双击py文件时不工作 choice = input('letter: ') if choice == 'a': print ('that is an a') input('p

为什么我的python文件在空闲状态下运行得很好,但双击它时却无法工作。让我换一种说法,我的if/else语句似乎从来都不是真的,即使它们在空闲状态下工作正常

我甚至将所有代码分解为最简单的if/else语句进行测试,以确保没有遗漏任何内容。这是我分解的代码。这正是py文件中的代码,同样,它在空闲时工作,但在双击py文件时不工作

choice = input('letter: ')
if choice == 'a':
    print ('that is an a')
    input('press any key to exit...')
else:
    print('that letter is not an a')
    input('press any key to exit')
顺便说一句,python v3.2 windows 7

input()可能正在获取一个以行结尾的字符串

尝试在输入之后添加行
print(repr(choice))
,以准确查看您正在使用的内容。

尝试添加

choice = choice.strip()
这对我有用

choice = input('letter: ')
choice = choice.strip()
if choice == 'a':
    print ('that is an a')
    input('press any key to exit...')
else:
    print('that letter is not an a')
    input('press any key to exit')

否则,您的
输入
会将字母与换行符一起提供给您,如果失败,
会出现什么问题?您是否得到堆栈跟踪或奇怪的行为?双击时打开的程序是什么?它是python 3.2命令行吗?没有跟踪,它只是默认为我的else语句当你添加更多的print语句时,你学到了什么?实际上那不是我真正的程序,我真正的程序是一个使用类和函数的完整界面,但我的选择屏幕不起作用,所以我不得不将它细化到核心,发现是我的if/else语句不起作用。总之,我学会了添加.strip(),直到我学会了更多如何以更简单的方式防止它,并且确实起作用,如果你不是一个女巫,你能给我一个发生这种事的原因吗?这样我就知道了,以备将来参考!因为当您在shell中编写“a”+“enter”输入时,会同时获得击键和返回“a\n”。我没有检查这一点,因为上面的建议似乎有效…但是非常感谢您的快速响应,我在3分钟前注册,因为我在任何地方都找不到帮助…这是我的官方python大厅!如果strip()修复了它,那么我是正确的,并且您得到了一行结束符。