for循环遍历
for i in xxx:
代码块
i:是一个变量,是把xxx里面的某一个值取出来存到i里面
xxx:可以是序列(序列包括:列表、元祖、字符串),还可以是迭代对象
>>> for i in "abc": ... print(i) ... a b c
#调试技巧 例题:求列表[1,2,3,4]的和 打印出每一步的结果
>>> result =0
>>> for i in [1,2,3,4]:
... print("i的取值",i)
... result+=i
... print("计算结果",result)
...
i的取值 1
计算结果 1
i的取值 2
计算结果 3
i的取值 3
计算结果 6
i的取值 4
计算结果 10
>>> print(result)
10
#通过索引循环遍历
>>> fruits = [‘banana‘,‘apple‘,‘mango‘]
>>> for index in range(len(fruits)):
... print(fruits[index])
...
banana
apple
mango
>>>
以上实例我们使用了内置函数 len() 和 range(),函数 len() 返回列表的长度,即元素的个数。 range返回一个序列的数。
while循环遍历
while True:
代码块
True:条件,只要条件是True 代码块会永远执行
死循环应用场景:
1 服务器端:一般死循环
2 你也不知道循环多少次的时候就要用到死循环
>>> a = 0 >>> while a<=5: ... print(a) ... a+=1 #相当于a=a+1 ... 0 1 2 3 4 5
#练习题:
用死循环实现:
用户输入数字,判断是奇数还是偶数
当输入的数字是100的时候,结束第循环
>>> while 1:
... user_num =int(input("请输入一个数字:"))
... if user_num%2==0:
... print("%s 是偶数" %user_num) #模板字符串
... else:
... print("%s 是奇数" %user_num)
... if user_num==100:
... break
...
请输入一个数字:2
2 是偶数
请输入一个数字:3
3 是奇数
请输入一个数字:4
4 是偶数
请输入一个数字:5
5 是奇数
请输入一个数字:6
6 是偶数
请输入一个数字:100
100 是偶数
>>>
break和continue
break:彻底结束循环
continue:跳出本次循环,执行下一次
对比示例:
>>> for i in range(10): ... if i==3: ... break #整个for循环结束,>=3的数字不在打印 ... print(i) ... 0 1 2 >>> for i in range(10): ... if i==3: ... continue #跳过i==3这次循环不打印,for循环继续后面的循环 ... print(i) ... 0 1 2 4 5 6 7 8 9 >>>
for/while...else...搭配的诡异用法:
#没有break
>>> for i in range(5): ... if i == 3: ... continue ... print(i) ... else: #else语句被执行 ... print("no break") ... 0 1 2 4 no break
#有break
>>> for i in range(5):
... if i == 3:
... break
... print(i)
... else: #else没有被执行
... print("no break")
...
0
1
2
>>>
总结:只要循环体内部没有执行break就会执行else部分的代码
例: 题目:[1,2,3,4,5,7]你输入一个数字,判断一下是否在这个list中,执行3次这个逻辑。 算法: 1、循环3次 (for) for i in range(3) 2、输入一个数字(input),存到某个变量里 user_num =int(input("请输入一个数字:")) 3、判断这个数字在不在[1,2,3,4,5,7] desc_list =[1,2,3,4,5,7] 4、如果在,打印一下;不再也打印一下。 if user_num in desc_list: print("%s 在" %user_num) else: print("%s 不在" %user_num ) 实现: >>> desc_list =[1,2,3,4,5,7] >>> for i in range(3): ... user_num =int(input("请输入一个数字:")) ... if user_num in desc_list: ... print("%s 在" %user_num)#模板字符串表达方式 "%s a number" %1 ‘1 a number‘ ... else: ... print("%s 不在" %user_num) ... 请输入一个数字:5 5 在 请输入一个数字:2 2 在 请输入一个数字:1 1 在 >>>