美好的一天。我在编码方面工作了几天,我不确定我尝试创建的内容是否可行,但请提供帮助。
运行此语句时:
i = 1
while i < 20:
print(i)
i += 1
数字按列表打印。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
。
我想创建一个数字,该数字是过去2个已打印数字+当前数字的组合,并在每个回合中为其分配字母a
。例如,在1
被打印之后,没有过去的2个数字,因此a = invalid
之后的2
被打印了a = invalid
,因为在{{1}之后没有2个过去的打印数字}打印3
。打印a=123
之后,4
。在a = 234
打印之后,5
依此类推。
我决定使用存储结果的方法,而不是依赖于算术的解决方案,因为我的实际问题与我在这里写的不一样。
a=345
感谢所有回答的人
答案 0 :(得分:1)
一种方法是将3个数字存储在列表中。
每次循环(转弯)时,新编号都会添加到列表中,例如stored_numbers.append(str(i))
如果列表的长度超过3个元素,则可以删除第一个元素
if len(stored_numbers) == 4:
del stored_numbers(0)
然后您可以使用print(''.join(stored_numbers))
但是,由于您的示例仅要求加1,因此您可以不用算术了
i = 3
while i < 20:
print((i-2)*100+(i-1)*10+i)
i += 1
您使用的while
循环可以更像Python一样表达为for循环
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
答案 1 :(得分:0)
您可以使用f strings格式化结果:
i = 1
past = 2
while i < 20:
if i > past:
print(f'{i-2}{i-1}{i}')
i += 1
出局:
123
234
345
456
567
678
789
8910
91011
101112
111213
121314
131415
141516
151617
161718
171819
答案 2 :(得分:0)
这里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)