首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环if语句,不显示列表结果列表。

循环if语句,不显示列表结果列表。
EN

Stack Overflow用户
提问于 2020-09-30 06:42:56
回答 1查看 42关注 0票数 0

下面是我的代码,有两个版本。第一,不带if语句的for循环;第二,使用if语句的for循环。根据我的发现,如果删除第一版的if语句,结果将显示所有员工的信息。我还在学习巨蟒,谢谢你

代码语言:javascript
复制
def addNew():
    global employees
    newEmp = []
    checkList = []
    newEmp.append(input("Enter id: "))
    newEmp.append(input("Enter name: "))
    newEmp.append(input("Enter department: "))
    newEmp.append(input("Enter position: "))
    checkList.append(newEmp)

    for new in checkList:
        print(new)
        for exist in employees:
            print(exist)

result
['1001', 'das', 'das', 'das']  # from print(new)
['1000', 'tim', 'hr', 'admin'] # from print(exist)
['1003', 'jim', 'hr', 'clerk'] # from print(exist)
['1007', 'ida', 'hr', 'audit'] # from print(exist)
['1005', 'mia', 'itss', 'security'] # from print(exist)

但是,在下面的第二个版本代码中,如果我将if语句放入for循环,结果将只显示一个雇员信息。

代码语言:javascript
复制
def addNew():
    global employees
    newEmp = []
    checkList = []
    newEmp.append(input("Enter id: "))
    newEmp.append(input("Enter name: "))
    newEmp.append(input("Enter department: "))
    newEmp.append(input("Enter position: "))
    checkList.append(newEmp)

    for new in checkList:
        print(new)
        for exist in employees:
            print(exist)
            if new[0] == exist[0]:
                print("entered id",new[0],"is already exist")
                break
            elif new[0] != exist[0]:
                employees.extend(checkList)
                break

result
['1001', 'das', 'das', 'das']  # from print(new)
['1000', 'tim', 'hr', 'admin'] # from print(exist)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-30 06:47:58

这是因为它要么在if语句中,要么在elif语句中,因为它们都有一个break语句,所以内部循环会立即终止,即使还没有完成所有的employees

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64132187

复制
相关文章

相似问题

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