Python 从While循环创建语句并打印

Python 从While循环创建语句并打印,python,loops,while-loop,printing,Python,Loops,While Loop,Printing,你好。我在编码方面已经有几天了,我不确定我试图创建的内容是否不可能,但如果可以的话,请提供帮助 运行此语句时: i=1 而我

你好。我在编码方面已经有几天了,我不确定我试图创建的内容是否不可能,但如果可以的话,请提供帮助

运行此语句时:

i=1
而我<20:
印刷品(一)
i+=1
数字由列表打印<代码>1 2 3 4 5 6 7 8 9 10 11 12 13 15 16 17 18 19

我想创建一个单一的数字,它是过去2个打印数字+当前数字的组合,并在每次旋转时为其指定字母
a
。例如,在打印
1
后,没有过去的2个数字,因此在打印
2
a=invalid
,因为没有过去的2个数字,所以在打印
3
后,
a=123
。打印
4
后,
a=234
。打印
5
后,
a=345
依此类推

我决定使用存储结果的方法,而不是依赖于算术的解决方案,因为我的实际问题与我在这里写的不同

i=1
数字存储=[]
而i您可以使用来格式化结果:

i = 1
past = 2

while i < 20:
    if i > past:
        print(f'{i-2}{i-1}{i}')
    i += 1

此处arr将包含您需要的所有内容

arr=[]
i=1
while i<20:
    if (i-2<=0):
        a="invalid"
        print(a)
        arr.append(a)
        i=i+1
    else:
        a=str(i-2)+str(i-1)+str(i)
        arr.append(a)
        i=i+1

print(arr)
arr=[]
i=1

而我一种方法是将3个数字存储在一个列表中。 在每一个循环(圈)中,新的数字都会被添加到列表中,如so
storaged\u numbers.append(str(i))
如果列表长度超过3个元素,则删除第一个元素,如下所示

if len(stored_numbers) == 4:
    del stored_numbers(0)
然后,您可以使用
print(''.join(存储的\u编号))

然而,由于您的示例只要求增量为1,因此您可以使用一些算术运算

i = 3
while i < 20:
    print((i-2)*100+(i-1)*10+i)
    i += 1

请使用您尝试过的代码更新您的问题。创建一个列表,将当前数字推到末尾,如果大小大于3,则从开头弹出一个元素。您可以计算最后的数字,例如
i-1
,也可以将其保存在变量中,例如
last1=i
谢谢您的回答。不幸的是,我的支持票不能被记录下来,因为我的声望还不到15。但有一个问题,您给我的用于打印串联列表的代码返回错误:“序列项0:expected str instance,int found”正确。我应该先把数字转换成字符串。让我编辑答案(参见第一行代码,即我们附加到列表中的代码)哦,再次感谢。照你说的做,结果很完美。
i = 3
while i < 20:
    print((i-2)*100+(i-1)*10+i)
    i += 1
for i in range(3,21):
    print((i-2)*100+(i-1)*10+i)
    # i += 1  /No need for this, since i is incremented by the for loop