首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列表通讯录

列表通讯录
EN

Stack Overflow用户
提问于 2015-12-20 23:20:36
回答 1查看 680关注 0票数 1

为什么当我要求shell上的python第二次打印它时,我的列表是空的?

代码语言:javascript
复制
def name():
    name = str(input("Name:"))
    return name

def phone():
    phone = str(input("Phone Number: "))
    return phone

def email():
    email = str(input("Email: "))
    return email

然后,我创建了一个join函数,以便将所有数据添加到列表中:

代码语言:javascript
复制
def join(lst, name, phone, email): 
    name = name()

if name in lst:
    print("Name already in")
    phone = phone()

if phone in lst:
    print("Phone already exists")
    email = email()

if email in lst:
    print("Email already exists!")
    lst += [name]
    lst += [phone]
    lst += [email]
    print("Added!")
return lst

函数列出地址簿上的每个条目:

代码语言:javascript
复制
def print_list(lst):
    print(lst)

菜单看起来是这样的:

代码语言:javascript
复制
def menu():
    print("1-New Contact")
    print("2-Print list")
    option = int(input("Option:"))
return option

def repeat(lst):
    option = menu()
    while option < 2 and option >= 1:
        if option == 1:
            lst = join(lst, name, phone, email)
        elif opcao == 2:
            lst = print_list(lst)
        else:
            print("Invalid option")
        opcao = menu()

lst = []
call = repeat(lst)
print(call)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-20 23:42:44

我认为打印代码是指代码的这一部分:lst=print_list(lst)和list在lst变量中。

这里要做的是在第一次调用之后将print_list函数的返回值赋给您的lst变量。这将将其设置为None,因为print_list不显式返回任何值。当您尝试第二次打印时,lst为None,而没有打印任何内容。

不应该赋值给lst,只需调用print_list(lst)而不分配返回值:

代码语言:javascript
复制
elif opcao==2: print_list(lst)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34387020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档