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

day5-分支和循环总结

作者: 2333_11f6 | 来源:发表于2018-11-09 17:54 被阅读0次

    5.1 分支结构

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

    5.1.1 if语句

    • a.语法:
      if 条件语句 :
      代码段
    • b.说明:
      if -- 关键字
      条件语句 -- 任何有结果的表达式,不管结果类型。
      : -- 固定写法,有冒号下以下必定有缩进
      代码段 -- 和if保持一个缩进的一条或多条语句。
    • c.执行过程:
      先判断条件结果是否是True,如果是True就执行冒号后面的代码段。否则就不执行。
      注意:
      如果条件语句结果不是布尔,会先将结果转换成布尔,再判断。
      除了0,空值以外的值转为布尔都为True。

    if后面可以写哪些语句

    注意:赋值语句不能写在if后面,其他都可以。

    num = 10
    if num & 1 == 0:
        print('%d是偶数' % (num))
        print('========')              # 和if保持一个缩进的语句是在条件成立才执行
                                      # 与if无关的语句最好换个行
    print('##########')           # 在if外面的语句不管if条件是否成立都会执行
    
    
    if 'ADS'.isupper():
        print('全是大写')  #不执行
    
    # 练习:随机产生一个年龄值,如果大于等于18就打印成年。
    import random
    age = random.randint(0,100)
    if age >= 18:
        print('%d已经成年了。' %(age))
    else:
        print('未成年')
    print(age)
    

    5.1.2 if-else

    • a.语法:
      if 条件语句 :
      代码段1
      else:
      代码段2
    • b.说明:
      if -- 关键字
      else -- 关键字
      条件语句 -- 任何有结果的表达式,不管结果类型。
      : -- 固定写法,有冒号下以下必定有缩进
      代码段 -- 和if及else保持一个缩进的一条或多条语句。
    • c.执行过程:
      先判断条件结果是否是True,如果是True就执行代码段1。否则就执行代码段2。
      注意:
      如果条件语句结果不是布尔,会先将结果转换成布尔,再判断。
      除了0,空值以外的值转为布尔都为True。
    #随机产生一个整数,如果是奇数打印’***是奇数‘,否则,反之。
    num = random.randint(0,9999)
    if num & 1:
        print('%d是奇数' %(num))
    else:
        print('%d是偶数' %(num))
    

    5.1.3 if-elif-else

    • a.语法:
      if 条件语句1 :
      代码段1
      elif 条件语句2:
      代码段2
      elif 条件语句3:
      代码段3
      ...
      else:
      代码段n
    • b.说明:
      if -- 关键字
      elif -- 关键字
      else -- 关键字
      条件语句 -- 任何有结果的表达式,不管结果类型。
      : -- 固定写法,有冒号下以下必定有缩进
      代码段 -- 和if、elif及else保持一个缩进的一条或多条语句。
    • c.执行过程:
      先判断条件语句1结果是否是True,如果是True就执行代码段1。
      否则就判断条件语句2结果是否是True,如果是True就执行代码段2。
      否则就判断条件语句3结果是否是True,如果是True就执行代码段3。
      ...
      如果前面所有的条件都为False,就执行代码段n。
      注意:
      后面的条件判断的前提是前面条件不成立。
      这里的elif根据情况可以有多个,else也可以省略。
      如果条件语句结果不是布尔,会先将结果转换成布尔,再判断。
      除了0,空值以外的值转为布尔都为True。
    # score 60以下不及格 60-70及格 71-89良好 90以上优秀
    score = random.randint(0,100)
    print('成绩为%d:' %(score),end="")
    if score < 60:
        print('不及格')
    elif score <= 70:
        print('及格')
    elif score <= 89:
        print('良好')
    else:
        print('优秀')
    

    5.1.4 if嵌套

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

    #判断一个数字是否为偶数,是的话判断是否被4整除
    score = random.randint(0,100)
    if score & 1:
        print('%d是奇数' %score)
    else:
        if score % 4 == 0:
            print('%d是4的倍数' % score)
        else:
            print('%d是偶数' %score)
    """
    练习:输入一个字符串,判断字符串的第一个字符是否是字母,如果是,打印’以字符开头'。
    如果这个字母是大写的再打印’大写字母‘。
    """
    str1 = input('请输入一串字符:')
    if str1[0].isalpha():    #if 'a' <= str1[0] <= 'z' or  'A' <= str1[0] <= 'Z':
        print('以字母开头')
        if str1[0].isupper():          #'A' <= str1[0] <= 'Z':
            print('大写字母')
    else:
        print('什么都不打印')
    
    '''
    l = []
    num = 0
    while num <= 888:
        num = random.randint(0, 999)
        l.append(num)
    print(l)
    '''
    

    5.2 for循环

    python中的循环结构有两种:for和while循环。
    什么时候用循环:某个操作需要重复执行,就考虑用循环。

    5.2.1 for循环

    • 语法:
      for 变量名 in 序列:
      循环体
    • 说明:
      for、in -- 关键字
      变量名 -- 满足变量名要求即可
      序列 -- 字符串,列表,元组,字典,集合,迭代器,range
      循环体 -- 可以是一条或多条和for保持一个缩进的语句(需要重复执行的代码)
    • 执行过程:
      让变量去序列中取值,一个一个的取,取完为止;每取一个值,执行一次循环体。
      (for循环中,序列中元素的个数,决定了循环的次数)
      注意:
      如果for后的变量取到的值,在循环体里不使用,那么这个变量命名时,用一个_来命名。
    for x in range(97,123):
        print(chr(x), end='--->')
    
    for x in 'abc':
        print(x)
        print('##$$#$$#$#')
    

    5.2 range

    range(n) -- 产生一个数字序列,序列内容是0~n-1(结果是一个序列)
    range(m,n) -- 产生一个数字序列,序列内容是m~n-1,m<n(结果是一个序列)
    range(m,n,step) -- 产生一个数字序列,序列从m开始,每次加step直到n前为止,取不到n。
    range一般用在:
    1.需要产生指定范围的数字序列
    2.单纯的控制for循环的循环次数

    for num in range(10):
        print(num, end='')
    print()
    for num in range(10, 20, 2):
        print(num, end='--->')
    
    #练习:求1+2+。。+100
    sum1 = 0
    for num in range(1, 101):
        sum1 += num
    print(sum1)
    print(sum([1, 2, 3]))
    
    #练习:2+4+6+8+。。。+100
    #方法1:不用if
    sum1 = 0
    for num in range(1, 51):      # range(2,101,2)
        sum1 += num*2
    print(sum1)
    #方法2:用if
    sum2 = 0
    for num in range(1, 101):
        if not num &1:
            sum2 += num
    print(sum2)
    """
        if num & 1:
            pass
        else:   
         sum2 += num
    """
    
    #练习:写程序统计一个字符串中数字字符的个数
    str1 = input('请输入一个字符串:')
    sum1 = 0
    for i in str1:
        if '0' <= i <= '9':
            print(i)
            sum1 += 1
    print('数字字符的个数是:', sum1)
    
    #用循环控制打印10行”*“
    for _ in range(1,10):
        print('*')
    
    for x in range(1, 10):
        print('*'*x)
    

    5.3 while

    5.3.1 while循环

    • 语法:
      while 条件语句:
      循环体
    • 说明:
      while -- 关键字
      条件语句 -- 有结果的表达式,除了赋值语句
      : -- 固定写法
      循环体 -- 和while保持一个缩进的一条或者多条语句(会被重复执行)
    • 执行过程:
      先判断条件语句是否为True,为True就执行循环体;
      执行完循环体再判断条件语句是否为True,为True又执行循环体;
      。。。。。
      以此类推,直到条件语句为False,就结束整个循环。
    #1*2*..*10
    num = 1
    sum1 = 1
    while num <= 10:
        sum1 *= num
        num += 1
    print(sum1)
    print(1*2*3*4*5*6*7*8*9*10)
    
    #获取字符串abc123中的每个字符
    str1 = 'abc123'
    num = 0
    while num <= 5:
        print(str1[num])
        num += 1
    

    5.3.2 for和while循环

    python中,for循环能做到的while循环都能做到;但是while循环能做的,for循环不一定能做到。

    • 使用for循环:
      1.获取序列中的元素(值)
      2.循环次数确定
    • while循环:
      1.死循环
      2.循环次数不确定
    #练习:程序不断的输入,知道为0为止
    i = input('请输入:')
    while i != '0':
        i = input('请输入:')
    

    5.4 continue,break和else

    5.4 .1 continue

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

    5.4 .2 break

    • break是一个关键字,只能写在循环体中。
    • 功能:当循环遇到break时,直接结束当前循环。

    5.4.3 else python中特有

    • 语法:

    while 条件语句:
    循环体
    else:
    代码段

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

    • 执行过程:
      else结构不会影响原循环的执行过程。当循环自然死亡时,就会执行else后面的代码段。
      循环因为遇到break而结束时,不会执行else后面的代码段。
    for x in range(10):
        print(x)
    else:
        print('for循环结束')
    

    相关文章

      网友评论

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

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