多个raw_input

时间:2011-02-22 11:24:20

标签: python

#Print out the menu
print """
###############################################
# 1 - Introduction.                           #
# 2 - Base.                                   #
# 3 - Contact.                                #
###############################################"""

#Get the user's choice
choice = raw_input("")

#Work with choice
print choice
if choice == 1:
    print "# Welcome to xbrEra's first application!      #"
elif choice == 2:
    print "# This application was built in Python 7.2.1.  #"
elif choice == 3:
    print "# Contact me at Blackriver.era@hotmail.com     #"
else:
    print "# Invalid choice!                              #"

这是我的代码。我的问题是,在第一次输入完成后,他们的下一个输入将有“>>>”作为前缀。我如何改变这一点,而且我一直在“无效的选择!”在当前的代码中。请帮忙,谢谢!

3 个答案:

答案 0 :(得分:2)

  

我一直在“无效的选择!”在当前的代码中

raw_input()在python 2.7中返回字符串,因此您需要比较为

choice == "1"

或者您可以尝试使用input()代替raw_input(),将输入评估为数字。

或者你可以解析为int(raw_input())的整数,如J.F.Sebastian所指出的那样。非整数输入可能会导致错误,因此请使用try:except:block like

包装它
try:
  choice = int(raw_input(), 10)
except ValueError:
  choice = None

ps:“,10”用于基数10,输入可以像010一样填充,可以将输入作为八进制数

答案 1 :(得分:0)

#Print out the menu

ch = """###############################################
# 1 - Introduction.                           #
# 2 - Base.                                   #
# 3 - Contact.                                #
###############################################

  Enter your choice : """

choice = raw_input(ch)
warn = "\n  You must enter 1 or 2 or 3.\n"+\
     "  Enter your choice : "
while choice not in ('1','2','3'):
    choice = raw_input(warn)

print ("# Welcome to xbrEra's first application!      #",
       "# This application was built in Python 7.2.1.  #",
       "# Contact me at Blackriver.era@hotmail.com     #")[int(choice)-1]

答案 2 :(得分:0)

我认为你需要像这样编码你的新行'\ n''你必须输入1,2或3。''\ n'