Py学习  »  Python

Python-While、For语句应用实例

Python初级入门到精通 • 1 周前 • 67 次点击  

应用实例一:


求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中的一个元素,将该元素值用于循环语句。



关注公众号,每天领红包


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/198935