2024-2025-2 《Python程序设计》实验二报告
学号 2024-2025-2 《Python程序设计》实验二报告
课程:《Python程序设计》
班级: 2413
姓名: 廖江泽
学号:20241311
实验教师:王志强
实验日期:2025年3月26日
必修/选修: 公选课
1.实验内容
-
设计并完成一个完整的计算器,完成加减乘除模等运算,功能多多益善;
-
考核基本语法、判定语句、循环语句、逻辑运算等知识点;
2. 实验过程及结果
实验代码如下:
import math
def Csum(num1, num2):
return num1 + num2
def Csub(num1, num2):
return num1 - num2
def Cmulti(num1, num2):
return num1 * num2
def CDiv(num1, num2):
if num2 == 0:
print("除数不能为0")
return None
return num1 / num2
def logab(a, b):
if a <= 0 or b <= 0 or b == 1:
print("对数的底必须大于0且不等于1,真数必须大于0")
return None
return math.log(a, b)
flag = True
while flag:
calc_type = input("请问:需要复数(1)还是整数(2)运算?\n")
if calc_type == "1":
try:
num1 = complex(input("请输入一个复数(如 1+2j):"))
num2 = complex(input("请输入另一个复数(如 3+4j):"))
except ValueError:
print("输入的复数格式不正确,请重新输入!")
continue
else:
try:
num1 = int(input("请输入一个整数:"))
num2 = int(input("请输入另一个整数:"))
except ValueError:
print("输入的整数格式不正确,请重新输入!")
continue
choice = input("请输入运算符(+ - * / log):")
if choice == "+":
print(f"{num1} {choice} {num2} = {Csum(num1, num2)}")
elif choice == "-":
print(f"{num1} {choice} {num2} = {Csub(num1, num2)}")
elif choice == "*":
print(f"{num1} {choice} {num2} = {Cmulti(num1, num2)}")
elif choice == "/":
result = CDiv(num1, num2)
if result is not None:
print(f"{num1} {choice} {num2} = {result}")
elif choice == "log":
result = logab(num1, num2)
if result is not None:
print(f"log以{num2}为底{num1}的对数 = {result}")
else:
print("无效的运算符,请重新输入!")
continue
conti = input("是否继续?Y/N\n")
if conti.lower() == "y":
flag = True
else:
flag = False
运行结果如下:
托管代码到gitee:
提交成功:
3. 实验过程中遇到的问题和解决过程
- 问题1:在加入复数这个功能后运行时出错
- 问题1解决方案:发现python的复数是a+bj而不是a+bi,这与平时数学学到的略有出入,需注意。
4. 感悟
- 感受到了python这种高级语言和其他的高级语言一样,假如与平时的数学计算要实现同样的成果,在格式等方面有所微调,比如复数的虚部平时数学用的是i,而python用的是j。所以说我们在学习python的过程中应该注重细节,不能凭感觉决定代码,要做到严谨,否则一个细微的差别就可能导致一整个庞然大物的程序报错无法运行。