循环进阶:range
for循环可以循环对象中的元素。
但也可以利用range函数生成数字的集合作为对象。
range函数生成整数序列,由参数决定序列的大小和范围。最多由三个参数。
语法:
range(起始值,终止值,间隔)
range(n)
只有一个参数时,默认起始值为0,n作为终止值,间隔为1。
但要注意,在range函数中,终止值是不包括在内的。
例如:range(4)得到的是0,1,2,3
range(2)得到0,1
这里也可以发现默认起始值为0时,range(n)有n个值。在需要循环n次,时,就可以用for i in range(n)。
range(m,n)
有两个参数,第一个为起始值,第二个为终止值。默认间隔(步长)为1。
如:range(2,4)得到2,3。(不包括4)
range(-4,3)得到-4,-3,-2,-1,0,1,2。(不包括3)
range(m,n,r)
有三个参数时,可以设置间隔(步长)。
当间隔为正数时,表示从小到大,但注意此时必须m<n
如:range(2,9,2)间隔为2,得到2,4,6,8。(不包括9)
当间隔为负数时,表示从大到小,但注意此时必须m>n
如:range(6,2,-1)得到6,5,4,3(不包括2)
自测练习
第一行输入一个整数
第2-3行设定初始值为0
第5行从1循环到输入的那个整数
第6-9行使循环的内容,如果这个数是2的倍数但不是3的倍数,加到sum中,否则,exra+1。
第10-11行输出
所以这段代码就是统计1-输入的哪个整数(不包括这个整数)中,是2的倍数但不是3的倍数的所有数字之和。并且统计不满足这个条件的有多少个数字。
(a)输入10,1-9中满足条件的有2,4,8。结果为14
(b)输入11,1-10中满足条件的有2,4,8,10。不满足的个数有6个,结果为6
(c)iv
(d)i