3.4 循环:for
for语句语法
for i in range(m,n): 语句 for需要一个数据容器,然后从里面逐个取数据,而range是一个函数,它将制造一个从m到n(包括m但不包括n)的序列,而i将遍历这个序列。
下面的代码将打印1到9,注意并不包括10
for i in range(1,10): print(i)range还可以只有一个参数,下面这段代码将打印0到9:
for i in range(10): print(i)注意,是从0到9,10不包括在内。
range还有第三个参数,表示步长,
下面这段代码将打印1到100的奇数,因为步长是2,从1开始到10就全是奇数了
for i in range(1,10,2): print(i)思考一下打印30以内的偶数该怎么写?
步长还可以是负数,下面将打印10、9、8、……3、2、1
for i in range(10,0,-1): print(i)for的格式使得写代码的人,不需要写循环变量的递增或递减,不容易写出死循环。
for语句本质上和while语句一样,但for循环一般用来遍历一个序列,字符串等,不能把一个条件直接作为for循环的判断条件,例如a>b这种。
练习题
-
下面的代码试图去打印1到10,如果有错误,指出来:1. (2分) [选择]A.
B. 打印正确
C. 语法错误
D. 语法正确,不是死循环但也不能正确打印
E. 死循环<code><div class='codeNewLine'>i=1</div><div class='codeNewLine'><span class='keyword'>for</span> i <= 10:</div><div class='codeNewLine'> <span class='pyFunction'>print</span>(i)</div><div class='codeNewLine'> i=i+1</div></code>2. (2分) [选择]A.
B. 打印正确
C. 语法错误
D. 语法正确,不是死循环但也不能正确打印
E. 死循环<code><div class='codeNewLine'><span class='keyword'>for</span> i <span class='keyword'>in</span> i <=10:</div><div class='codeNewLine'> <span class='pyFunction'>print</span>(i)</div><div class='codeNewLine'> i+=1</div></code>3. (2分) [选择]A.
B. 打印正确
C. 语法错误
D. 语法正确,不是死循环但也不能正确打印
E. 死循环<code><div class='codeNewLine'><span class='keyword'>for</span> i <span class='keyword'>in</span> <span class='pyFunction'>range</span>(10):</div><div class='codeNewLine'> <span class='pyFunction'>print</span>(i)</div></code>4. (2分) [选择]A.
B. 打印正确
C. 语法错误
D. 语法正确,不是死循环但也不能正确打印
E. 死循环<code><div class='codeNewLine'><span class='keyword'>for</span> i <span class='keyword'>in</span> <span class='pyFunction'>range</span>(1,11):</div><div class='codeNewLine'> <span class='pyFunction'>print</span>(i)</div></code>5. (2分) [选择]A.
B. 打印正确
C. 语法错误
D. 语法正确,不是死循环但也不能正确打印
E. 死循环<code><div class='codeNewLine'><span class='keyword'>for</span> i <span class='keyword'>in</span> <span class='pyFunction'>range</span>(0,10):</div><div class='codeNewLine'> <span class='pyFunction'>print</span>(i)</div></code> -
编程题1. (2分) [填空]上面的代码会打印2.下面的代码用for循环打印1到16,补齐代码使功能完善 (2分) [编程填空]
<code><div class='codeNewLine'><span class='keyword'>for</span> :</div><div class='codeNewLine'> <span class='pyFunction'>print</span>(n)</div></code>3.打印1到10,然后10到1,10只出现一次。 (10分) [编程]提示:使用两个for循环。4.(*)输入一个整数k,然后打印“ok”,打印的次数就是整数k的大小 (10分) [编程]提示:输入的整数k作为循环变量的上限5.打印100(包括100)以内的偶数。 (10分) [编程]使用range的第三个参数设置步长为26.打印100以内7的倍数。 (10分) [编程]7.打印100(包括100)以内的不能被3整除的整数。 (10分) [编程]8.(***)输入一个整数n,然后打印出它所有的因子 (10分) [编程]9.求1+2+3+…+100的值,并打印出最终的和 (10分) [编程]10.循环5次,每次循环输入一个整数,把这个数字赋给整型变量k,最后打印总和和平均值(两个值打印各占一行,先打印总和再打印平均值)。 (10分) [编程]提示:把输入语句放到循环内部。11.计算1*2+3*4+5*6+…+99*100并打印结果 (10分) [编程]提示:i每次和i+1相乘,i增加的步长是2