一、实验目的:
掌握条件语句中逻辑表达式的正确书写规则,掌握但分支、双分支和多分支条件语句的使用方法。
二、实验环境:
联网计算机一台/每人,内装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语言的理解和使用,包括变量、控制结构、函数定义等。
算法实现:学会了如何将数学逻辑或业务逻辑转化为计算机程序,实现特定的功能,如打折计算。
输入输出处理:掌握了如何从用户那里获取输入,并将计算结果输出给用户,包括错误处理和用户交互。
调试技巧:在遇到程序错误时,学会了如何使用调试工具或打印语句来定位问题,并逐步修复。
逻辑思维:在设计打折逻辑时,锻炼了逻辑思维能力,确保程序能够正确处理各种边界情况。
异常处理:学会了如何预测可能的异常情况,并在代码中加入相应的处理机制,提高程序的健壮性。
📝大佬觉得本文有所裨益,不妨轻点一下👍给予鼓励吧!
❤️❤️❤️本人虽努力,但能力尚浅,若有不足之处,恳请各位大佬不吝赐教,您的批评指正将是我进步的动力!😊😊😊
💖💖💖若您认为此篇文章对您有所帮助,烦请点赞👍并收藏🌟,您的支持是我前行的最大动力!
🚀🚀🚀任务在默默中完成,价值在悄然间提升。让我们携手共进,一起加油,迎接更美好的未来!🌈🌈🌈