对列表使用pop()函数,列表里面有10个字符串内容,用for循环只能打印5个结果,代码如图,问题在哪里

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图

friends = ['hu', 'pan', 'hou', 'yao', 'qi', 'lu', 'jiang', 'jun', 'lpan', 'liu']
message = 'i am sorry that ...'
for i in friends:
miss_friend = friends.pop()
print(f"hello Mr.{miss_friend}, {message}")

运行结果及报错内容

hello Mr.liu, i am sorry that ...
hello Mr.lpan, i am sorry that ...
hello Mr.jun, i am sorry that ...
hello Mr.jiang, i am sorry that ...
hello Mr.lu, i am sorry that ...

我的解答思路和尝试过的方法

用pop()函数删除列表内元素,并且赋值给变量miss_friend, 然后给每个元素打印一条信息

我想要达到的结果

应该可以把列表里面的所有10个元素,打印10条信息,但是只打印5条信息

你在循环里,把i打印出来看看就知道了。
你这个循环,是以friends里的元素从头开始循环,但是到第5次完成的时候,你pop已经干掉后面5个了,此时friends里已经没有第6个元素可以循环了。
如果你是想以friends一开始的元素个数进行循环,而不是里面的值,那么你的for 就不是 in元素,而是应该in 1到10

friends = ['hu', 'pan', 'hou', 'yao', 'qi', 'lu', 'jiang', 'jun', 'lpan', 'liu']
message = 'i am sorry that ...'
for i in range(len(friends)):
    miss_friend = friends.pop()
    print(f"hello Mr.{miss_friend}, {message}")

for循环那句改为:

for i in range(len(friends)):