score = raw_input("Enter a score between 0.0 and 1.0:")
float(score)
#if score < 0.0:
#print "Invalid input."
#exit
#elif score > 1.0:
#print "Invalid input."
#exit
if score >= .9:
print "A"
elif score >= .8:
print "B"
elif score >= .7:
print "C"
elif score >= .6:
print "D"
elif score < .6:
print "F"
else:
print "Invalid input."
我在上面的python代码中遇到了问题;我的初始if语句似乎有问题,但我似乎不知道是什么。不管我用什么输入测试它,它总是返回A作为输出。任何关于我做错了什么的提示都是很好的,很抱歉问了这么简单的问题,但我刚刚开始学习python,我已经盯着这段代码看了一个多小时了,我一辈子都搞不明白为什么它不起作用。非常感谢。你知道吗
这实际上并没有将变量
score
更改为float
你必须把它分配回
score
或者在输入变量时这样做
再把那个值存到分数里。你知道吗
您需要将
float()
调用的返回值back赋给score
:score
开始时是一个字符串,一个不可变的对象,它不会被就地转换。float()
返回一个新的浮点对象,您将忽略该返回值。你知道吗您可以使用^{} module 将值映射到字母,而不是使用5
if
语句:对于任何给定的分数,
bisect.bisect()
会将插入点返回到scores
列表中最接近的较低或相等的值之后;因此对于.9
它会返回5
,在末尾插入值,但是对于从0
到(但不包括)0.6
的任何值,它会返回1
。你知道吗然后你所要做的就是减去1,然后使用相同的索引进入
grades
列表,得到相应的分数。你知道吗演示:
相关问题 更多 >
编程相关推荐