Python循环

本文深入探讨了循环结构的基本概念,包括while和for循环的使用,以及如何进行循环控制。通过实例展示了计算平均分、GDP增长、圆周率、素数判断和完数检查等应用。此外,还讲解了循环控制的关键字break和continue,并提供了循环嵌套和九九乘法表的示例,进一步强化了循环的理解和应用。
摘要由CSDN通过智能技术生成

循环结构的基本概念

计算平均分

存在的问题:如果学生有10、100、1k,真正的代码需要结构化

循环改进

i=0
sum = 0
while i < 5:
    i+=1
    a = input("请输入第%d个成绩" % i)
    sum += int(a)
avg = sum /(i)
print("平均分:%.2f"%avg)

(1)改进之后,如果学生有10,100、1000,代码结构基本没有变化

语法

While 条件:
循环内容
注意:
如果循环的条件成立,运行循环内容
不成立直接跳过循环

循环的套路

(1)考虑清楚循环的初始条件
(2)循环的结束条件
(3)重复需要干什么
(4)如何过渡到下一次循环

循环的案例

计算GDP

# GDP增长
# 中国49089.82,8%,美国142562.75,2%  2009年
cn = 49089.82
usa = 142562.75
year = 2009
while cn <= usa:
    cn *=1.08
    usa*=1.02
    year+=1
print("%d年"%year)

计算圆周率

# 计算圆周率
import math

i = 1
p = 0.00
k = 1

n = 1
while math.fabs(k) >=0.0000001:
    k=4/i
    if i > 0:
        i=(i+2)*-1
    else:i=(i-2)*-1
    p+=k
    n+=1
print(p)

判断素数

# 判断是否为素数
n = input("输入一个数")
for i in range(1,int(n)):
    for k in range(1,int(n)):
        if i*k==int(n):
            print("%s不是素数"%n)
            exit("吔?")
print("%s是素数"%n)
5-4.4、判断一个数是否为完数
要求:输入一个数,输出:是或者不是
# 判断完数
n = int(input("输入一个数"))
sum = 0
for i in range(1,n-1):
    if n%i == 0 :
        sum +=i
    i+=1
if sum == n:
    print(str(n)+"是完数")
else:
    print("不是完数")
5-5for循环
5-5.1range()函数
range(开始值,结束值,步长)
range(1,10)#1,2,3,4,5,6,7,8,9,10
range(1,10,2)#1,3,5,7,9
range(10,0,-1)#10,9,8,7,6,5,4,3,2,1

for in 循环

for 临时变量 in 集合(字符串、数组,range函数)
循环体

for与while循环的使用选择

特点:
能用for循环的,肯定能用while循环
能用while循环的不一定能用for循环

while循环特点:
(1)死循环 while true
(2)循环次数不固定

案例

计算1000以内偶数之和

print(sum(int(i) for i in range(0,1001,2)))

计算1000以内奇数之和

print(sum(int(i) for i in range(1,1000,2)))

循环控制关键字

break

跳出整个循环,循环不走了
如果循环油嵌套的话,只是跳出这一层循环,对上一层没有影响

continue

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

循环的嵌套

一个循环中嵌套着另外一个循环:

for n in range(3,100):
    k = True
    for i in range(3,n):
        if n % i ==0:
            k = False
            break
    if k:
        print(str(n)+"是素数")
5-11.2、打印出如下格式
for i in range(1,6):
    for j in range(0,i):
        print("*",end="")
    print("")

5-11.3、九九乘法表

九九乘法

for i in range(1,10):
    for k in range(1,i+1):
        print(str(i)+"x"+str(k)+"="+str(i*k),end="\t")
    print()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值