美文网首页
day5-分支和循环总结

day5-分支和循环总结

作者: 2ez4ddf | 来源:发表于2018-11-10 14:29 被阅读0次

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

    一.if语句

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

    b.说明:
    if——关键字
    条件语句——任何有结果的表达式(不管结果是什么类型)
    :——固定写法
    代码段——和if保持一个缩进的一条或者多条语句。

    c.执行过程:
    先判断条件语句的结果是否是True,如果是True,就执行冒号后面的代码段。否则就不执行代码段。
    注意:如果条件语句的结果不是布尔,会先将结果转换成布尔再判断。

    1. if后面可以写哪些语句
    if 10:
        print('条件是语句是10')
    if 'abc':
        print('条件是语句是abc')
    if True:
        print('条件是语句是True')
    if 10 > 20:
        print('条件是语句是10 > 20')
    if 'DDF'.isupper():
        print('全是大写!')
    # 注意:赋值语句不能写在if的后面
    # if num = 10:  #错误写法
    #     print('赋值语句') #错误写法
    num = 100
    if num & 1 == 0:
        print('%d是偶数' % (num))
        print('===========')#和if保持一个缩进的语句是在条件成立的时候才执行
    print('~~~~~~~~') #在if外面的语句不管if条件是否成立都会执行
    #练习:随机产生一个年龄值,如果年龄大于等于18就打印'成年',不管年龄是多少,都把年龄打印出来
    import random
    age = random.randint(0,100)
    print('%d岁' % (num))
    if age >= 18:
        print('成年')
    
    1. if-else语句
      a.语法:
      if 条件语句:
      代码段1
      else:
      代码段2

    b.执行过程:
    先判断条件语句是否为True,为True就执行代码段1;否则执行代码段2

    #随机产生一个整数,如果是奇数打印'XXX是奇数',否则打印'XXX是偶数'
    num = random.randint(0,20)
    print('%d为产生的数' % num)
    if num & 1:        #结果1为True,执行,等同于num & 1 == 1
        print('%d是奇数' % num)
    else:
        print('%d是偶数' % num)
    
    1. if-elif-else
      a.语法:
      if 条件语句1:
      代码段1
      elif 条件语句2:
      代码段2
      elif 条件语句3:
      代码段3
      ...
      else:
      代码段n

    b.执行过程:
    先判断条件语句1是否为True,为True就执行代码段1;
    否则,就判断条件语句2是否为True,为True就执行代码段2;
    否则,就判断条件语句3是否为True,为True就执行代码段3;
    以此类推,如果前面的条件都为False,就执行else后面的代码段n。

    注意:1.后面的条件判断前提是前面的条件不成立
    2.这儿的elif根据情况可以有多个,else可以省略

    #根据成绩对成绩进行分段:小于60分打印不及格。60~70及格,71~89良好,90及90以上优秀。
    num = random.randint(0,100)
    score = num
    print(score)
    if score < 60:
        print('不及格')
    elif score <= 70:
        print('及格')
    elif score < 90:
        print('良好')
    elif score <= 100:
        print('优秀')
    else:
        print('超出范围')
    
    1. if嵌套
      可以在if,elif,else后面的代码段中,都可以再写其他的if语句
    #如果一个数字是偶数就打印'偶数',否则打印'奇数'。如果偶数还能被4整除,再打印'4的倍数'。
    num = random.randint(0,100)
    print(num)
    if num & 1:
        print('奇数')
        if num % 5 ==0:
            print('5的倍数')
        else:
            print('不是5的倍数')
    
    else:
        print('偶数')
        if num %4 == 0:
            print('4的倍数')
        else:
            print('不是4的倍数')
    
    # 练习:输入一个字符串,判断是否的第一个字符是否是字母,如果是打印'以字母开头'。
    #      如果这个字母是大写的,再打印'大写字母'。例如:'abc123' -> 打印'以字母开头'
    #      'Abc123' -> 打印'以字母开头'和'大写字母'  '12hsj' -> 什么都不打印
    #方法一:
    str1 = input('请输入:')
    char1 = str1[0]
    if 'a' <= char1 <= 'z' or 'A' <= char1 <='Z':
        print('以字母开头')
        if  'A' <= char1 <='Z': 
            print('大写字母')
    else:
        print('什么都不打印')
    # 方法二:
    str1 = input('请输入:')
    # 字符串.isalpha() -> 是否是字母
    if str1[0].isalpha():
        print('以字母开头')
        # 字符串.isupper() -> 是否是大写字母
        if str1[0].isupper():
            print('大写字母')
    
    #生成一个随机字符
    char = chr(random.randint(97, 122))
    print('随机字符:',char)
    

    二.for循环

    python中的循环结构有两种:for循环和while循环

    什么时候用循环:某个操作需要重复执行,就考虑用循环

    1. for循环
      a.语法:
      for 变量 in 序列:
      循环体

    b.说明:
    for——关键字
    变量——变量名,随便命名(满足变量名的要求)
    in——关键字
    序列——可以使字符串、列表、元组、字典、集合、迭代器、range。
    :——固定写法
    循环体——和for保持一个缩进的一条或者多条语句(需要重复执行的代码)

    c.执行过程:
    让变量去序列中取值,一个一个的取,取完为止;每取一个值,执行依次循环体
    (for循环中,序列中值的个数,决定了循环的次数;序列中的内容,控制每次变量取到的值)
    d.注意:
    如果for后面的变量取到的值,在循环体里面不使用,那么这个变量命名的时候,用一个_来命名。

    for i in 'abc':
        print(i)
        print('===')
    ####
    a
    ===
    b
    ===
    c
    ===
    
    1. range
      range(n)——产生一个数字序列,序列中的内容是0~n-1(结果是序列)
      range(m,n)——产生一个数字序列,序列的内容是m~n-1(m一定比n-1小)
      range(m,n,step)——产生一个数字序列,从m开始,每次加step,直到n前为止
      range一般用在:a.需要产生指定范围的数字序列
      b.单纯的控制for循环的循环次数
    for num in range(9):
        print(num)
    for num in range(2, 5):
        print(num)
    for num in range(9, 30, 5):
        print(num)
    
    # 练习:求1+2+3+...+100
    """
    sum1 = 0
    num = 1  sum1 += num  sum1 = sum1+num = 0+1
    num = 2  sum1 += num  sum1 = sum1+num = 1+2
    num = 3  sum1 += num  sum1 = sum1+num = 1+2+3
    num = 4  sum1 += num  sum1 = sum1+num = 1+2+3+4
    ...
    num = 100 sum1 += num  sum1 = sum1+num = 1+2+..+99+100
    
    """
    sum1 = 0   # 保存和
    for num in range(1, 101):
        sum1 += num  # sum1 = sum1+num
    print(sum1) #5050
    
    # 练习:2+4+6+...+100
    # 方法1:不用if语句
    num = 0
    for i in range(2, 101, 2):
        num += i
    print(num) #2550
    # 方法2:用if语句
    num = 0
    for i in range(1, 101):
        if not i & 1:     #i & 1 == 0
            num += i
    print(num) #2550
    
    #练习:写程序统计一个字符串中数字字符的个数
    # 'ajshf237hajfk90sss7'  -> 数字字符个数是:6
    str2 = input('请输入一个字符串')
    count = 0 #保存数字字符的个数
    #将字符串中的每次字符取出来
    for char in str2:
        if '0'<=char<='9':
            #print(char)
            count += 1
    print('数字字符个数是:%d' % (count))
    
    #用循环控制打印10行'***'
    for _ in range(10):
        print('***')
    
    1. while循环
      a.语法:
      while 条件语句:
      循环体

    b.说明:
    while——关键字
    条件语句——有结果的表达式(除了赋值语句,一般表达式都行)
    :——固定写法
    循环体——和while保持一个缩进的一条或者多条语句(会被重复执行)

    c.执行过程
    先判断条件语句是否为True,为True就执行循环体;
    执行完循环体再判断条件语句是否为True,为True就执行循环体;
    ...
    以此类推,直到判断条件语句结果为False,整个循环就结束

    # 练习:1,2,3,4,...,100
    num = 1
    while num <= 100:
        print(num)
        num += 1
    print('==:', num) #==: 101
    
    #1*2*3*...*10
    num = 1
    sum = 1
    while num <= 10:
        print(num)
        sum *= num
        num +=1
    print(sum) #3628800
    
    #练习:使用while循环,获取字符串'abc123'中的每个字符
    str1 = 'abc123'
    x = len(str1)
    index = 0
    while index < x:
        print(str1[index])
        index +=1
    
    1. for循环和while循环的选择
      python中,for循环能做到的while循环都能做到;但是while循环能做到的,for循环不一定能做到
      使用for循环:
      a.获取序列中的元素(值)
      b.循环次数确定

    使用while循环:
    a.死循环
    b.循环次数不确定

    #练习:程序可以不断的进行输入,知道输入的值为0为止。
    x = input('请输入:') #input()返回均为字符串形式!
    while x != '0':
        x = input('请输入:')
    

    三.循环终止

    1. continue
      continue是一个关键字,只能写在循环体中
      功能:当循环执行过程中遇到continue,会结束当次循环,直接进入下次循环的判断。
      (直接进入下次循环的判断:for循环就是用变量取下一个值;while循环就是直接判断条件语句是否为True)
    #求1+3+5+...+99的和
    sum1 = 0
    for x in range(100):
        if x % 2 ==0:
            continue
        sum1 += x
    print(sum1)
    
    1. break
      break是一个关键字,只能写在循环体中
      功能:当循环过程中遇到了break,整个循环直接结束
    """
    num = 1
    sum1 = 0
    1+0 >= 10  False  sum1 = 1  num = 2
    1+2 >= 10  False  sum1 = 3  num = 3
    3+3 >= 10  False  sum1 = 6  num = 4
    6+4 >= 10  True   break
    """
    num = 1
    sum1 = 0
    while True:
        if sum1+num >= 10:
            break
        sum1 += num
        num += 1
    
    print(sum1) #6
    
    1. else
      a.语法:
    • while 条件语句:
      循环
      else:
      代码段

    • for 变量 in 序列:
      循环体
      else:
      代码段

    b.执行过程:
    else结构不会影响原循环的执行过程。当循环自然死亡的时候,就会执行else后边的代码段。
    循环因为遇到break而结束的时候不会执行else后边的代码段。

    for x in range(10):
        print(x)
        if x == 3:
            break
    else:
        print('for循环结束了')
    

    相关文章

      网友评论

          本文标题:day5-分支和循环总结

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