Python语言循环结构
小标 2018-12-10 来源 : 阅读 1906 评论 0

摘要:本文主要向大家介绍了Python语言循环结构,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

本文主要向大家介绍了Python语言循环结构,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

while循环
while 条件表达式:
    语句块
while语句的条件表达式是循环条件,常用的是关系表达式或者逻辑表达式,语句块是循环执行的语句。
n=1
p=1
num=int(input("input n="))
while n<num:
    p*=n
    n=n+1
print("{0}的阶乘是{1}".format(num,p))
input n=6
6的阶乘是120
在python中while语句,可以有else语句,else语句会在循环正常执行完的情况下(不管是否执行循环体),但是通过break跳出循环体时,else不会被执行。
num=int(input("put into number="))
qnum=num
count=0
while (num!=0):
    if(num==68):
        break
    count+=1
    num//=10
else:
    if count!=0:
        print("while循环执行完成")
    else:
        print("num输入为0")
if num==68:
    print("break 语句执行,没有执行else语句")
if num==0:
    count=1
    print("%d是%d位数字"%(qnum,count))
if num==68:
    count=2
    print("%d是%d位数字"%(qnum,count))
put into number=888
while循环执行完成
888是3位数字

put into number=0
num输入为0
0是1位数字

put into number=68
break 语句执行,没有执行else语句
68是2位数字
while循环合并2个有序的数组,这是归并排序的重点
def sort(arr1,arr2):
    i,j,k=0,0,0
    arr3=[]
    while(i<len(arr1) and j<len(arr2)):
        if arr1[i]<arr2[j]:
            arr3.insert(k,arr1[i])
            i+=1
            k+=1
        else:
            arr3.insert(k,arr2[j])
            j+=1
            k+=1

    while i<len(arr1):
        arr3.insert(k,arr1[i])
        i+=1
        k+=1
    while j<len(arr2):
        arr3.insert(k,arr2[j])
        j=j+1
        k=k+1
    for  elem in arr3:
        print(elem,end=" ")

arr1=[1,3,5,7]
arr2=[2,4,6,8,78]
sort(arr1,arr2)
1 2 3 4 5 6 7 8 78 
for循环
for语句首行定义了赋值目标和遍历的序列对象,后面需要重复执行的语句块,语句块语句需要向右缩进,且缩进量要一致。
for 赋值目标 in 序列对象:
    语句块
for通过遍历任意序列的元素进行建立循环,针对序列的每一个元素执行一次循环体,列表,字符串,元组都是序列,可以利用它们建立循环。
列表
char=['a','b','c']
for ch in char:
    print(" ",ch,end=" ")
  a   b   c 
字符串
char="abcdefgh"
for ch in char:
    print(ch,end="-")
a-b-c-d-e-f-g-h-
元组
char=(1,2,3,4)
for ch in char:
    print(ch,end="-")
1-2-3-4-
for循环的循环次数显然就是序列中的元素的个数,即序列的长度,可以利用序列的长度来控制循环的次数,这时关注的不是序列元素的值,而是元素的个数。
计算输入的元素和,与range无关。
sum=0
for k in range(6):
    num=int(input("put into numbers:"))
    sum+=num
print("sum=",sum)
结果是:
put into numbers:1
put into numbers:2
put into numbers:3
put into numbers:4
put into numbers:5
put into numbers:6
sum= 21
计算1+.....6的和,和序列的元素有关。
sum=0
for i in range(7):
    sum+=i;
print("the sum=",sum)
the sum= 21
for语句也支持一个可以选择的else块,它 的功能就像在while循环中一样,如果没有碰到break语句,就会执行else块,也就是序列所有的元素都被访问过了之后,执行else块。
string=input("input char:")
for ch in string:
    if ch=='e':
        break
else:
    print(" bo break stance")
if ch=='e':
    print("不会执行break语句")
else:
    print("会执行break语句")
input char:abcd
 bo break stance
会执行break语句
input char:abcde
不会执行break语句
range函数,经常用在for循环中,看看其功能吧。
>>> list(range(6))
[0, 1, 2, 3, 4, 5]
>>> list(range(1,6))
[1, 2, 3, 4, 5]
for循环的运用。
二分查找,使用for循环。
def seek(targe=66,arr=[11,22,33,68],left=0,right=3):
    while left<right:
         mid=(left+right)//2
         i=arr[mid]
         if i==targe:
             return mid+1
         elif i>targe:
             right=mid-1
             #seek(targe,arr,left,right)
         else:
            left=mid+1
            #seek(targe,arr,left,right)
    return -1            
for循环,在循序查找的使用。
def seekxunxu(targe=66,arr=[11,22,33,68],left=0,right=3):
    count=0
    for i in arr:
        count+=1
        if i==targe:
            return count
    if count==len(arr):
        return -1
for是计数循环,while是条件循环,python中,for循环有点诡异,for循环和while可以转换。    

本文由职坐标整理并发布,希望对同学们学习Python有所帮助,更多内容请关注职坐标编程语言Python频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 1
看完这篇文章有何感觉?已经有2人表态,50%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程