滴滴滴~~~循环语句

本文介绍了Python中的for循环和while循环,强调了for循环在已知循环次数时的优势。讨论了循环表达式及优化技巧,如减少不必要的计算和利用局部变量提升效率。还讲解了break和continue语句的使用,并通过实例展示了如何找到小于100的最大素数。最后,文章通过例题展示了循环控制在实际问题解决中的应用。
摘要由CSDN通过智能技术生成


在这里插入图片描述

一、for循环和while循环

  • Python提供了两种基本的循环结构语句——while和for。
  • while循环一般用于循环次数难以提前确定的情况,也可以用于循环次数确定的情况。
  • for循环一般用于循环次数可以提前确定的情况,尤其是用于枚举序列或迭代对象中的元素。
  • 一般优先考虑使用for循环。
  • 相同或不同的循环结构之间都可以互相嵌套,实现更为复杂的逻辑。
  • for循环和while循环都可以带else。

二、表达式

1.while表达式

while条件表达式
循环体
else:
子句代码块

2.for表达式

for 取值 in 序列或迭代对象:
循环体
else:
else子句代码块

三、优化

  • 为了优化程序以获得更高的效率和运行速度,在编写循环语句时,应尽量减少循环内部不必要的计算,将与循环变量无关的代码尽可能地提取到循环之外。对于使用多重循环嵌套的情况,应尽量减少内层循环中不必要的计算,尽可能地向外提。

例题1

优化前:

>>> digits = (1, 2, 3, 4)
>>> for i in range(1000):
    >>> result = []
    >>> for i in digits:
        >>> for j in digits:
            >>> for k in digits:
                >>> result.append(i*100+j*10+k)

优化后:

 >>> for i in range(1000):
   >>> result = []
   >>> for i in digits:
       >>> i = i*100
       >>> for j in digits:
            >>> j = j*10
            >>> for k in digits:
                >>> result.append(i+j+k)
  • 在循环中应尽量引用局部变量,因为局部变量的查询和访问速度比全局变量略块。另外,在使用模块中的方法时,可以通过将其直接导入来减少查询次数和提高运行速度。

例题2

import time
import math

start = time.time()                    #获取当前时间
for i in range(10000000):
    math.sin(i)
print('Time Used:', time.time()-start) #输出所用时间

loc_sin = math.sin
start = time.time()
for i in range(10000000):
    loc_sin(i)
print('Time Used:', time.time()-start)

三、break和continue语句

(1) 语句在while循环和for循环中都可以使用,一般与选择结构结合使用,一旦break语句被执行,将使得整个循环提前结束。
(2) continue语句的作用是终止当前循环,并忽略continue之后的语句,然后回到循环的顶端,提前进入下一次循环。
(3) 除非break语句让代码更简单或更清晰,否则不要轻易使用。

例题3:计算小于100的最大素数,注意break语句和else子句的用法。

>>> for n in range(100, 1, -1):
    for i in range(2, n):
		if n%i == 0:
			break
    else:
		print(n)
		break	
97

例题4:计算小于100的所有素数

>>> for n in range(100, 1, -1):
    for i in range(2, n):
		if n%i == 0:
		    break
    else:
		print(n, end=' ')

97 89 83 79 73 71 67 61 59 53 47 43 41 37 31 29 23 19 17 13 11 7 5 3 2

例题5:永不结束的死循环

>>> i=0
>>> while i<10:
	  if i%2==0:
		  continue
	  print(i)
	  i+=1

解决办法:

>>> for i in range(10):
	  if i%2==0:
		  continue
	  print(i, end=' ')
1 3 5 7 9

在这里插入图片描述
今日份学习结束啦~~~下面就讲讲例题了
吼吼吼!!!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值