下面是我的代码,有两个版本。第一,不带if语句的for循环;第二,使用if语句的for循环。根据我的发现,如果删除第一版的if语句,结果将显示所有员工的信息。我还在学习巨蟒,谢谢你
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循环,结果将只显示一个雇员信息。
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)发布于 2020-09-30 06:47:58
这是因为它要么在if语句中,要么在elif语句中,因为它们都有一个break语句,所以内部循环会立即终止,即使还没有完成所有的employees。
https://stackoverflow.com/questions/64132187
复制相似问题