我有一项创建倒计时for
循环的作业。说明是将结果如下:
12345
1234
123
12
1
我可能会让它变得比实际更难,但我对Python很陌生。
到目前为止,我的脚本如下:
def print_figure():
for i in range(5, 0, -1):
for count in range(i):
print(12345, end='')
print()
导致:
1234512345123451234512345
12345123451234512345
123451234512345
1234512345
12345
我不是要求答案,只是指向正确方向的指针。
答案 0 :(得分:1)
你几乎在那里;您是一遍又一遍地打印数字12345
,而不是使用count
,第一个循环中的范围从0到4,第二个循环中的范围是0到3,等等。
你想打印count
本身,但要么添加一个,要么调整它从1到i + 1
循环的范围:
def print_figure():
for i in range(5, 0, -1):
for count in range(1, i + 1):
print(count, end='')
print()
或使用:
def print_figure():
for i in range(5, 0, -1):
for count in range(i):
print(count + 1, end='')
print()
演示:
>>> def print_figure():
... for i in range(5, 0, -1):
... for count in range(1, i + 1):
... print(count, end='')
... print()
...
>>> print_figure()
12345
1234
123
12
1
另一种方法是使用字符串'12345'
并将其编入索引; '12345'[0]
是'1'
等等:
def print_figure():
for i in range(5, 0, -1):
for count in range(i):
print('12345'[count], end='')
print()
然后你可以使用切片并完全摆脱嵌套循环:
def print_figure():
for i in range(5, 0, -1):
print('12345'[:i])
因为'12345'[:3]
返回字符串的前3个字符,打印123
。
答案 1 :(得分:1)
替换最后两行:
print(12345, end='')
print()
与
print(count),
print ''
答案 2 :(得分:0)
更通用的方法是在每次迭代时删除最后一项:
value = '12345'
while value:
print value
value = value[:-1]
好处是你可以轻松地用任何长度的任何字符串替换12345
。