Corben89 2023-03-09 17:09 采纳率: 25%
浏览 20

Python的两个代码为何不是输出同一个结果

Python的两个代码为何不是输出同一个结果,代码和结果如下:
第一个代码:


```python
sandwich_orders = ['huotui', 'peigen', 'zhishi']
finished_sandwiches = []

for order in sandwich_orders:
    print(f"I made your {order} sandwich.")
    food = sandwich_orders.pop(0)
    finished_sandwiches.append(food)

print(sandwich_orders)
print(finished_sandwiches)

结果输出为:
I made your huotui sandwich.
I made your zhishi sandwich.
['zhishi']
['huotui', 'peigen']

第二个代码:

```python
sandwich_orders = ['huotui', 'peigen', 'zhishi']
finished_sandwiches = []

while sandwich_orders:
    food = sandwich_orders.pop()
    print(f"I nade your {food} sandwich.")
    finished_sandwiches.append(food)

print(sandwich_orders)
print(finished_sandwiches)

结果输出为:
I nade your zhishi sandwich.
I nade your peigen sandwich.
I nade your huotui sandwich.
[]
['zhishi', 'peigen', 'huotui']

  • 写回答

3条回答 默认 最新

  • 於黾 2023-03-09 17:18
    关注

    同一个问题发这么多遍干什么
    for是个迭代器,你用pop会干扰它的迭代过程
    而while sandwich_orders,只要列表长度不为0就一直循环
    跟过程无关

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月9日