即使在代码中实际定义了对象,代码仍显示对象“未定义”的运行时错误,原因是什么? [已关闭]

问题描述 投票:0回答:1

代码:

phonebook={"Prodip":7333333333,"Bornali":7555555550,"Antariksa":7999999935,"Ahalya":9000000003}
def findname(name):
    if name.has_key():
        del phonebook[name]
    else:
        print("Name not found")
        print("Phonebook information")
        print("Name     ","Phone number:")
    for i in phonebook:
            print(i,"      ",phonebook[i])
#print(phonebook.keys())
findname(Bornali)

在这里,电话簿是一本字典。

运行时显示错误如下:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[22], line 12
     10             print(i,"      ",phonebook[i])
     11 #print(phonebook.keys())
---> 12 findname(Bornali)

NameError: name 'Bornali' is not defined

起初我认为变量电话簿的范围可能存在一些问题,我尝试以这种方式将“电话簿”放入函数中:

def findname(name):
    phonebook={"Prodip":7333333333,"Bornali":7555555550,"Antariksa":7999999935,"Ahalya":9000000003}
    if name.has_key():
        del phonebook[name]
    else:
        print("Name not found")
        print("Phonebook information")
        print("Name     ","Phone number:")
    for i in phonebook:
            print(i,"      ",phonebook[i])
#print(phonebook.keys())
findname(Bornali)

仍然显示相同的错误...函数调用期间传递给函数的参数名称未定义。

我也尝试放置 findname("Bornali") 和 findname('Bornali'),但仍然没有效果。

任何人都知道发生了什么。我是不是错过了什么?

python-3.x function dictionary if-statement jupyter-notebook
1个回答
0
投票

您需要将函数的参数作为

string
传递。在这种情况下,您应该致电
findname("Bornali")

© www.soinside.com 2019 - 2024. All rights reserved.