Python 有人能帮我理解什么';下面的代码中有什么错误? 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 学位(姓名1,证书1) NameError:未定义名称“cert1”

Python 有人能帮我理解什么';下面的代码中有什么错误? 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 学位(姓名1,证书1) NameError:未定义名称“cert1”,python,function,loops,for-loop,Python,Function,Loops,For Loop,通过引入新词典简化您的功能: Traceback (most recent call last): File "<ipython-input-238-4c32ecccc897>", line 1, in <module> sch_degree(name1, cert1) NameError: name 'cert1' is not defined 返回: degree = {'name1': 'sam', 'ce

通过引入新词典简化您的功能:

Traceback (most recent call last):

  File "<ipython-input-238-4c32ecccc897>", line 1, in <module>
    sch_degree(name1, cert1)

NameError: name 'cert1' is not defined 
返回:

degree = {'name1': 'sam',
          'cert1': 'bachelors',
          'name2': 'Ann',
          'cert2': 'masters',
          'name3': 'john',
          'cert3': 'associates',
          'name4': 'oz',
          'cert4': 'phd'
          }

cert_yr = {'bachelors': 'four',
           'masters': 'two',
           'associates': 'two',
           'phd': 'four'
           }


def sch_degree(n, c):
    return f"{degree[n]} is a {cert_yr[degree[c]]} year holder of a {degree[c]}"


print(sch_degree('name1', 'cert1'))
print(sch_degree('name2', 'cert2'))
print(sch_degree('name3', 'cert3'))
print(sch_degree('name4', 'cert4'))

那么,错误的哪一部分还不清楚<代码>证书1在定义之前已被访问。你的意思是:
学位['cert1']
?也许你的意思是:
学校学位(学位['name1'],学位['cert1'])
?如果是这样的话,你还会有其他错误。@DeepSpace的主要目的是打印出第一句话:“{Sam}是{bachelors}的四年持有人”。谢谢谢谢你,博洛拉!我还有很长的路要走。
degree = {'name1': 'sam',
          'cert1': 'bachelors',
          'name2': 'Ann',
          'cert2': 'masters',
          'name3': 'john',
          'cert3': 'associates',
          'name4': 'oz',
          'cert4': 'phd'
          }

cert_yr = {'bachelors': 'four',
           'masters': 'two',
           'associates': 'two',
           'phd': 'four'
           }


def sch_degree(n, c):
    return f"{degree[n]} is a {cert_yr[degree[c]]} year holder of a {degree[c]}"


print(sch_degree('name1', 'cert1'))
print(sch_degree('name2', 'cert2'))
print(sch_degree('name3', 'cert3'))
print(sch_degree('name4', 'cert4'))
sam is a four year holder of a bachelors
Ann is a two year holder of a masters
john is a two year holder of a associates
oz is a four year holder of a phd