20242309实验二《Python程序设计》实验报告
2024239 2024-2025-2 《Python程序设计》实验2报告
课程:《Python程序设计》
班级: 2423
姓名: 邱贤达
学号:20242309
实验教师:王志强
实验日期:2025年3月26日
必修/选修: 公选课
1.实验内容
(1)设计并完成一个完整的应用程序,以完成加减乘除模等运算。
(2)设计一个小学生算术题生成器
(3)将代码上传到gitee
2. 实验过程及结果
(1)设计并完成一个完整的应用程序,以完成加减乘除模等运算
-
题目分析
经过分析,本程序具有以下功能:
a.可以做如下8种运算:1.幂运算 2.取余运算 3.开方运算 4.阶乘运算 5.绝对值运算 6.正弦运算 7.余弦运算 8.四则运算
b.针对阶乘、平方根,判断是否有输入负数——增强程序健壮性
c.四则运算可进行复数运算 -
根据以上设计,代码设计如下:
'''
@File : 实验2.py
@Time : 2025/03/27 20:50:04
@Author : _unknown
@Version : 1.0
@Desc : 一个高级又弱智的计算器
'''
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 mi(a,b):
return a**b
def mod(a,b):
return a%b
def sqrt(num):
return math.sqrt(num)
def factorial(num):
return math.factorial(num)
def absolute(num):
return abs(num)
def sin(num):
return math.sin(num)
def cos(num):
return math.cos(num)
def tan(num):
return math.tan(num)
flag = True
while flag:
print("请输入需要进行的运算序号:1.幂运算 2.取余运算 3.开方运算 4.阶乘运算 5.绝对值运算 6.正弦运算 7.余弦运算 8.四则运算")
choice1 = input()
if choice1 == "8":
choice = input("请输入运算符(+-*/):")
if input("请问:需要复数(1)还是整数(2)运算?\n")=="1":
num1 = complex(input("请输入一个数:"))
num2 = complex(input("请输入另一个数:"))
else:
num1 = int(input("请输入一个数:"))
num2 = int(input("请输入另一个数:"))
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 choice1 == "1":
num1 = int(input("请输入一个底数:"))
num2 = int(input("请输入一个指数:"))
print(num1,"的",num2,"次方 = ", mi(num1, num2))
elif choice1 == "2":
num1 = int(input("请输入一个数:"))
num2 = int(input("请输入一个模数:"))
print(num1,"mod",num2," = ", mod(num1, num2))
elif choice1 == "3":
num1 = int(input("请输入一个数:"))
if num1 < 0:
print("负数没有实数平方根")
continue
print(num1, "的平方根 = ", sqrt(num1))
elif choice1 == "4":
num1 = int(input("请输入一个数:"))
if num1 < 0:
print("负数没有阶乘")
continue
print(num1, "的阶乘 = ", factorial(num1))
elif choice1 == "5":
num1 = int(input("请输入一个数:"))
print(num1, "的绝对值 = ", absolute(num1))
elif choice1 == "6":
num1 = float(input("请输入一个数:"))
print("sin(",num1,") = ", sin(num1))
elif choice1 == "7":
num1 = float(input("请输入一个数:"))
print("cos(",num1,") = ", cos(num1))
elif choice1 == "8":
num1 = float(input("请输入一个数:"))
print("tan(",num1,") = ", tan(num1))
else:
print("输入错误")
conti = input("是否继续?Y/N\n")
if conti == "Y" or conti == "y":
flag = True
else:
flag = False
- 实验结果
如下图所示



(2)设计一个小学生算术题生成器
-
题目分析
经过分析,本程序具有以下功能:
a.可以生成加减乘除四种运算
b.小学生可以选择生成数值的范围
c.答题结束后可以看到自己的成绩
-
根据以上设计,代码设计如下:
'''
@File : 出题机.py
@Time : 2025/03/27 21:42:03
@Author : _unknown
@Version : 1.0
@Desc : 适合小学二年级学生的四则运算出题机
'''
import random
def get_a_question(x):
num1 = random.randint(1,x)
num2 = random.randint(1,x)
op = random.choice("+-*/")
if op == "+":
res = num1 + num2
elif op == "-":
res = num1 - num2
elif op == "*":
res = num1 * num2
else:
res = num1 / num2
print(num1, op, num2, "= ?")
ans = float(input())
if op == "/":
res = int(res * 10)
ans = int(ans * 10)
ans = int(ans)
if ans == res:
print("您做对啦+1分")
return 1
else:
print("您做错啦 不加分")
return 0
flag = True
score = 0
maxn = int(input("您想做多少以内的四则运算题?"))
print("请开始答题(注意除法保留一位小数(四舍五也舍))")
while flag == 1:
score += get_a_question(maxn)
flag = int(input("您是否需要继续答题?(1/0)"))
print("您的得分是:", score)
- 实验结果
如下图所示

(3)将代码上传到gitee
3. 实验过程中遇到的问题和解决过程
- 问题1:出题机除法运算难以判断相等
- 问题1解决方案:仅保留一位小数,*10后转化成整数比较
- 问题2:单目运算输入两个数感觉很碍事,不人性化
- 问题2解决方案:改变选择顺序,先选择需要进行哪种运算,再读入需要运算的数
其他(感悟、思考等)
感悟:
-
python的代码比c语言简单很多,特别是省去了一大堆int定义
-
在实践中学习往往能取得更好的效果,比如巩固了random.choice这个函数,之前有印象,但单纯的记住无法掌握,只有运用后才能深刻理解。
参考资料
无

浙公网安备 33010602011771号