美文网首页
day5 分支循环结构

day5 分支循环结构

作者: 遇见那天的雨真大 | 来源:发表于2018-11-10 16:01 被阅读0次

    1.分支结构 if

    python中的分支结构只有if语句,没有switch。

    1 基本语法

    a.语法:
    if 条件语句:
        代码段
    
    b.说明:

    条件语句 - 任何结果的表达式(不管结果是什么类型)
    ":": 固定。
    代码段 - 和if保持一个缩进的一条或者多条语句。

    c.执行过程:

    先判断条件语句的结果是否是True,如果是True就执行代码段。否则就不执行。
    注意:如果条件语句的结果不是布尔,会将结果先转换成布尔再判断。
    if 后面不能接赋值语句。其余都可以,敲黑板。# if num = 10:

    a = int(input("输入任意数:"))
    b = 1
    c = a & b
    print(c)
    if c == 1:
        print("%s"%a+"是"+"奇数")
    elif c == 0:
        print("%s" %a + "是" + "偶数数")
    
    d.几种基本操作。
    if 10:
        print("条件语句是10")
        print("===")  # 和if保持一个缩进的语句是在条件成立的时候才执行
    print("********")  # 和if没有缩进的语句是在无论是否条件成立都执行
    if 0:
        print("条件语句是0")
    if "asdasdgfh":
        print("条件语句是asdasdgfh")
    if True:
        print("条件语句是True")
    if 10 > 20:
        print("条件语句是10 > 20")
    if "abn".isupper():
        print("条件语句是abn")
    if "ASD".isupper():
        print("条件语句是ASD")
    

    1.if elif else

    a.语法
    
    if 条件语句:
        代码段1
    elif:
        代码段2
    elif:
        代码段3
    else:
        代码段4
    
    b.执行过程:

    一个条件一个判断,不成立就执行下面的一个。先判断条件语句1是否为 True,为True就执行代码段1.否则就判断条件语句2是否为True,如果为True就执行代码段2,否则就判断条件语句3,依次类推。如果前面的条件都为False,就执行else后面的代码段n
    注意:
    1.后面的条件判断的前提是前面的条件不成立
    2.这儿的elif可以有多个,else可以省略。

    练习1:随机产生年龄并判断
    import random
    i =1
    while i <10:
        age = random.randint(0,100)
        if 18 <= age <= 60:
            print("已经%s岁,成年了,红灯区可以进去"%age)
        elif age > 60:
            print("已经%s岁,红灯区不适合了"%age+"回去养老吧")
        else:
            print("才%s岁,未满18,少儿不宜" % age,"还是回家看吧")
        i +=1
    
    练习2:判断奇偶数
    i =1
    while i <10:
        a = random.randint(-20,20)
        b = 1
        c = a & b
        print(c)
        if c == 1:
            print("%s"%a+"是"+"奇数")
            print("执行了第一段")
        elif c == 0:
            print("%s" %a + "是" + "偶数数")
            print("执行了第二段")
        i += 1
    
    练习3:根据成绩进行分段:小于60分打印不及格,60-70及格,71-89良好,90及-90分以上优秀
    i += 1
    while i < 50:
        score = random.randint(0,200)
        if score < 60:
            print("%s分,傻逼不及格"%score,end="\t")
        elif score <= 70:
            print("%s分,小伙子还可以"%score,end="\t")
        elif score < 90:
            print("%s分,哎哟不错额"%score,end="\t")
        elif score <=100:
            print("%s分,nice"%score,end="\t")
        else:
            print("%s分,装逼"%score,end="\t")
        i += 1
    print()
    

    2 if嵌套

    可以在if elif,else后面的代码段中,都可以再写其他的语句

    练习4 如果一个数字是偶数就打印 偶数,否则打印 奇数。如果偶数还能被4整除,再打印4的倍数。
    i = 1
    while i < 50:
        num = random.randint(0,200)
        if num & 1 ==0:
            print("%s是偶数"%num,end="\t")
            if num % 4 ==0:
                print("%s是偶数"%num,"且能被4整除")
            else:
                print("%s是偶数" % num, "但不能被4整除")
        else:
            print("%s是奇数"%num)
        i += 1
    
    练习 输入一个字符串,判断第一个字符是否是字母,如果第一个是大写的再大写 “大写字母”

    注意此处可以生成随机字母

    import string
    import random
    str1 = ''
    i = 1
    while i <10:
        s = string.ascii_letters
        str2 = random.choice(s)
        str1+=str2
        print(str1)
        i += 1
    first_str = str1[0]
    print(first_str)
    if first_str.isalpha():
        print("%s是字母开头"%first_str,end="\t")
        #if "A" < first_str < "Z":
        if first_str.isupper(): #判断是否是大写
            print("%s是大写"%first_str)
        else:
            print("%s不是大写"%first_str)
    else:
        print("德玛西亚")
    

    3.for循环与while循环

    某个操作需要重复执行

    1.for循环

    • a.语法
    for  变量 in 序列
        循环体
    
    • b.说明:
      for -关键字
      变量 - 变量名(随便命名),满足变量名的要求
      序列-可以是字符串、列表、元组、字典、集合、迭代器、rangge
      循环体 -和for保持一个缩进的一条或者多条语句(需要重复执行)
    • c.执行过程:
      让变量去序列中取值,一个一个的取,取完为止,每取一个值,一次执行循环体(for 循环中,序列中的个数,决定了循环的次数)
      序列中内容控制变量每次取到的值
      -d.如果for循环后面的变量取到的值,在循环体里面不使用,那么这个变量命名 的时候用一个_来命名。
    for x in "abc":
        print(x,end="\t")
        print("=*=")
    
    依次取值 “a“,“b“,“c“
    取三次。
    
    • e.2.range(范围):
      range(n)—产生一个数字序列,序列中的内容是 0到n-1.
      range(m,n) -产生一个数字序列,列中的内容是 m到n-1.
      range(m,n,step) -产生一个数字序列,列中的内容是 m开始,每次加step到n前为止.
      range一般用在:
      • a.需要产生指定范围的数字序列
      • b.单纯的控制for循环的循环次数
    for i in range(10000):
        print(i,end='\t')
        print("**"*i)
    for i in range(200,500):
        print(i,end='\t')
        print("**" )
        print("**"*i)
    for i in range(200,500,3):
        print(i,end='\t')
        print("**" )
    
    练习1.练习:求 1+2 +3 +0...100
    sum1 = 0
    for i in range(1,101):
        sum1 += i
    print(sum1)
    
    练习2.练习求和
    sum2 = 0
    for i in range(0,101,2):
        sum2 += i
    print(sum2)
    
    sum2 = 0
    for i in range(0,101,2):
        sum2 += i
    print(sum2)
    
    sum2 = 0
    for i in range(1,101):
        if i % 2 ==0:
            sum2 += i
    print(sum2)
    
    sum3 = 0
    for i in range(1,101):
        if not i & 1:
         sum3 += i
    print(sum3)
    
    练习3.求用for循环统计字符串中数字的个数。>数字字符的个数是几个。
    方法1:
    a = "dahsd45sdjfd656gfdhgh"
    b = ''
    for x in a:
        if x.isdigit():
            b+=x
        else:
            print("不是数字字符")
    print(b)
    print(len(b))
    
    方法2:
    a = "dahsd45sdjfd656gfdhgh"
    b = []
    for x in a:
        if x.isdigit():
            b.append(x)
        else:
            print("不是数字字符")
    print(b)
    print(len(b))
    
    方法3:
    a = "dahsd45sdjfd656gfdhgh"
    count = 0
    for x in a:
        if x.isdigit():
            count +=1
        else:
            print("%s不是数字字符"%x)
    print("数字字符出现了%d次"%count)
    

    2.while循环

    • a.语法
    while 条件语句:
          循环体
    
    • b.说明
      while 关键字
      条件语句 有结果的表达式(除了赋值语句,一般的表达式都行)
      :- 固定语法
      循环体 - 和whil保持一个缩进的一条或者多条语句(会被重复执行)
    • c.执行过程:
      先判断条件语句是否为True,为true就执行循环体;
      执行完循环体再判断条件语句是否为True,为True又执行循环体。
      以此类推,直到判断条件语句的结果为False,整个循环就结束。
    练习. 1 2 3 4 5 6 7
    num = 0
    while num <= 100:
        print("傻逼X%s"%num)
        num += 1
    
    练习 1* 2* 3* 4* 5* 6* 7
    num1 = 1
    cj= 1
    while num1 <= 7:
        cj *= num1
        num1 +=1
    print(cj)
    
    练习 获取字符串字符串abc123中的字符
    str1 = 'abc123'
    num3 = 0
    num4 =len(str1)-1
    print(num4)
    while num3 <= num4:
        print(str1[num3],end="\t")
        num3 +=1
    

    3.for 循环与 while的选择

    python中 for循环能做的,while循环都能做。但是while循环能做的,for循环不一定能做。
    for循环的两种情况:
    a.获取序列中的元素(值)
    b.循环次数的确定。

    小程序压压惊:
    a =5
    for i in range(a):
        a +=1
        print("sss")
    
    练习 程序可以不断输入,直到输入的值为0退出。
    a = input("请输入:")
    while int(a) !=0:
        a = input("请输入:")
    print("通关")
    
    while True:
        a = input("请输入:")
        if int(a) == 0:
            break
    print("通关")
    
    flag = True
    while flag:
        a = input("请输入:")
        if int(a) == 0:
            flag = False
    print("通关")
    

    4 continue\break\else

    1.continue

    功能:continue是一个关键字,只能写在循环体中
    功能:当循环执行过程中遇到continue,会结束当次循环,直接进入下次循环的判断
    (直接进入下次循环的判断:for循环就是用变量取下一个值,while循环就是直接判断条件语句是否为 True)

    for 变量 in 序列
        语句1
        语句1
        continue
        语句1
    while 变量 in 序列
           语句1
          语句1
          continue
          语句1
    
    练习
    x = 1
    cj = 1
    for x in range(100):
        if x % 2 == 0:
            continue
        cj *= x
    print(cj)
    

    2.break 是一个关键字,只能写在循环体

    功能:当循环循环过程中遇到break,整个循环直接结束。

    num1 = 1
    cj = 1
    while True:
        cj *= num1
        if cj >= 100:
            break
        print(num1)
        num1 += 1
    print(num1,cj)
    

    3 else

    • 语法:
    while 条件语句:
            循环
    else:
        代码段
    for 变量 in 序列:
        循环体
    else:
        代码段
    
    • b:执行过程
      else结构不会影响原循环执行过程。当循环自然死亡的时候就会执行else后面的代码段。
      循环因为遇到break结束的时候,不会执行else代码段。
    cj = 1
    for x in range(1,10):
        cj *= x
    else:
        print('执行完了',end=" ")
    print(cj)
    

    相关文章

      网友评论

          本文标题:day5 分支循环结构

          本文链接:https://www.haomeiwen.com/subject/jpbzxqtx.html