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语句,是编程的重点。

**不说了,循环嵌套真的很重要,多多体会被。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏章鱼的慢慢技术路

《算法图解》第四章笔记与课后练习

19350
来自专栏编程微刊

JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)

39030
来自专栏take time, save time

初级程序员面试不靠谱指南(六)

五.很强很伟大的函数指针     我想看到这个标题中“函数指针”几个字之后,估计有一半人会选择关掉界面,因为我最开始学习C语言的时候这一章我曾无数次跳过,看到书...

352100
来自专栏菩提树下的杨过

as3:Function以及call,apply

Function类在as3中是直接从Object继承下来的,通常开发者定义的每一个function,均可以认为是Function类的一个实例。  如果硬要跟c#...

21290
来自专栏编程

Python函数之一切皆对象

今天我们要讲的是 对象 避免误会,常老师先澄清一下,这里面说的对象指的是object,不是你的lover,也不是你的sweetheart…… 有的小伙伴可能会觉...

20470
来自专栏Java编程

10个有关String的面试问题

下面是面试中最容易问到的有关String的问题。

1.1K20
来自专栏搜云库

《十大经典排序算法》简介

十大经典排序算法 排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的...

20060
来自专栏点滴积累

python通过一个语句分析几个常用函数和概念

前言 过年也没完全闲着,每天用一点点时间学点东西,本文为大家介绍几个python操作的细节,包含all、any、for in等操作,以及介绍我解决问题的思路。 ...

28550
来自专栏猿人谷

常见排序算法分析

一.常见排序算法的实现 1.冒泡排序 冒泡排序是非常容易理解和实现,,以从小到大排序举例: 设数组长度为N。 1.比较相邻的前后二个数据,如果前面数据大于后面...

20780
来自专栏开源优测

Python3冒泡排序

Python3冒泡排序 概述 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的数列,一次比较两个元素,如果他...

37360

扫码关注云+社区

领取腾讯云代金券