python小咖 傻傻的for循环

验证一下,在for i in range(len(a))循环中用len(a)所取得的终止数,一旦运行,则不再因a的长度变化而改变.一直循环到原终值.
# a=[1,2,3,4,5]
a=['a','b','c','d','e']
a=a+a[::-1]# a=a+list(range(len(a)))

print('\n'+str(a)+'\n\n列表元素个数是:'+str(len(a))+'\n'+'#'*50)

for i in range(len(a)):
	if i==0:     #用以控制输出#和'位号',元素,只需输出一次
		ii=len(a)  #变量ii用在最后面控制i的输出.
		del a[0:3];   #删除3个元素,目的是改变a的长度.由前面if i==0条件控制,只删一次.

		print('\n'+str(a)+'\n\n此时列表元素个数是:'+str(len(a))+'\n'+'#'*50+'\n\t位号\t\t元素')

	if a!=[]:    #避免i循环没有结束,而a因pop不断移除成为空列表时,再运行pop()而报错.
		print('\t'+str(i),'\t\t'+a.pop())   #输出列表元素位号及元素
		if len(a)==0:
			print('*'*40)
	# while a==[]:
	# 	print(i+1)
	# 	break
	if a==[] and i+1<ii:      #用以控制i输出,既不要输出已经输出过的6,也不要输出超过i的最值范围9
		print(i+1)
print('#'*50)

 运行显示:

['a', 'b', 'c', 'd', 'e', 'e', 'd', 'c', 'b', 'a']

列表元素个数是:10
##################################################

['d', 'e', 'e', 'd', 'c', 'b', 'a']

此时列表元素个数是:7
##################################################
	位号		元素
	0 		a
	1 		b
	2 		c
	3 		d
	4 		e
	5 		e
	6 		d
****************************************
7
8
9
##################################################
[Finished in 0.1s]

列表循环0-6已完成,但 for循环还在进行到底.

可用清华毕神的可视化在线调试,:http://pythontutor.makerbean.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值