首页 > 编程语言 > 详细

python 循环结构

时间:2021-05-04 23:30:13      阅读:27      评论:0      收藏:0      [点我收藏+]

五、循环结构

5.1循环结构的基本概念

5.1.1计算平均分

  ##计算平均分
  a = int(input("请输入第1个成绩"))
  b = int(input("请输入第2个成绩"))
  c = int(input("请输入第3个成绩"))
  d = int(input("请输入第4个成绩"))
  e = int(input("请输入第5个成绩"))
  sum = a+b+c+d+e
  avg = sum/5
  print("平均分:%.2f"%avg)

 

存在的问题:如果学生的有10、100、1k、1w,这个程序代码结构需要变化,重复的代码很多很多,比较繁琐

5.1.2计算平均分(改进)

#使用循环
i = 0
sum = 0
while i < 5:
    a = int(input("请输入第%d个数"%i))
    sum +=a
    i+=1
avg = sum/i
print("平均分:%2f"%avg)

(1改进之后,如果学生有10、100、1k、1w,只需要稍微调整代码即可。对代码的结构基本上没有什么变化

技术分享图片

 

5.2语法

While 条件:

  循环内容

注意:

  如果循环的条件成立,运行“循环内容”

  如果不成立,跳过循环

5.3循环的套路

  (1)考虑清楚循环的初始条件

  (2)循环的结束条件

  (3)重复需要干什么

  (4)如何过渡到下一次循环

5.4循环的案例

5.5.1找出所有水仙花数

#(1)考虑清楚循环的初始条件:n=100
#(2)循环的结束条件n<=999
#(3)重复需要干什么 判断n是否为水仙花数
#(4)如何过渡到下一次循环 n+1

-------------------------------代码------------------------------------
n = 100
while n>=100 and n<1000:
    a = n // 100
    b = n % 100 // 10
    c = n % 10
    if a ** 3 + b ** 3 + c ** 3 == n:
        print("%d是水仙花数" %n)
    n+=1

-----------------------------------------------------

5.4.2 GDP计算

中国2009年中国的GDP总量为49089.82亿美元,增长率为8%,美国的GDP总量为142562.75亿美元,增长率为2%,在两个GDP增长率保持2009年水平不变的情况下,计算到哪一年中国的GDP总量有望超过美国?

-------------------------------代码------------------------------------

year = 2009
gdp_cn = 49089.89
gdp_usa = 142562.75
while gdp_usa>gdp_cn:
    gdp_cn = gdp_cn+gdp_cn*0.08
    gdp_usa = gdp_usa+gdp_usa*0.02
    year=year+1
print(year)

---------------------------------------------------------------------------

5.4.3计算圆周率pi

技术分享图片

 

 

 

Pi = 4/1 - 4/3 + 4/5 -4/7 + 4/9

 

   = 4/1 + (-4/3) + 4/5 + (-4/7)

 

 规律:分子不变,分母1、3、5、7、9

 

每一项越来越小:最后一项的绝对值 < 0.0000001

 

每一项目是正负交替:* -1

 

每一项组成:符号、分子、分母

 

可以使用Math函数

  Math.abs

也可以直接使用abs(运算)

-------------------------------代码------------------------------------

 

Pi=0
i=1
n=1
a=1
b=0
while a>0.00000001:
    Pi = Pi+(4/i)
    a=abs(4/i)
    if  i<0:
        i=(i-2)*(-1)
    else:
        i=(i+2)*(-1)
    n+=1
    b+=1
print(Pi)
print(b)

---------------------------------------------------------------------------

 

5.4.4判断一个数是否是素数

 

输入一个数据,输入是否为素数

 

思路:n ->(2,n-1)

 

能否被整除:看余数

 

 

 

1)考虑清楚循环的初始条件

 

i=2

 

flag= Ture 假设是素数

 

2)循环条件

 

i<= n-1

 

(3)重复需要干什么

 

判断能否把n整除

 

如果被整除flag = false

 

4)如何过渡到下一次循环

 

i+1

 

 -------------------------------代码-----------------------------------

 

#根据flag的值来判断是否是素数

 

n = int(input("请输入一个数值"))
i = 2
falg = True ##假设是素数
while i<=n-1:
    #判断i 能否把 n 整除
    if n%i==0:##ni整除了,不是素数
        falg=False
    i+=1
if  falg:
    print(n,"是素数")
else:
    print(n,"不是素数")

----------------------------------------------------------------------------

 

5.4.5判断一个数是否为 完数

 

 

 

要求:输入一个数,输出:是或者不是

 

整体的思路

 

循环的套路

---------------------------------------------

 

##(一)输入一个数据,转成数值类型 n
num = int(input("请输入一个数"))

##(二)找出所有 因子 之和 sum
a=0 #因子 之和
if num>1:
    for i in range(1,num-1):
        if num%i==0:## i  n 的因子
            a=a+i
else:
    print("你输入的数字小于1")

##(三)判断因子之a  n进行比较
    exit(1)
if a == num:
    print(num,"是完数")
else:
    print(num,"不是完数")

------------------------------------------------------------------

 

5.5 for in 循环

 

For in:把某个集合(字符串。数组)中元数拿出来

 

5.5.1range()函数

 

Range(开始值,结束值,步长)

 

range(1,10)#1-9

 

range(1,10,2)#1,3,5,7,9

 

range()#10-1

 

5.5.2 forin循环的语法

 

For 临时变量 in 集合(字符串、数组、range函数):

 

循环体

---------------------------------------------

 

### for 循环 ###
str = "huadian"
for c in str:
    print(c)
print("------分割线------")

for i in range(10,0,-1):##增强forin循环
    print(i)

 

### for 循环 ###
str = "huadian"
for c in str:
    print(c)
print("------分割线------")

for i in range(10,0,-1):##增强forin循环
    print(i)

----------------------------------------------------------------

 

5.6 for while循环的使用条件

 

特点:

 

1)能用for循环的,肯定能用while;能用while不一定能用for循环

 

2)一瞅过去,循环次数里面知道的用for,不知道次数的用while

 

GDP:while循环

 

计算圆周率Pi:while

 

判断一个数是否是素数:for循环

 

判断一个数是否为完数:for循环

 

while循环的的点

 

1)死循环while True

 

2)循环次数不固定的

5.7 格式化输出

\t:制表符

\n:换行

技术分享图片

 

------------------------------------------------------------------------------

print("我爱你\"中国\"")#我爱你"中国"

print("a\\b")#a\b

print("a\tb")#制表符 tab
print("\n\n")#\n 换行

 ------------------------------------------------------------------------------

5.8案例

5.8.1计算1000以内偶数之和

sum = 0
i=0
while i<=1000:
sum+=i
i+=2
print(sum)

sum() = 0
for i in range(0,1001,2):
sum+=i
print(sum)

5.8.2计算1000以内奇数之和

sum = 0
i = 1
while i<=1000:
sum+=i
i+=2
print(sum)

sum = 0
for i in range(1,1001,2):
sum+=i
print(sum)

5.9循环控制关键字

5.9.1 break

跳出整个循环,循环不走了。

如果循环有嵌套的话,只是跳出这一层循环,对上一层没有影响

n = int(input("输入停止的数值"))
for i in range(1,10):
print(i)
if (i==n):
break

5.9.2 continue

跳过本次循环,对下一次循环没有任何影响

n = int(input("输入停止的数值"))

for i in range(1,10):
if (i == n):
continue
print(i)

5.10循环的嵌套

一个循环中 嵌套 另一个循环

5.11案例

5.11.1找出3~100以内所有的素数

for i in range(3,101):

for j in range (3,i):
if (i % j == 0):
break
else:
print(i,"是素数")

 

 

python 循环结构

原文:https://www.cnblogs.com/lize666/p/14730246.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!