如果不是python,则无法评估

时间:2016-02-08 04:02:58

标签: python python-2.7

我正在为python编写程序,而且我是python的新手。我遇到了问题,我需要在对输入数据进行一些验证后达到'if Not'条件。请任何人指导我做错了什么,我该如何解决这个问题。

谢谢,

代码

    if(options == 1):
    print"Please enter degrees Fahrenheit:"
    val1 = input('')
    val2 = str(val1)
    commaExist = any([st in ',' for st in val2])
       if not commaExist:
       print"1"
       elif:
       print"2"
elif(options == 2):
    print"2p"
elif(options == 3):
    print"3p"
else:
    print"invalid"

任何人都可以请指导我是使用input()代替raw_input的最佳方法吗?我需要仅对具有小数点和减号的数字验证我的输入,否则任何其他输入都将无效。那么使用any()是一个好方法吗?或python也给我们任何其他方法。

4 个答案:

答案 0 :(得分:2)

为什么不直接使用:

if "," not in val2:
    print ("1")
else:
    print ("2")
顺便说一下,没有括号的打印语句在Python 3中不起作用,只能在Python 2中起作用。但是我相信这两种版本都适用于parens。

答案 1 :(得分:0)

    print "Please enter degrees Fahrenheit:"
      val1 = input('')
      val2 = str(val1)
      commaExist = any([st in ',' for st in val2]) 
      if not commaExist: #<-- here is the issue
        print"1"
      else:
        print"2"  

我认为你没有缩进if语句,也没有使用elif而没有bool。 (我想你只需要一个其他的)

答案 2 :(得分:0)

只需在嵌套的if语句中放置一个嵌套的else语句即可。应该工作正常,然后循环回到第一个elif

答案 3 :(得分:0)

我喜欢使用像

这样的实用功能
def get_float(prompt, error_message=None):
    """
    Prompt repeatedly until a float value is entered
    """
    while True:
        try:
            return float(raw_input(prompt))   # Python 2.x!
        except ValueError:
            # not a float!
            if error_message is not None:
                print(error_message)

然后您的代码变为

if options == 1:
    f = get_float("Please enter degrees Fahrenheit: ")
elif options == 2:
    print("2p")
elif options == 3:
    print("3p")
else:
    print("No such option!")