提示输入名称,然后输出在分数

时间:2017-03-12 20:25:13

标签: python

我正在为我的介绍CS课程写一个程序,但我有点卡住了。
我有一个与分数列表相对应的指定名单 我应该提示用户输入一个名字,然后该程序应输出与相应分数一起输入的名称。
正如我现在所写的那样,无论输入如何,程序都会在集合中打印名字和分数。我已经坚持了一段时间,任何帮助将不胜感激!

这就是我现在所拥有的:

names=['Jim','Sarah','Jason','Lynne','Ginny','Joe','Susan'];
scores=['88','92','95','84','85','92','89'];
input("Please enter student's name:")
for i in range (0,7):                             
    print (input(names[i] + scores[i]));

3 个答案:

答案 0 :(得分:0)

  

程序应该输出输入的名称

考虑到你没有捕获input()返回值,这将很难。

试试这个(作为例子)

name = input("Please enter student's name:")
print(name)

然后,您接下来的任务是在name == <a name in the list>

时检查(在您的循环中)

提示:您可以将这些用于循环,而不是range(0,7)

for student in names:

或者更好的是,请参阅zip lists in python

for (student, score) in zip(names, scores):

答案 1 :(得分:0)

使用zip功能,您可以将两个lists组合在一个易于使用的1对1 tuples组中。

names=['Jim','Sarah','Jason','Lynne','Ginny','Joe','Susan']
scores=['88','92','95','84','85','92','89']
data = zip(names, scores) # <- ('Jim', '88'), ('Sarah', '92'), ...

stud = input('Enter the student's name: ')
for (student, score) in data:
    if (stud == student):
        print('{} -> {}'.format(student, score))

答案 2 :(得分:0)

最好使用Python词典:

student_scores = {'Jim': 88, 'Sarah': 92, 'Jason': 95}

依旧...... 然后你可以像这样呼叫他们每个人;

name = input("Please enter student's name: ")
print(name + 'has a score of ' + student_scores[name])