元组中元素的提取

2024-09-28 03:21:17 发布

您现在位置:Python中文网/ 问答频道 /正文

任务:

每个学生记录用tuple表示,它由学生的入学编号和姓名组成。在

示例:('B0094358N', 'Shao Hong')

编写一个函数get_student_name,当学生的入学编号和学生记录作为参数传入函数时,返回学生的姓名。如果矩阵号与数据库中的任何记录不匹配,则应返回字符串'Not found'。在

  • 输入:get_student_name('B2245467C', student_records)
  • 输出:'Yang Shun'

请帮我检查代码:

def get_student_name(matric_num, records): 
    l = student_records

    for i in l:
        if matric_num == i[0]:
            return (i[1])
        elif matric_num != i[0]:
            continue
    if matric_num not in l:
        return ('Not found')

我知道硬编码的错误,但我不知道为什么。在


Tags: 函数nameinget记录notstudent学生
2条回答

试试这个简化版。您不需要else条件或continue,因为循环将在第一个匹配时返回。在

>>> def get_student_name(matric_num, records):
...     for i in records:
...         if i[0] == matric_num:
...             return i[1]
...     return 'Not Found'
...
>>> records = [('123','Jim'),('456','Bob'),('890','Sam')]
>>> get_student_name('999', records)
'Not Found'
>>> get_student_name('123', records)
'Jim'

现在还不清楚你的学生档案结构如何。从您的代码中推测,它看起来像是一个元组列表,所以这就是我们的假设。在

我想问题出在for循环之后的if条件。如果您返回for loop而没有返回,这意味着matric_num在您的学生记录中不存在。所以你可以试试这个-

def get_student_name(matric_num, records): 
    l = student_records

    for i in l:
        if matric_num == i[0]:
            return (i[1])
        elif matric_num != i[0]:
            continue
    return ('Not found')

或者,再多一点Python-

^{pr2}$

相关问题 更多 >

    热门问题