我正在为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也给我们任何其他方法。
答案 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!")