我尝试打印分数以确保它收到我输入的值,这更令人费解。防爆。我尝试输入0.85并打印出A.为什么会这样?
try:
Score = raw_input("What is the Score? ")
if Score >= 0.90 < 1.01:
print Score
print "A"
elif Score >= 0.80 < 0.90:
print "B"
elif Score >= 0.7 < 0.8:
print "C"
elif Score >= 0.6 < 0.7:
print "D"
elif Score >= 0.6 >= 0.0:
print "F"
except:
print "ERROR: You did not enter a number or did not enter the number in the format '0.00'"
答案 0 :(得分:4)
<强>更新强>
(我在第一个答案中说错了。)
除了@Alex之外,您需要Declare @PastFiscalYear Date
Set @PastFiscalYear= DATEADD(yy, - 1, DATEADD(MONTH,(MONTH(GETDATE()) - 1) / 6 * 12 - 6,CAST(CAST(YEAR(GETDATE()) AS VARCHAR) AS DATETIME)))
WHERE
([schema].[table].[DATE] >= @PastFiscalYear )
来获取数字类型......此float(raw_input(...))
声明:
if
相当于:
if Score >= 0.90 < 1.01:
你可能想要这个:
if Score >= 0.90 and 0.90 < 1.01
或者这个:
if 0.90 <= Score < 1.01:
答案 1 :(得分:1)
raw_input
From the docs:raw_input
“从输入中读取一行,将其转换为字符串(剥离尾随换行符),然后返回”。
您需要将其强制转换为float
,以便将其与数字类型进行比较。
Score = float(raw_input("What is the Score? "))
From the docs“x < y <= z
相当于x < y and y <= z
,但y
仅评估一次(但在两种情况下z
都未评估发现x < y
是假的。“
所以if 0.90 <= Score < 1.01:
代替if Score >= 0.90 < 1.01: