【Python学习篇】Python实验小练习——选择结构(七)

简介: 【Python学习篇】Python实验小练习——选择结构(七)

一、实验目的:

       掌握条件语句中逻辑表达式的正确书写规则,掌握但分支、双分支和多分支条件语句的使用方法。

二、实验环境:

       联网计算机一台/每人,内装Windows 7以上操作系统和安装Python 3.7集成开发环境IDLE。

三、实验内容:

       1.某校三好学生的评定标准为:语文和数学两科的平均成绩大于90,且每科成绩不低于85分,编写程序进行判断并输出判断结果。

       2.某网吧根据上网时间来计算上网费用,计算规则如下,编程实现自动计算计费功能:

 (1)上网时间为10小时(含10小时)以内,基本网费20元;

 (2)上网时间为10-50(含50小时)以内,除基本网费外,超过10小时的部分每小时1.5元;

(3)上网时间超过50小时,除基本网费外,超过 10小时的部分每小时1元

       3.编写程序用于判断输入的年份是否为闰年,判断条件是能被400整除或者被4整除但是不能被100整除的年份是闰年。

       4.某商场购物打折范围如下:消费在200元以内不打折,200-500元范围内打九折,超过500元打八折,请根据消费金额计算最终交费金额的程序代码

四、实验步骤与结果

1. 新建文件夹并命名为学号-姓名-实验一。

2. 安装 Python 解释器Python 3.7 集成开发环境IDLE,并进入IDLE。

3. 依次输入自己编好的程序实验内容1-7的源程序,分别命名为sy1_1.py - sy1_5.py 并保存至已建好的文件夹中。

4. 检查已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有错,及时改正。

5. 运行程序并分析运行结果是否合理。在运行时要注意当输入不同的数据时所得结果是否正确,应测试两组以上数据,分别检查在不同情况下结果是否正确。

列出1-5题源程序清单并记录上机运行结果。

1. 某校三好学生的评定标准为:语文和数学两科的平均成绩大于90,且每科成绩不低于85分,编写程序进行判断并输出判断结果。

源代码:

def is_excellent_student(chinese_score, math_score):
    # 计算两科的平均成绩
    average_score = (chinese_score + math_score) / 2
    
    # 判断是否满足三好学生的评定标准
    if average_score > 90 and chinese_score >= 85 and math_score >= 85:
        return True
    else:
        return False
 
# 输入学生的语文和数学成绩
chinese_score = float(input("请输入学生的语文成绩:"))
math_score = float(input("请输入学生的数学成绩:"))
 
# 判断并输出结果
if is_excellent_student(chinese_score, math_score):
    print("该学生符合三好学生的评定标准。")
else:
    print("该学生不符合三好学生的评定标准。")

运行结果:

2.某网吧根据上网时间来计算上网费用,计算规则如下,编程实现自动计算计费功能:

 (1)上网时间为10小时(含10小时)以内,基本网费20元;

 (2)上网时间为10-50(含50小时)以内,除基本网费外,超过10小时的部分每小时1.5元;

 (3)上网时间超过50小时,除基本网费外,超过 10小时的部分每小时1元

源代码:

def calculate_internet_fee(hours):
    base_fee = 20  # 基本网费
    extra_fee = 0  # 额外费用
 
    if hours <= 10:
        # 当上网时间在10小时及以下时,只收取基本网费
        total_fee = base_fee
    elif hours <= 50:
        # 当上网时间在10到50小时之间时,额外费用按1.5元每小时计算
        extra_fee = (hours - 10) * 1.5
        total_fee = base_fee + extra_fee
    else:
        # 当上网时间超过50小时时,额外费用按1元每小时计算
        extra_fee = (hours - 10) * 1
        total_fee = base_fee + extra_fee
 
    return total_fee
 
# 输入上网时间
hours = float(input("请输入上网时间(小时):"))
 
# 计算费用
fee = calculate_internet_fee(hours)
 
# 输出计费结果
print(f"总费用为:{fee}元")

运行效果:

3.编写程序用于判断输入的年份是否为闰年,判断条件是能被400整除或者被4整除但是不能被100整除的年份是闰年。

源代码:

def is_leap_year(year):
    # 判断是否为闰年
    if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0):
        return True
    else:
        return False
 
# 输入年份
year = int(input("请输入一个年份:"))
 
# 判断并输出结果
if is_leap_year(year):
    print(f"{year}年是闰年。")
else:
    print(f"{year}年不是闰年。")

运行效果:

4.某商场购物打折范围如下:消费在200元以内不打折,200-500元范围内打九折,超过500元打八折,请根据消费金额计算最终交费金额的程序代码

def calculate_final_payment(amount):
    # 根据消费金额判断打折情况
    if amount <= 200:
        # 200元以内不打折
        discount = 1
    elif amount <= 500:
        # 200-500元范围内打九折
        discount = 0.9
    else:
        # 超过500元打八折
        discount = 0.8
    
    # 计算最终交费金额
    final_payment = amount * discount
    return final_payment
 
# 输入消费金额
amount = float(input("请输入消费金额:"))
 
# 计算最终交费金额
final_payment = calculate_final_payment(amount)
 
# 输出最终交费金额
print(f"最终交费金额为:{final_payment:.2f}元")

运行效果:

五、总结:

1.实验过程中的问题及解决方法:

问题描述:用户输入了非数字的字符,导致程序崩溃。

解决方法:在用户输入后添加输入验证,确保输入的是有效的数字。可以使用try和except语句来捕获异常,并提示用户重新输入。

问题描述:计算结果出现了不期望的小数位数。

解决方法:在输出结果时,使用格式化字符串来控制小数位数。

问题描述:打折逻辑错误,例如在200元以内也给了折扣。

解决方法:仔细检查打折逻辑,确保每个条件分支都正确无误。

问题描述:用户界面不友好,用户不清楚如何输入。

解决方法:提供清晰的提示信息,告诉用户应该输入什么类型的数据。

问题描述:程序在面对异常输入时容易崩溃。

解决方法:提高程序的健壮性,处理可能出现的异常情况,例如输入为空、输入为负数等。

2.实验收获:

编程语言熟练度:通过编写程序,加深了对Python语言的理解和使用,包括变量、控制结构、函数定义等。

算法实现:学会了如何将数学逻辑或业务逻辑转化为计算机程序,实现特定的功能,如打折计算。

输入输出处理:掌握了如何从用户那里获取输入,并将计算结果输出给用户,包括错误处理和用户交互。

调试技巧:在遇到程序错误时,学会了如何使用调试工具或打印语句来定位问题,并逐步修复。

逻辑思维:在设计打折逻辑时,锻炼了逻辑思维能力,确保程序能够正确处理各种边界情况。

异常处理:学会了如何预测可能的异常情况,并在代码中加入相应的处理机制,提高程序的健壮性。

📝大佬觉得本文有所裨益,不妨轻点一下👍给予鼓励吧!

❤️❤️❤️本人虽努力,但能力尚浅,若有不足之处,恳请各位大佬不吝赐教,您的批评指正将是我进步的动力!😊😊😊

💖💖💖若您认为此篇文章对您有所帮助,烦请点赞👍并收藏🌟,您的支持是我前行的最大动力!

🚀🚀🚀任务在默默中完成,价值在悄然间提升。让我们携手共进,一起加油,迎接更美好的未来!🌈🌈🌈


目录
相关文章
|
1天前
|
Python
python pandas学习(一)
该代码段展示了四个主要操作:1) 删除指定列名,如商品id;2) 使用正则表达式模糊匹配并删除列,例如匹配订单商品名称1的列;3) 将毫秒级时间戳转换为带有时区调整的日期时间格式,并增加8小时以适应本地时区;4) 将列表转换为DataFrame后保存为Excel文件,文件路径和名称根据变量拼接而成。
12 3
|
1月前
|
数据可视化 数据挖掘 大数据
1.1 学习Python操作Excel的必要性
学习Python操作Excel在当今数据驱动的商业环境中至关重要。Python能处理大规模数据集,突破Excel行数限制;提供丰富的库实现复杂数据分析和自动化任务,显著提高效率。掌握这项技能不仅能提升个人能力,还能为企业带来价值,减少人为错误,提高决策效率。推荐从基础语法、Excel操作库开始学习,逐步进阶到数据可视化和自动化报表系统。通过实际项目巩固知识,关注新技术,为职业发展奠定坚实基础。
|
2月前
|
Python
Python学习的自我理解和想法(10)
这是我在千锋教育B站课程学习Python的第10天笔记,主要学习了函数的相关知识。内容包括函数的定义、组成、命名、参数分类(必须参数、关键字参数、默认参数、不定长参数)及调用注意事项。由于开学时间有限,记录较为简略,望谅解。通过学习,我理解了函数可以封装常用功能,简化代码并便于维护。若有不当之处,欢迎指正。
|
2月前
|
Python 容器
Python学习的自我理解和想法(9)
这是我在B站跟随千锋教育学习Python的第9天,主要学习了赋值、浅拷贝和深拷贝的概念及其底层逻辑。由于开学时间紧张,内容较为简略,但希望能帮助理解这些重要概念。赋值是创建引用,浅拷贝创建新容器但元素仍引用原对象,深拷贝则创建完全独立的新对象。希望对大家有所帮助,欢迎讨论。
|
2月前
|
存储 安全 索引
Python学习的自我理解和想法(8)
这是我在B站千锋教育学习Python的第8天,主要内容是元组。元组是一种不可变的序列数据类型,用于存储一组有序的元素。本文介绍了元组的基本操作,包括创建、访问、合并、切片、遍历等,并总结了元组的主要特点,如不可变性、有序性和可作为字典的键。由于开学时间紧张,内容较为简略,望见谅。
|
23天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
2月前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
52 14
|
2月前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
116 2

热门文章

最新文章

推荐镜像

更多