我是编程新手。在下面的代码中,当我输入任何字符串作为答案时,您的分数是多少?',它会同时打印“不良分数”,“再试一次”和“#39;和' F'。
为什么呢?请帮忙。谢谢!
pg_stat_activity
答案 0 :(得分:2)
当您编写的字符串无法转换为浮点值时,会引发异常并将其捕获,除此之外,“得分差”'显示消息,并为分数指定值-1。
由于异常被捕获,执行继续。由于当前得分值-1小于0.6,因此F' F'也打印出来。
尝试将异常捕获移动到代码的末尾:
score = raw_input('what is your score?')
try:
score = float(score)
if score >= 0.9:
print "A"
elif score >= 0.8:
print "B"
elif score >= 0.7:
print "C"
elif score >= 0.6:
print "D"
elif score < 0.6:
print "F"
except:
score = -1
print 'Bad Score, Try Again'
答案 1 :(得分:1)
当您输入字符串时,以下代码正在打印“不良分数,再试一次”并将分数设置为-1
if score >= 0.9:
print "A"
elif score >= 0.8:
print "B"
elif score >= 0.7:
print "C"
elif score >= 0.6:
print "D"
if score < 0.6:
print "F"
然后执行此代码,得分(-1)小于0.6,打印'F'
score = raw_input('what is your score?')
try:
score = float(score)
except:
score = -1
if score >= 0.9:
print "A"
elif score >= 0.8:
print "B"
elif score >= 0.7:
print "C"
elif score >= 0.6:
print "D"
elif score >= 0:
print "F"
else:
print 'Bad Score, Try Again'
也许你想要的是:
placement new
答案 2 :(得分:1)
如果您将所有代码放入try语句中,它将正常工作。
score = raw_input('what is your score?')
try:
score = float(score)
if score >= 0.9:
print "A"
elif score >= 0.8:
print "B"
elif score >= 0.7:
print "C"
elif score >= 0.6:
print "D"
elif score < 0.6:
print "F"
except:
score = -1
print 'Bad Score, Try Again'
答案 3 :(得分:0)
那是因为你的if
语句在except
子句之外,并在控制离开时执行。
您将score
设置为-1
,小于0.6
,因此会打印F
。
您必须将整个if
移动到except
子句才能使其正常工作。或者,您可以将上一个if
更改为elif
或else
。