2016-09-23 151 views
0

我正在尝试编写一个代码,用户可以输入将从列表中拉出数字等级的原始数据,并将该数值与字母等级配对。即:在列表中的第四级是86,那么它会打印86以及字母B级初学者的简单Python代码

这里是我到目前为止有:


grades = ['62','68','93','75','89','85'] 

print grades [3] 

def lettergrade (grades): 

    if grades >=90: 
     print('A') 
    elif grades >=80 and grades <90: 
     print('B') 
    elif grades >=70 and grades <80: 
     print('C') 
    elif grades >=60 and grades <70: 
     print('D') 
    else: 
     print('F') 


print lettergrade (grades) 
+1

“这是我迄今为止:”和...?它做什么,你期望它做什么? – Brydenr

+0

您需要在'def lettergrade(等级)下开始缩进一切。你有追溯吗?显示它 –

+0

我只是为你缩进它。请记住,蟒蛇是制表知道 – adhg

回答

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风格指南)的习惯

+0

专门调出您的代码会给出错误的输出 - 您必须将LetterGrade参数的名称或“如果成绩> = 90:”更改为“if grade> = 90:”,当然对于其他如果条件。 – coder

+0

@coder良好的通话,我在手机上,但我继续前进,并做出了改变。 –

0

的问题,你正在遇到的是grades只包含字符串。 '1'是一个字符串,就像'你好'。在Python中,字符串不会等于数字,因此比较它们将始终是错误的。此外,您将grades的整个数字与一个数字进行比较,该数字也将评估为false。您正在寻找的比较是if(grades[index]>= 90):其中index是您正在查看的任何索引。

lettergrade()中的print()语句只会打印出等级,因此将每个打印语句更改为`print('LETTER:'+ value)。

此外,该方法lettergrade()将只打印出来的一件事,所以需要有一个循环来调用它多次,多个值:

for value in grades: 
    lettergrade(value) 
0

你必须要小心压痕,蟒蛇是一种缩进的语言。

试试这个:

# 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)) 
+1

如果你解释了为什么你选择编写这段代码,它可能对OP有帮助。我们的目标应该是帮助OP更像程序员,而不仅仅是为他/她编写代码。 –

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" 
+1

OP使用值列表 – Brydenr