学号 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("无效的运算符,请重新输入!")continueconti = input("是否继续?Y/N\n")
if conti.lower() == "y":flag = True
else:flag = False
运行结果如下:
3. 实验过程中遇到的问题和解决过程
- 问题1:在加入复数这个功能后运行时出错
- 问题1解决方案:发现python的复数是a+bj而不是a+bi,这与平时数学学到的略有出入,需注意。
4. 感悟
感觉python比c语言更加简洁方便
5. 参考资料
- 《0基础学python》