python学习--循环结构

本文详细介绍了Python中的循环结构,包括for-in循环、while循环及其应用,如九九乘法表和素数判断。讲解了break和continue的用法,并探讨了for-else在特定情况下的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

循环结构:for,in,while,break,continue,else

循环的类型:for-in循环,while循环,嵌套循环,for-else循环(不常用),while-else循环(鲜少使用)

一、for-in循环

案例:计算1-100的和

'''
for 变量(不一定是一个变量,大部分场景下是一个) in 容器:
代码块

执行顺序:
for-in循环执行次数取决于容器中元素个数,每循环一次,
按照容器元素的顺序从头到尾依次获取一个元素给变量
然后代码块执行,代码块执行完进入下一次循环,每次循环执行完再回到for-in,
判断是否还有介意获取的元素

'''
total = 0
for i in range(1, 100):
# print(i)
total += i
print(total)

二、range方法

  • 作用:可以生成组成等差数列的整数

  • 语法: range(start,end,step)

  • 1.range是左闭右开区间;[start,end)

  • 2.start可以省略不写,默认为0

  • 3.step默认不写,默认为1

  • 4.下一次获取的数字=当前获取的数字+step

  • 5. step是整数,不能为0,step如果是>=1,start需要小于end,step<=-1,start需要大于end

  • 6.如果写了step,start坚决不能省略

    for i in range(1,10,2):  
    #规则4  
    for i in range(1,10):  
    #规则1、3  
    for i in range(100,3):  
    #如果100为start,3为end,不符合规则6  
    #如果100为start,3为end,不符合规则5  
    for i in range(5):  
      #规则2  
       print(i)  
    

输出-2,-4,-6,-8

for i in range(-2,-9,-2):  
     print(i) 

练习:找到1-1000所有的偶数求和

a = 0  
for i in range(1001):  
    if i % 2 == 0:  
        a += i  
print(a)  
b = 0  
c = 0  
while b <= 1000:  
    c += b  
    b += 2  
print(c)  
  
print(sum([i * 2 for i in range(501)]))  
  
print(sum([i for i in range(0, 1001, 2)]))  
e = [i % 2 == 0 for i in range(1001)]  
print(sum([i for i, j in enumerate(e) if j]))  

for-in循环适合循环确定的循环

while循环

while循环一般用来不确定循环次数的问题中

from random import randint 

random:随机模块

randint:从指定范围(闭区间)中随机返回一个整数

number = randint(1,100)  
print(number)  
while i:  
    x=int(input('输入:'))  
    if x>number:  
        print('猜大了')  
    elif x<number:  
        print('猜小了')  
    else:  
        print('猜中了')  
        i=0

九九乘法表

外层循环控制行

for row in range(1,10):  
    # 内层循环控制每行公式列数  
    for col in range(1,row+1):  
        result=f'{row}*{col}={row*col:>2}'  
        print(result,end=' ')  
    # 无论任何时候,print中end永久生效  
    print()

break:break一旦被触发,立刻结束当前所在的循环

continue:continue一旦被触发,立即结束掉所在循环的本次循环进入下一次循环

break和continue只能用于循环内

如果for循环中的变量没有用到,可以用到下划线代替

  ptrhon
for _ in range(3):  
    for i in range(1,6):        
	    if i==4:            
		    print('=====')            
		    # break            
		    continue            
			print('****')        
		else:            
			print(i)'''  
# 一次循环结束的标志位该循环内部代码块测地执行完  
  
# 练习:使用while循环计算1-100的阶乘  
i = 100  
k = 1  
while i > 0:  
    k *= i  
    i -= 1  
print(k)  
  
a = 0  
c = []  
while a < 100:  
    a += 1  
    b = 1  
    d = a  
    while d > 0:  
        b *= d  
        d -= 1  
    c.append(b)  
print(c)  
  
'''  
语法:  
while 条件:  
    代码块  
执行流程:  
while每次执行,先判断条件是否为真,条件为真,代码块执行;代码块执行完,再回到while继续  
判断条件是否仍然为真,如果为真,继续,反之结束循环  
'''

素数:判断100以内哪些数字是素数

for num in range(1, 100):  
    if num == 2:  
        print('2是素数')  
    elif num == 1:  
        continue  
    else:  
        # 排除1和本身,检查其他数字是否有因子存在  
        for i in range(2, num):  
            if num % i == 0:  
                break  
        else:  
            print(f'{num}是素数')  

for-else:

  • for循环正常循环结束,触发else语句

  • for循环非正常结束,else语句不会触发

  • for-else应用场景

  • 必须将所有可能性考虑到以后才能下结论时可以使用for-else语句

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值