我不知道如何 return 并打印函数结果。 (我正在制作一个python通讯录程序)

I don't know how to return and print the function result. (I am making a python address book program)


def search_namecard():
    find_IG = input("The IG of the person you are looking for : ")
    with open('memberinfo_.txt') as f:
        datafile = f.readlines()
        for line in datafile:
            if find_IG in line:
                return line
        return False

while True:
    print("INSERT(1), SEARCH(2), LIST(3), MODIFY(4), DELETE(5), EXIT(0)")
    menu = get_menu()
    if menu==1:
        new_card = get_namecard_info()
        with open("memberinfo_.txt", mode='a') as f:
                f.write(new_card.printCard())
        namecard_list.append(new_card) 

    elif menu==2:
        if search_namecard() != True :
            print(line)
        else:
            print("Not Found")

我制作了一个地址簿程序,接收个人信息并将其存储在一个txt文件中。我正在尝试添加搜索功能,但我使用的是 readlines() 函数。当我在地址簿中找到 Instagram ID 时,我想显示此人的信息,但我很好奇如何 return 函数中的 'line' 变量。

enter image description here

您 return 函数中的一行作为没有名称的值。您需要将值保存在某处才能像这样使用它:

search_result = search_namecard()
if search_result:
    print(search_result)
else: 
    print("Not found")

您需要将函数的 return 存储在 if 子句之外的局部变量中,以便稍后打印。像这样

while True:
    print("INSERT(1), SEARCH(2), LIST(3), MODIFY(4), DELETE(5), EXIT(0)")
    menu = get_menu()
    if menu==1:
        new_card = get_namecard_info()
        with open("memberinfo_.txt", mode='a') as f:
                f.write(new_card.printCard())
        namecard_list.append(new_card) 

    elif menu==2:
        line = search_namecard()
        if line:
            print(line)
        else:
            print("Not Found")

在这里您可以直接在 if 中使用 line 因为它 return 的任何字符串(空字符串除外)都将采用真值。