美文网首页
分支和循环

分支和循环

作者: 憧憬001 | 来源:发表于2018-11-09 19:08 被阅读0次

    一、分支

    1. if 语句

    • a.语法:
      if 条件语句:
      代码段
    • b.说明:
      if - 关键字
      条件语句 - 任何有结果的表达式(不管是什么类型)
      代码段和if保持一个缩进的一条或者多条语句
    • c.执行过程:
      先判断条件语句的结果是否是True,如果是则执行,反之则不执行
      注意:如果条件语句的结果不是布尔,会将结果转化为布尔再判断
      赋值语句不能写在if的后面
    # 练习:随机产生一个年龄值,如果大于18就打印 成年
    import random  # 导入生成随机数的模块
    age = random.randint(0, 100)   # 随机生成0~100中的一个数(不包括100)
    if age >= 18:
        print("成年")
    print("你的年龄是%d" % age)
    

    2. if- else 语句

    • a.语法:
      if 条件语句:
      代码段1
      else:
      代码段2

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

    # num = input("请输入")
    num = 12
    # try,except,finally为异常捕获
    try:    # 尝试执行的代码
        if num & 1 == 0:
            print("我是偶数%d" % num)
    
        elif num & 1 == 1:
            print("你是奇数%d" % num)
    except:    # 发生异常执行的代码 
        print("非奇非偶吧你{0}".format(num))
    finally:     # 无论发不发生异常都会执行的代码
        print("Hello python")
    

    3. if - elif - else 语句

    • 语法:
      if 条件语句1:
      代码段1
      elif 条件语句2:
      代码段2
      elif 条件语句3:
      代码段3
      ...
      else:
      代码段n

    • 执行过程:
      先判断条件语句1是否为True,为True就执行代码段1;
      否则,就判断条件语句2是否为True,为True就执行代码段2
      否则,就判断条件语句3是否为True,为True就执行代码段3
      ...
      如果全部条件语句都不执行就执行 else
      注意:1.后面的条件判断前提是前面的条件不成立
      2.elif根据条件可以有多个,else也可以省略

    import random
    score = random.randint(40, 100)
    print("你的考试成绩:%d" % score)
    print("你的综合测评:", end="")
    if score >= 90:
        print("A")
    elif score >= 80:
        print("B")
    elif score >= 70:
        print("C")
    elif score >= 60:
        print("D")
    else:
        print("留级")
    

    4. if 的嵌套

    • 可以在if ,else后面的代码段中,都可以再写其他的if语句
    number = random.randint(0, 100)
    if number & 1 == 0:
        print("偶数:%d" % number)
        if number % 4 == 0:
            print("4的倍数:%d" % number)
    else:
        print("你是奇数:%d" % number)
    
    
    # 练习:输入一个字符串,判断是否第一个字符是字母,如果是 打印“一字母开头”
    #       如果这个字母是大写的,再打印“大写字母”
    
    str1 = input("请输入")
    if str1[0].isalpha():
        print("字母开头")
        if str1[0].isupper():
            print("大写字母")
    else:
        print(str1)
    
    # 方法2
    if "a" <= str1[0] <= "z" or "A" <= str1[0] <= "Z":
        print("以字母开")
        if "A" <= str1[0] <= "Z":
            print("大写字母")
    else:
        print(str1
    

    二、for 循环

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

    • b.for - 关键字
      变量 - 变量名,(满足变量命名规范)
      in - 关键字
      序列 - 可以是字符串、列表、元组、字典、集合、迭代器、range
      循环体 - 和for保持一个缩进的一条或者多条语句(需要重复执行的代码)

    • c.执行过程:
      让变量取序列中取值,一个一个的取,取完为止;每取一个值,依次执行循环体
      for循环中,序列中值的个数,确定了循环的次数

    • d.如果for后面取到的值,在循环体里面不使用,那么这个变量命令的时候,用一个_来命名

    for i in "abc":
        print(i)
    

    range说明

    • range(n) - 产生数字序列,序列中的内容是0~ n-1(结果是序列)
      range(m,n) - 产生数字序列,序列中的内容是m~ n-1
      range(m,n,step) - 产生数字序列,从m开始,每次增加step,直到n-1为止
      range一般用在:
      a.需要产生指定范围的数字序列
      b.单纯的控制for循环的次数
    for i in range(5):
        print(i)
    print("~"*20)
    for i in range(10, 15):
        print(i)
    
    for i in range(20, 30, 2):
        print(i)
    

    练习:获取一个字符串中数字的个数,并在控制台输出

    str1 = "sd454df5sd5f45dfd4f5dfdg"
    
    count = 0
    for char in str1:
        # print(i)
        if "0" <= char <= "9":
            count += 1
    print("数字个数:%d" % count)
    

    三、while 循环

    • a.语法:
      while 条件语句:
      循环体

    • b. 说明:
      while - 关键字
      条件语句 - 有结果的表达式(除了赋值语句,一般的表达式都行)

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

    num = 1
    result = 1
    while num <= 10:
         result *= num
         num += 1
    print(result)
    
    str1 = "abc123"
    num = 0
    while num < len(str1):
        print(str1[num])
        num += 1
    

    for循环和while循环的选择

    • 使用for循环:
      a. 获取序列中的元素(值)
      b. 循环次数确定

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

    # 不确定循环的次数
    # 方法一
    value = input('请输入:')
    while value != '0':
        value = input('请输入:')
    print('结束!')
    # 方法二
    while True:
        index = input("请输入:")
        if index == "0":
            print("~~~~~~~~~")
            break
    

    四、continue、break和else

    • continue 是一个关键字,只能写在循环中
      功能:当循环执行过程中遇到continue,会结束当次循环,直接今日下次循环的判断
      (直接进入下次循环的判断:for循环就是用比那辆取下一个值
      while就是直接判断条件语句是否为True
    for i in range(0, 10):
        if i & 1 == 0:
            continue
        print("我是奇数:%d" % i)
    
    • break是一个关键字,只能写在循环体中
      功能:当循环过程中遇到可break,整个循环直接结束
    for x in range(10):
        print(x)
        break
    

    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循环结束了')
    

    相关文章

      网友评论

          本文标题:分支和循环

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