我开始学习python。我已经完成了几个教程,现在我正在尝试编写我的第一个脚本。这是一个简单的控制台菜单。我在cygwin下运行Python 2.6.5。
这是我的剧本:
import sys
print "********************************************************************"
print "** 1) This is menu choice #1 **"
print "** **"
print "** **"
print "** **"
print "** **"
print "** **"
print "********************************************************************"
print
print "Choice ?"
choice = sys.stdin.readline()
print "You entered: " + choice
if choice == 1:
choice1 = sys.stdin.readline()
print "You entered:" + choice1
else:
quit()
print "Exiting"
当我运行脚本时,我会选择?提示。我输入1并收到“您输入:”消息,然后脚本退出而不显示“退出”消息。
似乎应该这么简单。提前感谢您的帮助。
答案 0 :(得分:3)
您将字符串与整数进行比较。尝试将字符串转换为整数:
if int(choice.strip()) == 1:
答案 1 :(得分:2)
raw_input()
代替sys.stdin.readline()
choice == 1
更改为choice == '1'
答案 2 :(得分:1)
问题是readline
会返回一个字符串,但您的if
语句需要int
。要将字符串转换为int
,您可以使用int(choice.strip())
(如果输入的内容不是有效数字,请准备好引发异常)。
In [8]: choice
Out[8]: '1\n'
In [9]: int(choice.strip())
Out[9]: 1
答案 3 :(得分:1)
不确定,但我认为用户输入的是字符串,而不是数字。数字1和字符串1是两个完全不同的东西。
尝试选择==“1”
答案 4 :(得分:0)
readline函数在输入结束时保留换行符。你的第一个应该是:
if choice == "1\n":
假设您需要换行符。
答案 5 :(得分:0)
它正在通过调用quit()
退出,因为它需要else
分支。那是因为'1'
(一个字符串)不等于1
,一个整数。