20242401 2024-2025-2 《Python程序设计》实验二报告
课程:《Python程序设计》
班级: 2424
姓名: 韦秉辰
学号:20242401
实验教师:王志强
实验日期:2025年3月26日
必修/选修: 公选课
一、实验内容
-
设计并完成一个计算器的应用程序,包含基础的整数的加减乘除模运算,同时还要能完成如浮点数、复数的运算以及开方、指数、对数、上三角函数运算等等。
-
考核基本语法、判定语句、循环语句、逻辑运算等知识点。
二、 实验过程及结果
(一)思考过程:
- 运算不局限于四则运算和整数运算,加上三角函数和log、pow、sqrt等多种运算形式,将复数加入运算。
- 复数无法用三角函数等进行运算,当用户输入时要直接结束本次运算。
(二)代码实现:
import math
def SIN(num1):
return math.sin(num1)
def COS(num1):
return math.cos(num1)
def TAN(num1):
return math.tan(num1)
def LOG(num1,num2):
return math.log(num1,num2)
def SQRT(num1):
return math.sqrt(num1)
def POW(num1,num2):
return math.pow(num1,num2)
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 0
return num1 / num2
flag = True
while flag:
choice = input("请输入运算符(+-*/ sin cos tan log pow sqrt):")
choice1 =input("请问:需要复数(1)还是整数(2)运算?")
if choice1 == "1":
if choice != ['sin','cos','tan','log','pow','sqrt']:
if choice == "+":
num1 = complex(input("请输入一个数"))
num2 = complex(input("请输入另一个数"))
print("num1 ", choice, " num2 = ",Csum(num1 , num2))
elif choice == "*":
num1 = complex(input("请输入一个数"))
num2 = complex(input("请输入另一个数"))
print("num1 ", choice, " num2 = ",Cmulti(num1, num2))
elif choice == "/":
num1 = complex(input("请输入一个数"))
num2 = complex(input("请输入另一个数"))
print("num1 ", choice, " num2 = ",CDiv(num1, num2))
elif choice == "-":
num1 = complex(input("请输入一个数"))
num2 = complex(input("请输入另一个数"))
print("num1 ", choice, " num2 = ",Csub(num1, num2))
else:
print("请重新输入")
continue
else:
if choice == "+":
num1 = int(input("请输入一个数:"))
num2 = int (input("请输入另一个数:"))
print("num1 ", choice, " num2 = ",Csum(num1, num2))
if choice == "*":
num1 = int(input("请输入一个数:"))
num2 = int (input("请输入另一个数:"))
print("num1 ", choice, " num2 = ",Cmulti(num1, num2))
if choice == "/":
num1 = int(input("请输入一个数:"))
num2 = int(input("请输入另一个数:"))
print("num1 ", choice, " num2 = ",CDiv(num1, num2))
if choice == "-":
num1 = int(input("请输入一个数:"))
num2 = int(input("请输入另一个数:"))
print("num1 ", choice, " num2 = ",Csub(num1, num2))
if choice == "sin":
num1 = int(input("请输入一个数:"))
print(choice,"num1 = ",SIN(num1))
if choice == "cos":
num1 = int(input("请输入一个数:"))
print(choice,"num1 = ",COS(num1))
if choice == "tan":
num1 = int(input("请输入一个数:"))
print(choice,"num1 = ",TAN(num1))
if choice == "log":
num1 = int(input("请输入一个数:"))
num2 = int(input("请输入另一个数:"))
print("log以","num1为底,","num2 = ",LOG(num1,num2))
if choice == "pow":
num1 = int(input("请输入一个数:"))
num2 = int(input("请输入另一个数:"))
print("运算结果为:",POW(num1,num2))
if choice == "sqrt":
num1 = int(input("请输入一个数:"))
print("运算结果为:",SQRT(num1))
conti = input("是否继续?Y/N")
if conti =="Y" or conti == "y":
flag = True
else:
flag = False
(三)运行结果:
1.复数运算:
2.整数运算:
三、实验过程中遇到的问题和解决过程
- 问题1:复数无法进行三角函数运算,一开始测试时无运算结果。
- 问题1解决方案:当所选运算不是四则运算,选择复数运算时,直接用continue跳过此次运算,询问下一次运算是否进行。
四、其他(感悟、思考等)
markdown格式很好用,如果不记得语法格式,可以用Typora写完之后再复制到博客上。