20241227曹鹏泰 《Python程序设计》实验二报告
学号: 20241227《Python程序设计》实验二报告
课程:《Python程序设计》
班级: 2412
姓名: 曹鹏泰
学号:20241227
实验教师:王志强
实验日期:2025年3月26日
必修/选修: 公选课
一.实验内容:
1.设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。
2.考核基本语法、判定语句、循环语句、逻辑运算等知识点。
二. 实验要求:
创建工程项目,使用Python语言实现具体的操作运算,并完成程序调试和运行,代码托管到码云。
(注:在华为ECS服务器(OpenOuler系统)和物理机(Windows/Linux系统)上使用VIM、PDB、IDLE、Pycharm等工具编程实现。本实验在pycharm上完成)
三. 实验过程及结果:(https://gitee.com/uchiha-p/xiao-organization.git;)
1.实验基础代码和结果:(上课跟老师一起敲的)
代码:
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 0
return num1 / num2
def logab(a,b):
return math.log(a,b)
flag = True
while flag:
if input("请问:需要复数(1)还是整数(2)运算?\n")=="1":
num1 = complex(input("请输入一个数:"))
num2 = complex(input("请输入另一个数:"))
else:
num1 = int(input("请输入一个数:"))
num2 = int(input("请输入另一个数:"))
choice = input("请输入运算符(+-*/ log):")
if choice == "+":
print("num1 ",choice, " num2 = ", Csum(num1, num2))
elif choice =="-":
print("num1 ",choice, " num2 = ", Csub(num1, num2))
elif choice == "*":
print("num1 ",choice, " num2 = ", Cmulti(num1, num2))
elif choice == "/":(
print("num1 ",choice, " num2 = ", CDiv(num1, num2)))
elif choice == "log":
print("log以",num2,"为底",num1, "的对数 = ", logab(num1, num2))
conti = input("是否继续?Y/N\n")
if conti == "Y" or conti == "y":
flag = True
else:
flag = False
结果:
2.实验升级代码:(增加了实现三角函数运算的功能)
'''
三角函数计算器
制作者:曹鹏泰
发行时间:3/30
'''
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 0
return num1 / num2
def logab(a, b):
return math.log(a, b)
flag = True
while flag:
print("请选择要进行的操作:")
print("a. 进行复数或整数的运算(+-*/ log)")
print("b. 进行三角函数的计算(sin/cos/tan)")
operation_choice = input("请输入选项(a/b):")
if operation_choice == "a":
if input("请问:需要复数(1)还是整数(2)运算?\n") == "1":
num1 = complex(input("请输入一个数:"))
num2 = complex(input("请输入另一个数:"))
else:
num1 = int(input("请输入一个数:"))
num2 = int(input("请输入另一个数:"))
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 == "/":
print(f"{num1} {choice} {num2} = {CDiv(num1, num2)}")
elif choice == "log":
print(f"log以{num2}为底{num1}的对数 = {logab(num1, num2)}")
elif operation_choice == "b":
print("请选择要计算的三角函数:")
print("1. 正弦(sin)")
print("2. 余弦(cos)")
print("3. 正切(tan)")
trigonometric_choice = input("请输入选项(1/2/3):")
angle = float(input("请输入角度值:")) #此处注意要将角度值转换成弧度制
radian = math.radians(angle) #math库中的三角函数是弧度的
if trigonometric_choice == '1':
result = math.sin(radian)
print(f"{angle}度的正弦值是:{result}")
elif trigonometric_choice == '2':
result = math.cos(radian)
print(f"{angle}度的余弦值是:{result}")
elif trigonometric_choice == '3':
result = math.tan(radian)
print(f"{angle}度的正切值是:{result}")
else:
print("无效的选项,请重新运行程序。")
else:
print("无效的选项,请重新运行程序。")
continue
conti = input("是否继续?Y/N\n")
if conti == "Y" or conti == "y":
flag = True
else:
flag = False
结果:
3.实验比较:
(C语言中计算sin(x)的代码)
#include <stdio.h>
#include <math.h>
// 计算阶乘
double factorial(int n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
// 计算sin(x)
double sin_x(double x) {
double sum = 0;
int n = 0;
double term;
do {
term = pow(-1, n) * pow(x, 2 * n + 1) / factorial(2 * n + 1);
sum += term;
n++;
} while (fabs(term) >= 1e-6); // 设置精度,当项的绝对值小于1e-6时停止
return sum;
}
int main() {
double x;
printf("请输入x的值:");
scanf("%lf", &x);
double result = sin_x(x);
printf("sin(%.2lf) = %.4lf\n", x, result);
return 0;
}
经过比较发现python,永远的神!
三.实验中遇到的问题和解决方法:
1.总是将复数(1+j)写成(1+i);
解决方法:要牢记python中的复数用j。
2.if 的判断太多,与函数调用夹在一起,看的很难受;
解决方法:多加练习,争取熟练掌握这几种语句。
3.对python中的math库不太了解,导致直接将角度值作为函数参数,得不到正确的运算结果。
解决方法:
import math
angle = 90 # 假设角度为90度
radian = math.radians(angle)
print(radian)
四.其他(感悟、思考等)
1.功能拓展:当前程序已包含了基本的数学运算和三角函数计算,可以考虑加入更多复杂的数学函数,如指数运算、开方运算、反三角函数等。
2.同时,可以支持更多的数据类型,如分数、矩阵运算等。此外,还能引入图形化界面,让程序操作更加直观便捷。
五.参考资料
1.《makedown使用语法》
2.《零基础学python》