0

我有一个问题,需要我接受用户输入并返回该值或高于该值的所有项目,最高 100

我问用户他想从我拥有的一组数据中看到什么成绩。

所以我会让用户输入一个等级,我将返回该等级或更高等级的人的所有记录。

这是我到目前为止所拥有的

我从中提取的一小部分数据看起来像这样

 ['Bud', 'Abbott', 51, 92.3]
 ['Don', 'Adams', 51, 90.4]
 ['Mary', 'Boyd', 52, 91.4]
 ['Jill', 'Carney', 53, 76.3]
 ['Hillary', 'Clinton', 50, 82.1]
 ['Randy', 'Newman', 50, 41.2]

到目前为止,我的代码只是一些确保用户输入正确函数的 if 和 elif 语句。此功能将起作用,如果用户输入字母 g,程序将要求一个等级阈值,然后将返回任何具有该等级及以上等级的数据行。

例如,如果我是用户,我输入 g 然后输入 90 我只会得到这三行

 ['Bud', 'Abbott', 51, 92.3]
 ['Don', 'Adams', 51, 90.4]
 ['Mary', 'Boyd', 52, 91.4]

此外,如果用户输入字母 S,它会找到该部分的记录并返回该部分中的所有学生,因此如果用户输入 s 然后 50 程序将返回

 ['Hillary', 'Clinton', 50, 82.1]
 ['Randy', 'Newman', 50, 41.2]

到目前为止我写的代码看起来像这样

def Query ():
    input("enter query type (g or s):")
    #checks user's input and takes user to grades
    if (operator == "g"):
        print("You have chosen to query Grades")
    GradeThreshold=input("enter the Grade threshold:")


    #checks user's input and takes user to section 
    elif (operator == "s"):
         print("You have chosen to query Section")
    SectionNumber=input("enter the section:")


    elif (operator != "g") and (operator != "s"):
          print("Invalid entry. Please re-enter the operation from above.")
    return()

我对如何接受用户输入并让它从我上面的数据列表中选择等级范围或部分编号感到困惑。请帮我。

4

1 回答 1

0

您需要遍历这些项目。例如:

items = [['Bud', 'Abbott', 51, 92.3],
         ['Don', 'Adams', 51, 90.4],
         ['Mary', 'Boyd', 52, 91.4],
         ['Jill', 'Carney', 53, 76.3],
         ['Hillary', 'Clinton', 50, 82.1],
         ['Randy', 'Newman', 50, 41.2]]

for item in items:
    print(item)

这将按顺序打印所有项目。要从项目中获取值,您需要使用括号按索引访问它:

for item in items:
    print item[2] # Prints the 3rd element in item (because indexes start at 0)

或在迭代时解包项目:

for first_name, last_name, some_integer, grade in items:
    print('Name:', first_name, last_name)
    print('Grade:', grade)

当每个项目中的项目很少时,第二种解决方案被视为更惯用,它是首选,因为它更清楚项目的组成。

假设这是家庭作业,我想你可以从这里完成。

于 2012-11-20T00:35:11.340 回答