美文网首页
2020年3月19日 第三章 程序控制结构-2

2020年3月19日 第三章 程序控制结构-2

作者: anivad | 来源:发表于2020-03-19 16:15 被阅读0次

    第三章 程序控制结构-2

    3.2 双路分支结构

    双路分支结构是一种二选一,即一个条件分两种情形处理

    if <条件表达式>:
      <语句块1>
    else:
      <语句块2>
    

    语法格式

    • 当<条件表达式>为True时,执行<语句块1>,否则执行<语句块2>。
    • <条件表达式>可以是关系表达式、逻辑表达式、算术表达式等。
    • <语句块>前有缩进,冒号:不能缺省。

    【例3-7】 改写【例3-1】程序,输入一个整数,如果是偶数则输出“这是个偶数”,否则输出这是个“奇数”

    #例3-1
    #E3-1-1.py
    N=int(input("请输入一个整数:"))
    if N%2==0:
      print("这是个偶数")
    
    #例3-7
    #E3-7.py
    N=int(input("请输入一个整数:"))
    if N%2==0:
      print("这是个偶数")
    else:
      print(“这是个奇数")
    

    【例3-8】游戏猜数字,改写【例3-5】程序:随机产生一个0-10间的整数,玩家通过键盘输入一个数竞猜,若猜中,则输出“恭喜你猜对啦!”,否则输出“很遗憾,没有猜对哟!”

    #例3-5
    #E3-5.py
    from random import *
    num=randint(0,10)
    x=int(input("请输入一个数:"))
    if num==x:
      print("恭喜你猜对啦!")
    print("随机数是:",num)
    
    #例3-8
    #E3-8.py
    from random import *
    num=randint(0,10)
    x=int(input("请输入一个数:"))
    if num==x:
      print("恭喜你猜对啦!")
    else:
      print("很遗憾,没有猜对哟!")
    print("随机数是:",num)
    

    【例3-9】改写【例3-6】登录程序:用户通过键盘输入用户名和密码,如果输入的用户名为空,输出“用户名不能为空”;如果输入的密码为空,输出“密码不能为空”;如果输入的用户名为“abc”,并且密码为”123”,输出“欢迎进入本系统”,否则输出“用户名或密码错误”

    #例3-6
    #E3-6.py
    userName=input("请输入用户名:")
    passWord=input("请输入密码:")
    if userName=="":
      print("用户名不能为空")
    if passWord=="":
      print("密码不能为空")
    if userName=="abc" and passWord=="123":
      print("欢迎进入本系统")
    
    #例3-9
    #E3-9.py
    userName=input("请输入用户名:")
    passWord=input("请输入密码:")
    if userName=="":
      print("用户名不能为空")
    if passWord=="":
      print("密码不能为空")
    if userName=="abc" and passWord=="123":
      print("欢迎进入本系统")
    else:
      print("用户名或密码错误")
    

    【试一试】编写程序计算 y = |x^2 - 25|^0.5

    提示:
    条件(1) 与(2) ,哪个放在if 后面做为if的条件表达式?

    1. x<=-5或x>=5
    2. -5<x<5
    #test1.py
    # 方法1
    import math
    x=eval(input("输入x:"))
    if -5<x<5:
      y=math.sqrt(25-x*x)
    else:
      y=math.sqrt(x*x-25)
    print("y=",y)
    
    #test1.py
    方法2
    import math
    x=eval(input("输入x:"))
    if  x<=-5 or x>=5:
      y=math.sqrt(x*x-25)
    else:
      y=math.sqrt(25-x*x)   
    print("y=",y)
    
    # x=int(input("输入x:")))
    

    【试一试】编写程序,输入一个数,利用turtle库绘制画笔大小为3,半径为100的圆形。并且当输入的数是偶数时,填充颜色为蓝色;当输入的数是奇数时,填充颜色为红色。

    提示:
    (1)turtle库中有关函数
    画圆 circle(),画笔大小pensize(),填充fillcolor(),开始填充begin_fill(),结束填充end_fill()
    (2) 判断一个数是否是偶数的条件表达式 N%2==0

    #test2.py
    from turtle import *
    N=int(input("N="))
    if N%2==0:
      fillcolor("blue")
    else:
      fillcolor("red")
    pensize(3)
    hideturtle()
    begin_fill()
    circle(100)
    end_fill()
    

    思考:

    • hideturtle()函数的作用是什么?
    • if…else…语句是否可以放在程序的其它位置?
    • 能否改写程序,用input函数分别输入N,画笔大小,圆半径的值。

    3.2 双路分支结构-扩展

    if <条件表达式>:
      <表达式1>
    else:
      <表达式2>
    

    <表达式1> if <条件表达式> else <表达式2>
    

    功能:

    • 当条件表达式为True时,执行表达式1,否则执行表达式2
    #例3-8
    #E3-8.py
    from random import *
    num=randint(0,10)
    x=int(input("请输入一个数:"))
    if num==x:
      print("恭喜你猜对啦!")
    else:
      print("很遗憾,没有猜对哟!")
    print("随机数是:",num)
    # 可写成print("恭喜你猜对啦!") if num==x else print("很遗憾,没有猜对哟!")
    
    #例3-7
    #E3-7.py
    N=int(input("请输入一个整数:"))
    if N%2==0:
      print("这是个偶数")
    else:
      print("这是个奇数")
    # 可写成print(“这是个偶数”)  if  N%2==0 else print(“这是个奇数")
    

    3.3 多路分支结构

    if <条件表达式1>:
      <语句块1>
    elif <条件表达式2>:
      <语句块2>
    ……
    elif <条件表达式n>:
      <语句块n>
    [else:
      <语句块n+1>]
    

    3.3 多路分支结构

    【例3-10】用多路分支结构改写【例3-4】,即输入腋下体温值t,根据如下情况分别输出:

    t<36.1输出:您的体温偏低
    36.1<=t<=37.2 输出:您的体温正常
    37.3<t输出:您的体温偏高

    #E3-4.py
    t=eval(input("请输入体温值:"))
    if t<36.1:
      print("您的体温偏低")
    if 36.1<=t<=37.2:
      print("您的体温正常")
    if 37.3<t:
      print("您的体温偏高")
    
    #E3-10.py
    t=eval(input("请输入体温值:"))
    if t<36.1:
      print("您的体温偏低")
    elif  t<=37.2:
      print("您的体温正常")
    elif 37.3<t:
      print("您的体温偏高")
    # 或 else:
    

    思考:

    • 上面两个方法在程序的执行效率上会有不同吗?
    • 在使用多路分支结构时,是不是所有情况下,最后一个分支都可以是用elif 或 else?

    【例3-11】输入学生成绩 ,根据成绩进行分类:

    90分以上优秀
    80~89分 良好
    70~79分 中等
    60~69分 及格
    低于60分不及格

    #E3-11.py
    score=eval(input("成绩:"))
    if score>=90:
      print("优秀")
    elif score>=80:
      print("良好")
    elif score>=70:
      print("中等")
    elif score>=60:
      print("及格")
    else:
      print("不及格")
    

    课堂小结

    • 单路分支结构
    if  <条件表达式>:
      <语句块>
    
    • 双路分支结构
    if  <条件表达式>:
      <表达式1>
    else:
      <表达式2>
    
    • 多路分支结构
    if <条件表达式1>:
      <语句块1>
    elif <条件表达式2>:
      <语句块2>
    ……
    elif <条件表达式n>:
      <语句块n>
    [else:
      <语句块n+1>]
    

    课后作业

    1.新建程序文件 “姓名-3-1.py”,从键盘输入一个字符,赋值给变量ch,判断它是英文字母、数字还是其他字符。
    提示:
    分析下列三种情况

    • 英文字母:
      ch>="a" and ch<="z" or ch>="A" and ch<="Z"
    • 数字字符:ch>="0"and ch<="9"
    • 其他字符

    2.中国古代关于人类年龄阶段的划分
    据秦汉的《礼记·礼上第一》记载:“人生十年曰幼,学。二十曰弱,冠。三十曰壮,有室。四十曰强,而仕。五十曰艾,服官政。六十曰耆,指使。七十曰老,而传。八十、九十曰耄。百年曰期,颐。”
    要求 :编写程序“姓名-3-2.py” ,当输入一个年龄后,按中国古代年龄段划分,给出这个年龄的年龄段名称。如输入 年龄“20”,输出“弱”

    3.为了评价一个人是否肥胖,1835年比利时统计学家和数学家凯特勒提出一种简便的判定指标BMI(身体质量指数)。BMI的定义如下:BMI=体重(kg)÷身高2(m)按照这个计算方法,WHO(世界卫生组织)1997年公布了一个判断人肥胖程度的BMI标准,后来又公布了中国参考标准。
    要求 :编写程序“姓名-3-3.py” ,根据上述资料,输入一个人的体重和身高,按中国参考标准输出BMI分类值

    4.中国大学Mooc平台上第三周的学习,并按时完成第三周的单元测试,单元测试截止时间3月22日0时。

    相关文章

      网友评论

          本文标题:2020年3月19日 第三章 程序控制结构-2

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