##计算平均分
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,这个程序代码结构需要变化,重复的代码很多很多,比较繁琐
#使用循环
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,只需要稍微调整代码即可。对代码的结构基本上没有什么变化
While 条件:
循环内容
注意:
如果循环的条件成立,运行“循环内容”
如果不成立,跳过循环
(1)考虑清楚循环的初始条件
(2)循环的结束条件
(3)重复需要干什么
(4)如何过渡到下一次循环
#(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
-----------------------------------------------------
中国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:##n被i整除了,不是素数
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,"不是完数")
------------------------------------------------------------------
For in:把某个集合(字符串。数组)中元数拿出来
Range(开始值,结束值,步长)
range(1,10)#1-9
range(1,10,2)#1,3,5,7,9
range()#10-1
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)
----------------------------------------------------------------
特点:
(1)能用for循环的,肯定能用while;能用while不一定能用for循环
(2)一瞅过去,循环次数里面知道的用for,不知道次数的用while
GDP:while循环
计算圆周率Pi:while
判断一个数是否是素数:for循环
判断一个数是否为完数:for循环
while循环的的点
(1)死循环while True
(2)循环次数不固定的
\t:制表符
\n:换行
------------------------------------------------------------------------------
print("我爱你\"中国\"")#我爱你"中国"
print("a\\b")#a\b
print("a\tb")#制表符 tab
print("我\n爱\n你")#\n 换行
------------------------------------------------------------------------------
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)
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)
跳出整个循环,循环不走了。
如果循环有嵌套的话,只是跳出这一层循环,对上一层没有影响
n = int(input("输入停止的数值"))
for i in range(1,10):
print(i)
if (i==n):
break
跳过本次循环,对下一次循环没有任何影响
n = int(input("输入停止的数值"))
for i in range(1,10):
if (i == n):
continue
print(i)
一个循环中 嵌套 着 另一个循环
for i in range(3,101):
for j in range (3,i):
if (i % j == 0):
break
else:
print(i,"是素数")
原文:https://www.cnblogs.com/lize666/p/14730246.html