如何对输入列表进行排名并为其分配变量以返回给用户?

时间:2016-02-22 07:17:56

标签: python python-3.x

我的程序很难,而且我的代码技能非常简单。我需要做的是从用户那里取一个输入的列表,并按字母A(66 - 100),B(33 - 65),C(0 - 32)排名。我假设我需要输入的列表是一个元组,但我不完全确定如何这样做。我知道我需要(或可以)使用elif来完成这个但是我不知道如何使它成为B的两个数字之间的范围,因为C是else,而A只是大于。 这是我的代码:

def scores():
    print('we are starting')
    count = int(input('Enter amount of scores: '))
    print('Each will be entered one per line')
    scoreList = []
    for i in range(1, count+1):
            scoreList.append(int(input('Enter score: ')))
            print(scoreList)
    print(scoreList)
    if scoreList > 66:
        print('A')
    #elif scoreList > 33:
        #print('B')
    else:
        print ('C')

2 个答案:

答案 0 :(得分:0)

使用逻辑运算符(andornot)将您的条件链接在一起并循环遍历列表中的每个项目:

def scores():
    print('we are starting')
    count = int(input('Enter amount of scores: '))
    print('Each will be entered one per line')
    scoreList = []
    for i in range(1, count+1):
            scoreList.append(int(input('Enter score: ')))
            print(scoreList)
    print(scoreList)
    for score in scoreList:
        if score >= 66:
            print('A')
        elif score >= 35 and score <=65:
            print('B')
        else:
            print('C')

答案 1 :(得分:0)

if-structure的可能解决方案:

for score in scoreList:
    if 66 <= score <= 100:
        print('A')
    elif 33 <= score <= 65:
        print('B')
    elif 0 <= score <= 32:
        print('C')
    else:
        # handle out of range input

这样您就可以使用else来处理0100之间的输入。