为什么我的代码在运行时没有改变?

时间:2021-05-13 01:07:53

标签: python

如果我没有遵循更有经验的用户可能知道的指定格式,我深表歉意。我刚刚开始了我的 Python 之旅,有一个非常简单的问题,我想在未来在这里站稳脚跟。

我开始学习“Python 速成课程”,并开始编写一个简单的程序,从列表中挑选人员并邀请他们共进晚餐。在接下来的几个步骤中,您将使用相同的列表来做一些其他的事情。

所以我使用 .pop() 从列表中提取并使用名称打印语句,然后将该使用的名称附加到新列表中。当我运行它时,一切似乎都运行良好,但我期待修改代码中的实际列表。因此,如果我再次运行它,那么下一个名称将被拉入邀请并添加到列表中。

我想我的问题是代码实际上改变了您运行的内容还是只是输出?从我看来,它只是输出。第二个问题是我真的可以完成我想要做的事情吗?

guests = ['Dennis', 'Mac', 'Charlie', 'Dee', 'Frank']
invited = []

guest_invite = guests.pop()

print(f"{guest_invite.title()} you are cordially invited to dinner in hell.")

print(guests)

invited.append(guest_invite)

print(invited) 

在此先感谢您的任何帮助。希望我没有把这篇文章搞砸。

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您想显示给定列表中的每个人都被邀请了。 为此,我建议使用范围循环来帮助我们遍历邀请列表。这比使用 for 循环更好,因为我们需要改变邀请列表。 以下内容可以解决问题。

guests = ['Dennis', 'Mac', 'Charlie', 'Dee', 'Frank']
invited = []
for guest in range(len(guests)):
    guest_invite = guests[guest]

    print(f"{guest_invite} you are cordially invited to dinner in hell.")
    invited.append(guest_invite)
print(f'All of the following are invited: {invited}')

输出

Dennis you are cordially invited to dinner in hell.
Mac you are cordially invited to dinner in hell.
Charlie you are cordially invited to dinner in hell.
Dee you are cordially invited to dinner in hell.
Frank you are cordially invited to dinner in hell.
All of the following are invited: ['Dennis', 'Mac', 'Charlie', 'Dee', 'Frank']

答案 1 :(得分:0)

我认为根据对较早答案的反馈和您最初的问题,您似乎在寻找这样的东西:

guests = ['Dennis', 'Mac', 'Charlie', 'Dee', 'Frank']
guest_counter = 0 #Counts number of guests invited

for guest in guests:
    print("Guests Invited: ", guests[:guest_counter]) #Uses string slicing to non-destructively mention already invited guests by moving slicing counter +1
    print(guest, " you are cordially invited to dinner in hell.")
    guest_counter += 1

print("Guests Invited: ", guests[:guest_counter])

它使用一种叫做字符串切片的东西(如果你还没有达到那个熟练程度,请谷歌它)来无损地提及受邀者,所以你总是有你的原始列表供以后参考!