此部分作为前面循环博客的内容补充
1 语法:
range(start,end,step=1)
range(start,end)
range(end)
其中:
start 起始值(包含)
end 终值(不包含)
step 步长(不能为0)
range(start,end,step=1) 不包含end的值
range(start,end) 缺省step值为1
range(end) 缺省start值为0,step值为1
2 举例:
list(range(3,11,2))
[3,5,7,9]
list(range(3,9))
[3,4,5,6,7,8]
list(range(5))
[0,1,2,3,4]
3 for循环:
语法:
for iter_var in interable_object:
suite_to_repeat
其中,interable_object包括:
字符串 列表 元组 字典 文件等
举例:
s='ABC'
#元素迭代
for c in s:
print(c,end=' ')
#索引迭代
for i in range(len(s)):
print(s[i],end=' ')
判断是可迭代器或者可迭代对象:
1)可迭代对象包含迭代器;
2)如果一个对象拥有__iter__方法,其是可迭代对象;如果一个对象拥有next方法,其是迭代器,迭代器用于支持for循环、列表推导、字典推导和集合推导等操作。
from collections.abc import Iterator,Iterable
isinstance(range(10),Iterator)
False
isinstance(iter(range(10)),Iterator)
True
isinstance(range(10),Iterable)
True
4 举例:
辗转相除法:
x = eval(input('x = '))
y = eval(input('y = '))
if x < y:
x,y = y,x
while x % y != 0:
r = x % y
x = y
y = r
print('result = ',y)
判断一个数是否为素数:
#while语句
from math import sqrt
j = 2
while j <= 100:
i = 2
k = int(sqrt(j))
while i <= k:
if j % i == 0:break
i = i+1
if i > k:
print(j,end = ' ')
j += 1
#for语句
from math import sqrt
for i in range(2,101):
flag = 1
k = int(sqrt(i))
for j in range(2,k+1):
if i % j = 0:
flag = 0
break
if(flag):
print(i,end = ' ')
循环中的else语句:
循环中的else
如果循环代码从break处终止,则跳出循环,不执行else中的代码;
正常结束循环,则执行else中代码。
可利用else语句改写判断素数的代码。
for i in range(1, 10, 2):
if i % 5 == 0:
print("ABC")
break
else:
print(i)
#执行结果为:ABC
参考资料:
https://www.icourse163.org/learn/NJU-1001571005?tid=1463102441#/learn/content?type=detail&id=1240380146&cid=1261816355&replay=true 慕课课程:用python玩转数据