Python自学笔记Day10

Python自学笔记——Day10

程序结构

1. 分支语句

  • 程序可以由三种结构组成全部
    • 顺序结构:程序从上到下顺序逐行执行,一行执行完毕后才执行下一行
    • 分支结构:存在一个判断条件,不同的结果对应不同的程序段
    • 循环结构:多次重复执行相同或者相似的代码段
1.1 if语句
  • 要构造分支结构可以使用ifelifelse关键字,所谓关键字就是有特殊含义的单词
  • 程序语法:
if (条件表达式):
    程序处理模块

注意:Python中没有用花括号来构造代码块而是使用了缩进的方式来表示代码的层次结构,默认缩进为四个空格,建议大家不要使用制表键或者设置你的代码编辑工具自动将制表键变成4个空格

# 示例:用户身份验证
userName = input('请输入用户名: ')
passWord = input('请输入口令: ')
# 用户名是admin且密码是123456则身份验证成功否则身份验证失败
if userName == 'admin' and passWord == '123456':
    print('身份验证成功!')
else:
    print('身份验证失败!')
  • pass语句
    • 在if语句中,可以使用pass语句来作为程序处理代码块,充当"占位符",表示什么也不执行,不起任何作用
# pass语句
if 3 < 9:    # 在python3中,表达式可以移除冗余括号,使程序更简洁
    pass
  • if语句综合练习:根据分数给出成绩等级评定,分为ABCDE五个级别
'''
if语句练习:成绩评定

要求:
90分以上(含90分),评定为A
80分以上(含80分),评定为B
70分以上(含70分),评定为C
60分以上(含60分),评定为D
60分以下,评定为E
考试成绩由键盘输入,存入变量

'''
gradeInput = float(input("请输入考试分数(0-100):"))
if gradeInput >= 90:
    print("成绩评定为:A")
if 80 <= gradeInput < 90:    # 简化链式比较 gradeInput >= 80 and gradeInput < 90
    print("成绩评定为:B")
if 70 <= gradeInput < 80:
    print("成绩评定为:C")
if 60 <= gradeInput < 70:
    print("成绩评定为:D")
if gradeInput < 60:
    print("成绩评定为:E")

"Flat is better than nested." —— <Python之禅>

1.2 if...else语句
  • 如果要构造出更多的分支,可以使用if...elif...else...结构或者嵌套的if...else...结构
# 练习:根据输入的成绩,来判断是否需要补考
score = float(input("请输入考试成绩(0-100):"))
if score >= 60:
    print("恭喜,考试通过!")
else:
    print("很遗憾,你可能需要补考!")
# if...else嵌套练习
# 如果成绩大于等于90,则输出优秀;否则,如果大于等于60输出合格,小于60则输出不及格
score = float(input("请输入考试成绩(0-100):"))
if score >= 90:
    print("成绩优秀")
else:
    if score >= 60:
        print("成绩合格")
    else:
        print("不合格")

注意:if...else的配对问题是严格遵循缩进的(跟它平级的配对),这是Python语言较为严谨的地方

1.3 if语句综合练习
  • 练习1:成绩转换
"""
练习1:百分制成绩转换为等级制成绩

"""
score = float(input('请输入成绩: '))
if score >= 90:
    grade = '优秀'
elif score >= 80:
    grade = '良好'
elif score >= 70:
    grade = '一般'
elif score >= 60:
    grade = '合格'
else:
    grade = '不合格'
print('对应的等级是:', grade)
  • 练习2:海伦公式
"""
if语句完成海伦公式:通过边长完成三角形面积计算

编程要求:判断输入的边长能否构成三角形,如果能则计算出三角形的周长和面积
"""
a = float(input("a = "))
b = float(input("b = "))
c = float(input("c = "))
if a + b > c and a + c > b and b + c > a:
    print("周长等于:%f" % (a + b + c))
    p = (a + b + c ) / 2
    area = (p * (p - a) * (p - b) * (p - c)) ** 0.5
    print("面积等于:%f" % area)
else:
    print("不能构成三角形")
# 练习2运行结果
a = 1
b = 1
c = 1
周长等于:3.000000
面积等于:0.433013
  • 练习3:模拟出租车收费
'''
练习3:模拟出租车收费

编程要求:
3公里以内,收取13元起步费用
超出3公里,则单价2.3元/公里
空驶费用,超出15公里,则每超1公里加收单价的50%作为空驶费用(即3.45元/公里)
通过输入驾驶里程来计算费用
'''
miles = int(input("请输入行驶里程(公里):"))
prices = 0
if miles <= 3:
    prices = 13
else:
    if miles <= 15:
        prices = 2.3 * (miles - 3) + 13
    else:
        prices = 2.3 * 12 + 13 + (miles - 15) * 2.3 * 1.5
print("打车费用为:%.2f元" % prices)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。