20242128 实验二《Python程序设计》实验报告

课程:《Python程序设计》
班级: 2421
姓名: 翁哲铭
学号:20242128
实验教师:王志强
实验日期:2025年3月26日
必修/选修: 公选课
1.实验内容
(1)设计并完成一个计算器程序,完成了复数四则运算和实数加、减、乘、除、平方、开方、三角函数、lg等运算。
(2)编写一个四则随机运算程序
(3)熟悉基本语法、判定语句、循环语句、逻辑运算等知识点
(4)代码上传Gitee
2. 实验过程及结果
编写了一个功能较为完善的计算器程序,加强了对if语句、while语句、函数运用、条件控制的运用和理解
设计并完成一个完整的应用程序,完成加减乘除模等运算
(一)设计思路:
(1)显示欢迎界面以示礼貌
(2)将加减乘除模等不同功能拆分为独立函数(除法检查除数是否为0,对数检查底数和真数是否有效)
(3)通过while语句循环
(4)输入数据时,根据用户选择转换输入类型(复数/整数/有理数)
注意:选择复数类型时,Python的复数语法要求虚数单位为j,所以用.replace('i','j')后缀将所有小写字母i替换为j,替换虚数单位。
(5)输入运算符时,通过if-elif-else结构匹配运算符(无效运算符时提示后跳过本次循环,重新输入)
(6)可视化输出结果
(二)写好代码后分断点调试

> 代码:
> import math

> def get_real_number():
>     """获取实数输入"""
>     while True:
>         try:
>             num = float(input("请输入数字:"))
>             return num
>         except ValueError:
>             print("输入无效,请输入实数!")

> def get_complex_number():
>     """获取复数输入"""
>     while True:
>         try:
>             text = input("请输入复数(格式如3+4j):").replace(' ', '')
>             num = complex(text)
>             return num
>         except ValueError:
>             print("格式错误,请按示例格式输入!")

> def real_operations():
>     """实数运算处理"""
>     print("\n可用运算符:+  -  *  /  ^2  sqrt  sin  cos  tan  lg")
>     op = input("请选择运算符:").strip().lower()
>     
>     # 二元运算
>     if op in ('+', '-', '*', '/'):
>         print("输入第一个数:")
>         a = get_real_number()
>         print("输入第二个数:")
>         b = get_real_number()
>         
>         try:
>             if op == '+': res = a + b
>             elif op == '-': res = a - b
>             elif op == '*': res = a * b
>             elif op == '/': res = a / b
>             print(f"计算结果:{res:.4f}")
>         except ZeroDivisionError:
>             print("错误:除数不能为零!")
>     
>     # 一元运算
>     elif op in ('^2', 'sqrt', 'sin', 'cos', 'tan', 'lg'):
>         print("输入操作数:")
>         a = get_real_number()
>         
>         try:
>             if op == '^2': res = a ** 2
>             elif op == 'sqrt':
>                 if a < 0: raise ValueError
>                 res = math.sqrt(a)
>             elif op == 'sin': res = math.sin(math.radians(a))
>             elif op == 'cos': res = math.cos(math.radians(a))
>             elif op == 'tan': res = math.tan(math.radians(a))
>             elif op == 'lg':
>                 if a <= 0: raise ValueError
>                 res = math.log10(a)
>             print(f"计算结果:{res:.4f}")
>         except ValueError:
>             print("错误:输入参数超出有效范围!")
>     
>     else:
>         print("无效的运算符!")

> def complex_operations():
>     """复数四则运算"""
>     print("\n输入第一个复数:")
>     a = get_complex_number()
>     print("输入第二个复数:")
>     b = get_complex_number()
>     op = input("选择运算符(+  -  *  /):").strip()
>     
>     try:
>         if op == '+': res = a + b
>         elif op == '-': res = a - b
>         elif op == '*': res = a * b
>         elif op == '/': res = a / b
>         else:
>             print("无效运算符!")
>             return
>         print(f"计算结果:{res:.4f}")
>     except ZeroDivisionError:
>         print("错误:除数不能为零!")

> def main():
>     print("========= wzm科学计算器 =========")
>     while True:
>         print("\n1. 实数运算模式")
>         print("2. 复数运算模式")
>         print("q. 退出程序")
>         choice = input("请选择模式:").lower()
>         
>         if choice == '1':
>             real_operations()
>         elif choice == '2':
>             complex_operations()
>         elif choice == 'q':
>             print("感谢使用wzm科学计算器!")
>             break
>         else:
>             print("无效的输入,请重新选择!")

> if __name__ == "__main__":
>     main()

(三)实验结果


(4)代码托管到码云


gitee代码:https://gitee.com/wengzhe-ming/PythonProject/blob/master/计算机.py
(四)考核基本语法、判定语句、循环语句、逻辑运算等知识点
1、基本语法
(1)模块导入引用数学函数库:import math
(2)输入输出:如print("")和input("请输入一个数:")
(3)函数定义:def关键字定义函数,如def jiafa(num1,num2): return num1 + num2
(4)变量赋值:如flag = True(布尔值),moat == input(),num1 = complex()
2、判定语句
(1)if-elif-else结构
(2)条件表达式:如if choice =="+":
3、循环语句
(1)while循环
4、逻辑运算
(1)布尔运算符:如if conti =="Y" or conti "y":
(2)比较运算符:如,<=
三. 实验过程中遇到的问题和解决过程
1.复数输入格式验证问题
问题现象:
用户输入3+4i(使用字母i)或5j6(格式错误)时程序报错

解决方法:询问deepseek复数语法要求虚数单位为j,可用.replace('i','j')后缀替换虚数单位,把所有小写字母i替换为j 。
四、其他(感悟、思考等)
Python很有趣,很方便,还是得多练习,多学习。
参考资料
《Python编程从入门到实践》

posted @ 2025-03-30 11:14  1601584267wzm  阅读(46)  评论(0)    收藏  举报