我正在尝试编写代码,以便用户可以输入将从列表中提取数字等级的原始数据,并将该数值与字母等级配对。即:列表中的第四个等级是86,因此它将打印86以及字母等级B.
这是我到目前为止所做的:
test('should add new post', function(assert) {
var done = assert.async();
visit('/posts/new');
fillIn('input.title', 'My new post');
click('button.submit');
andThen(() => {
assert.equal(find('ul.posts li:first').text(), 'My new post')
click('button.edit');
fillIn('input.title', 'My edited post');
click('button.submit');
andThen(() => {
assert.equal(find('ul.posts li:first').text(), 'My edited post')
done();
});
});
});
答案 0 :(得分:1)
这应该达到你想要的目的:
grades = [62, 68, 93, 75, 89, 85]
def LetterGrade(grade):
if grade >= 90:
result = [grade, 'A']
elif grade >= 80 and grades < 90:
result = [grade, 'B']
elif grade >= 70 and grades < 80:
result = [grade, 'C']
elif grade >= 60 and grades < 70:
result = [grade, 'D']
else:
result = [grade, 'F']
return result
# call LetterGrade for each value in grades array
for grade in grades:
print(LetterGrade(grade))
您需要为等级数组中的每个值循环。另外,尝试养成遵循PEP 8(Python风格指南)的习惯
答案 1 :(得分:0)
您遇到的问题是grades
仅包含字符串。 '1'是一个字符串就像'你好'。在python中,字符串不等于数字,因此比较它们总是错误的。此外,您要将grades
的全部内容与一个数字进行比较,该数字也将评估为false
。您正在寻找的比较是if(grades[index]>= 90):
,其中index
是您正在查看的索引。
print()
内的lettergrade()
语句只会打印出成绩,因此请将每个print语句更改为'print('LETTER:'+ value)。
此外,方法lettergrade()
只打印出一个东西,因此需要有一个循环来多次调用它,具有多个值:
for value in grades:
lettergrade(value)
答案 2 :(得分:0)
你需要小心缩进,python是一种缩进的语言。
试试这个:
# define lettergrade function
def lettergrade(grades):
if grades >=90:
return('A')
elif grades >=80 and grades <90:
return('B')
elif grades >=70 and grades <80:
return('C')
elif grades >=60 and grades <70:
return('D')
else:
return('F')
grades = ['62','68','93','75','89','85']
for grade in grades: # iterate in grades
# call to lettergrade function -> lettergrade(grade)
print(grade, ' equivalent ', lettergrade(grade))
答案 3 :(得分:0)
我在这里很困惑,如果你想要用户输入,为什么你想要一个值列表呢?您所要做的就是等待用户输入并检查输入所属的等级。请评论如果你想要一些改变!!
x = raw_input("Enter Score: ")
score = float(x)
try:
if grades >=90:
print('A', score)
elif grades >=80 and grades <90:
print('B', score)
elif grades >=70 and grades <80:
print('C', score)
elif grades >=60 and grades <70:
print('D', score)
else:
print('F', score)
except:
print "Error"