• 第四讲:控制流:条件语句


    控制流:条件语句

    python条件语句是通过一条或多条语句的执行结果(True或False)来决定执行的代码块

    一、if

    if语句用于控制程序的执行,基本形式为:

    if 判断条件:

      执行语句……

    elif 判断条件:

      执行语句……

    else:

      执行语句……

    注意:elif语句可以有多个或没有;else后面不能加条件判断语句,如果要加用elif。

    练习1:输入学生的分数,当分数大于等于60时,打印及格,当小于60时,打印不及格,不在[0,100]区间,打印输入有误
    # encoding=utf-8
    score=int(raw_input(u'请输入您的分数:'))   #raw_input的内容是字符串,如果需要做数字比较,需要强制转换int类型再做计算
    if score not in range(0,101):   #先排除不在[0,100]区间的数
        print u'您输入的分数有误,请重新输入:'
    elif score>=60:
        print u'恭喜您,您的分数及格,分数是',score
    else:
        print u'您的分数不及格,分数是',score

    练习2:输入三个数字,判断是否能构成三角形,如果能构成判断是否是等腰或等边三角形

    
    
    try:
        A=input(u'输入数字A:')
        B=input(u'输入数字B:')
        C=input(u'输入数字C:')
        if A>0 and B>0 and C>0:
            if A+B>C or A+C>B or B+C>A:
                if A==B or A==C or B==C:
                    print u'等腰三角形'
                elif A==B==C:
                    print u'等边三角形'
                else:
                    print u'普通三角形'
            else:
                print u'不能构成三角形'
        else:
            print u'输入有误,请重新输入正数'
    
    except Exception,e:
        print u'输入有误,请重新输入数字类型'
    
    
    


    二、while:给定的判断条件为true时则执行循环体,否则退出循环体

    while 判断条件:

      执行语句

    1、执行语句:可以是单个语句,或语句块

    2、判断条件:可以是任意的表达式,任何非零或非空(null)的值均为true;当条件判断语句为false时,则循环结束。

    3、while语句块中要想办法得到相反的结果,跳出循环,不然会有死循环

    练习1:写一个永久循环的while 代码块,直到用户输入quit,退出

    while 1:
        str=raw_input('enter something:')
        if str!='quit':
            print u'永久循环'
        else:
            print u'终止循环'
            break

    练习2:实现数学中多项式求和公式的打印,比如:a6x^6 + a5x^5 + a4x^4 + a3x^3 + a2x^2 + a1x^1 + a0

    def multion(n):
        strsum=''
    
        while n>=0:
            if n==0:
                strsum+='a'+'0'
    
            else:
                strsum+='a'+str(n)+'x'+'^'+str(n)+'+'
            n-=1     #每一次循环后n-1
    
        return strsum    #return最后的值
    
    print multion(9)


    三、for:可以遍历任意序列的项目,如列表或字符串或元组或字典

    for iterating_var in sequence:
      statements(s)
     
    备注:数字不能迭代遍历

    1、遍历列表:

    例子:

    lista=[1,2,3]
    for i in lista:
        str=raw_input('enter something:')
        if str!='quit':
            lista.append(str)   #往列表中加字符串元素
            print lista
        else:
            break
    运行结果:
    [1, 2, 3, '111']
    enter something:222
    [1, 2, 3, '111', '222']
    enter something:

    2、遍历字符串:

    例子:
    str1='hello world'
    for i in str1:
        print i
    
    运行结果:
    h
    e
    l
    l
    o
     
    w
    o
    r
    l
    d

    3、遍历字典:

    例子:统计名字列表中,各名字的首字母在名字列表中出现的次数,name=['foster','foe','lily','mickel','live','moon','ruby','cindy','miya']

    name=['foster','foe','lily','mickel','live','moon','ruby','cindy','miya']
    dictChar={}
    for i in name:
        if dictChar.has_key(i[0]):
            dictChar[i[0]]+=1
        else:
            dictChar[i[0]]=1
    print dictChar
    
    for k,v in dictChar.items():
        print u'字母%s有%d个'%(k,v)
    
    运行结果:
    {'c': 1, 'r': 1, 'm': 3, 'l': 2, 'f': 2}
    字母c有1个
    字母r有1个
    字母m有3个
    字母l有2个
    字母f有2个

    4、通过序列索引遍历迭代:

    例子1:通过索引遍历列表的元素

    strA=('A','B','C')
    for i in range(len(strA)):
        print i,strA[i]
    
    运行结果:
    0 A
    1 B
    2 C

    例子2:判断是否为素数(素数是只能被1和本身整数的数)

    num=int(raw_input('input a number:'))
    flag=True
    for i in range(2,num):   #判断除了1和自己本身的数是否能整除
        if num%i==0:
            flag=False
    
    if not flag: 
        print num,u'不是素数'
    else:
        print num,u'是素数'

    四、continue和break

    1、有continue,结束当前循环(当前循环剩余的代码不会被执行),直接跳到下一个循环

    2、有break,跳出循环马上中断,后面的语句不会被执行

    五、嵌套循环

    python允许一个循环体嵌套另一个循环体:

    Python for 循环嵌套语法:
    for iterating_var in sequence:
      for iterating_var in sequence:
        statements(s)
      statements(s)
     
    例子1:遍历列表中的元组和列表(嵌套循环)
    listA=[1,2,3,(4,5,6),['a','b','c']]
    for i in listA:
        if isinstance(i,(list,tuple)):
            for j in i:
                print j,
            print
        else:
            print i,
    
    运行结果:
    1 2 3 4 5 6
    a b c
     
     
     例子2:嵌套循环输出10-50中个位带有1-5的所有数字
    for i in range(10,51):
        for j in range(1,6):
            if i%10==j:
                print i
     
     
     
     
  • 相关阅读:
    每日博客
    每日博客
    今日收获
    今日收获
    今日收获
    今日收获
    今日收获
    今日收获
    今日收获
    今日收获
  • 原文地址:https://www.cnblogs.com/wenxiacui/p/10926047.html
Copyright © 2020-2023  润新知