python循环综合运用

循环很重要,计算机很蠢,唯一的优势就是按照指令不停的执行,所以决定在说一下。

break语句,用在循环体中,迫使循环立即终止,即跳出所在循环体,继续执行循环体后面的语句。

sum=0
i=1 while i: sum+=i i+=1 if i>=101: break print(" the 1+2+..100={}".format(sum))
 the 1+2+..100=5050

break 经常和if语句使用,满足条件跳出循环体,但是据大佬说,循环中不建议使用break语句,跳来跳出逻辑容易出现问题。就像被抛弃的goto

def maxys(m,n): r=m%n while r!=0: m=n n=r r=m%n return n
>>> maxys(33,11) 11 >>> maxys(6,5)

continue语句,与break语句不同,在循环中执行continue语句,并不会退出循环语句,而是立即结束本次循环,重新开始下一次循环

def printthreenum(n): for i in range(1,n+1): if i%3==0: continue print(" %d"%(i),end=" ")
>>> printthreenum(20) 1 2 4 5 7 8 10 11 13 14 16 17 19 20

循环嵌套,基本复杂点的code,都涉及到嵌套问题。

公约数的因子,求最大公约数,暴力法解决

def maxys(m,n): i=2 max=1 while i<=m and i<=n: while m%i==0 and n%i==0: max*=i m=m//i n=n//i i+=1 return max 
>>> maxys(8,2) 2 >>> maxys(13,2) 1

采用减治法的插入排序,算法

def sort(arr): i=0 while i<len(arr)-1: j=i+1 temp=arr[j] flag=0 while j>0: if arr[j-1]>temp: arr[j]=arr[j-1] j-=1 flag=1 else: break if flag: arr[j]=temp i+=1 return arr
arr=[66,1,-8,22,88] sort(arr) [-8, 1,22, 33, 66]

选择排序法:每次选择最小元素放在合适的位置。

def xzsort(arr): i=0 while i<len(arr)-1: min=arr[i] j=i+1 #选择[i,len(list)-1]中最小的元素 while j<len(arr): if min>arr[j]: min=arr[j] j+=1 id=arr.index(min) #记录要交换的元素下标 #交换  if min!=arr[i]: #temp=arr[i] #arr[i]=min #arr[id]=temp arr[i],arr[id]=arr[id],arr[i] i=i+1 return arr
arr=[66,-5,99,56,4,668,68] xzsort(arr) [-5, 4, 56, 66, 68, 99, 668]

我是c系,对python的思维还是欠缺,选择排序,出现了不少小问题,无论是循环缩进,还是python的list的下标获取,以及交换。。。

乘法口诀表

for i in range(1,10): for j in range(1,i+1): print("{}*{}={}".format(j,i,i*j),end=" ") print()
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=8

不说了,时间有限,循环嵌套,外加if语句,是编程的重点。

不说了,循环嵌套真的很重要,多多体会了。厦门叉车出租服务公司

猜你喜欢

转载自www.cnblogs.com/xyou/p/8949475.html
今日推荐