应用实例一:
求1~100之间,能被7整除,但不能同时被5整除的所有整数。
>>>
i=1
print'1~100之间,能被7整除,但不能同时被五整除的所有整数是:'
while i<=100
if i % 7==0 and i % 5 != 0:
print i,'\t',
i+=1
程序运行结果:
1~100之间,能被7整除,但不能同时被5整除的所有整数是:
7 14 21 28 42 49 56 63 77 84 91 98
程序说明:
1) 使用if语句的表达式中使用%(求余)判断是否被7(或5)整除,7或5属于并列条件,用and连接.
2) 使用输出语句print i,'\t',中最后的逗号作用是输出结束后不换行.
应用实例二:
求所有"水仙花数"(水仙花数:一个三位的十进制数,其各位数字的立方和等于该数本身)
>>>
i=100
print'所有水仙花数是:'
while i<=999:
bai=i/100
shi=(i % 100)/10
ge=i %10
if bai**3+shi**3+ge**3==i:
print i,'\t',
i+=1
程序运行结果:
所有水仙花数是:
153,370,371,407
#153=1**3+5**3+3**3=1+125+27,370=3**3+7**3+0**3,371=3**3+7**3+1**3,407=4**3+0**3+7**3
end
Python提供的另一个循环机制是for语句,它提供了Python中最强大的循环结构。Python中的for语句与传统的for语句不太一样,它接受序列或迭代器作为其参数,每次循环取出其中的一个元素。
for语句的一般的语法格式:
for 循环索引值 in 序列
循环体
for语句的执行过程是:每次循环,判断循环索引值是否还在序列中,如果在,取出该值提供给循环体内的语句使用,如果不在,则结束循环。
for语句常用场景:序列类型、计数循环。本篇主要讲for语句用于序列类型
列表、元组、字符串都是序列,序列类型具有相同的访问模式:它的每一个元素可以通过指定一个偏移量的方式得到,而多个元素可以通过切片操作的方式得到。
序列操作可以通过很多内置函数来实现,如:len()、max()、min()、sum()、sorted()、reversed()等,以上内置函数的实现 都离不开循环结构。
例:
通过序列索引迭代
【问题】已知一组数据70,80,90,100,110,120,130,求该组数据的平均数
>>>
fenshu=[70,80,90,100,110,120,130]
sum=0
print'所有的分数是:'
for i in range(len(fenshu)):
print fenshu[i],
sum+=fenshu[i]
aver=sum/len(fenshu)
print'aver=',aver
程序运行结果:
所有的分数是:
70,80,90,100,110,120,130
aver=100
程序说明:
for循环的表达式中使用内置函数len()获得fenshu序列的长度,然后又使用range()函数创建了要迭代的序列[0,1,2,3,4,5,6,7],变量i对该列表进行迭代,每循环一次取出列表中的一项作为列表元素的下标。
range()函数用法:
1、range(start,end,step),产生一个包含所有等差级数K的列表,K的范围是start<=K<=end,K每次递增step,step不可以为0,否则发生错误。
2、range(end),此时start默认为0,step默认为1,range()返回从0到end的数列。
3、rang(start,end),此时step默认为1,range()返回从start到end的数列
通过序列项迭代:
【问题】已知一组数据70,80,90,100,110,120,130,求该组数据的最大数和最小数
>>>
fenshu=[70,80,90,100,110,120,130]
maxfenshu=fenshu[0]
minfenshu=fenshu[0]
print'所有的分数是:’
for i in fenshu:
print(i),
if i > maxfenshu:
maxfenshu=i
if i< minfenshu:
minfenshu=i
print'\n'
print'最高分=',maxfenshu
print'最低分=',minfenshu
程序运行结果:
所有的分数是70,80,90,100,110,120,130
最高分=130
最低分=70
程序说明:
for循环在列表fenshu中进行迭代,每次循环,变量i取出列表fenshu中的一个元素,将该元素值用于循环语句。
关注公众号,每天领红包