举个例子,我想创建一个FLAMES游戏。以下是清单。
[ 'F', 'L', 'A', 'M', 'E', 'S']
当我试图删除第11项时,要删除的第一个字母是“E”。然后计数必须从字母“S”开始。我不知道如何为此构建逻辑。
计数必须一遍又一遍地重复,直到我们得到一个项目。弹出第11项“E”后,计数必须从“S”开始,第11项将是“S”。现在必须删除“S”并且计数必须从“F”开始,然后第11个字母将是“A”。之后删除“F”和“L”。最后,字母“M”应该保留。这就是我想要的逻辑
这是我最初尝试过的。
x = 11
sample = ['f','l','a','m','e','s']
print len(sample)
empty = []
while True:
print sample
if len(sample) == 1:
print sample
print "Congratulations!!! Your result is %s"%(sample[0].upper())
break
elif len(sample)>= x:
sample.pop(x-1)
elif len(sample)< x:
y = x % len(sample)
sample.pop(y-1)
功能:
sample = ['f','l','a','m','e','s']
def last_item(sample, x):
rest = 0
a = 0
while (len(sample) >1):
rest = (x+rest-a) % len(sample)
if rest == 0:
rest = len(sample)
print('element eliminated', sample[rest - 1])
sample.pop(rest - 1)
a = 1
return sample
print(last_item(sample, 5))
输出x = 5:
element eliminated e
element eliminated m
element eliminated s
element eliminated l
element eliminated a
['f']