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编程从入门到实践》
浙公网安备 33010602011771号