第七课来辽~


继续明天没写完的来啦

一、循环结构

1.1 for循环和while循环
  • Python提供了两种循环结构:while循环和for循环
  • while循环一般用于循环次数难以提前确定的情况,也可用于循环次数确定的情况
  • for循环一般用于循环次数可以提前确定的情况,尤其适用于枚举或遍历序列或迭代对象中元素的场合
  • 循环结构之间可以相互嵌套
1.2 语法结构

while循环:

while 条件表达式:
	循环体
[else:                     # 如果循环是因为break结束的,就不执行else中的代码
	else子句代码块]

for循环:

for 取值 in 序列或迭代对象:
	循环体
[else:
    else子句代码块]
1.3 循环结构的优化
  • 在编写循环语句时,应尽量减少循环内部不必要的计算,将与循环变量的无关变量尽可能的提取到循环之外
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)
  • 在循环中应尽量引用局部变量,因为局部变量的查询和访问速度比全局变量略块。另外,在使用模块中的方法时,可以通过将其直接导入来减少查询次数和提高运行速度。
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)

所用的例子大多数都来自老师上课讲的奥和老师发的PPT

二、break和continue语句

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

例1:下面的代码用来计算小于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

例2:输出10以内的所有奇数

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

三、案例

例1:计算1+2+3+…+100 的值。

s=0
for i in range(1,101):
    s = s + i
print('1+2+3+…+100 = ', s)

print('1+2+3+…+100 = ', sum(range(1,101)))

例2:统计成绩中的优、良、中、及格、不及格的人数。

from itertools import group by  #group by分类汇总作用(先对成绩进行排序)
scores=[89,70,49,87,92,84,73,71,78,81,90,37,77,82,81,
        79,80,82,75,90,54,80,70,68,61]
def classify(score):
    if score>=90: return "优"       
    elif score>=80: return "良"       
    elif score>=70: return "中"        
    elif score>=60: return "及格"       
    else: return "不及格"
groups={category:len(tuple(score)) for category,score in groupby(sorted(scores),classify)}
print(groups)

写完啦,还有一篇啦 冲鸭!
在这里插入图片描述

  • 大爱小红书上的图片,太阔爱辽~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值