20242126 实验二《Python程序设计》实验报告
20242126 2024-2025-2 《Python程序设计》实验二报告
课程:《Python程序设计》
班级: 2421
姓名: 邹清楠
学号:20242126
实验教师:王志强
实验日期:2025年3月26日
必修/选修: 公选课
1. 实验内容
-
设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善
-
考核基本语法、判定语句、循环语句、逻辑运算等知识点
2. 实验过程及结果
1. 导入数学运算库
import math
2.定义函数
这里定义函数是因为这样模块化的程序可以更加便捷地编写和维护,添加新运算功能时更加方便
def (函数名)(变量)
例如一个计算加法的函数:
def plus(int num1,int num2):
return num1 + num
这样一来,在调用函数的时候,只需输入加数1和加数2,函数就会返回得到的和
以此类推,我们还可以得到其他基本运算函数:
def JIAN(num1, num2):
return num1 - num2
def CHENG(num1, num2):
return num1 * num2
值得注意的是,在除法中除数不能为零,所以,在函数中应当加入判断环节
def CHU(num1, num2):
if num2 == 0:
print("除数不能为零!")
return 0
return num1 / num2
3.主体部分
首先,提示用户输入运算符:
choice = input("请输入运算符(+-*/):")
随后提示输入第一个和第二个数:
num1 = int(input("请输入第一个数字:"))
num2 = int(input("请输入另外一个数字:"))
随后使用if/elif来根据运算符进行运算:
if choice == '+':
print("num1 + num2 =",JIA(num1,num2))
elif choice == '-':
print("num1 - num2 =",JIAN(num1,num2))
elif choice == '*':
print("num1 * num2 =",CHENG(num1,num2))
elif choice == '/':
if CHU(num1,num2) == 0:#与除法函数对应,若除法函数返回零则报错
print("num / num2 =",CHU(num1,num2))
else:
print("运算符不合法!") #如果用户输入的不是加减乘除的任何一个运算符,则报错
4.进阶部分
一次计算有时候是不够的,所以我们不妨将程序从外面套上一层循环:
while 1:
num1 = int(input("请输入第一个数字:"))
num2 = int(input("请输入另外一个数字:"))
choice = input("请输入运算符(+-*/):")
if choice == '+':
print("num1 + num2 =",JIA(num1,num2))
elif choice == '-':
print("num1 - num2 =",JIAN(num1,num2))
elif choice == '*':
print("num1 * num2 =",CHENG(num1,num2))
elif choice == '/':
if CHU(num1,num2) == 0:
break #这里及以后出现的break是为了跳出循环,达到报错推出程序的目的
print("num / num2 =",CHU(num1,num2))
else:
print("运算符不合法!")
break
if input("是否继续? Y/N:" ) == 'N':
break
其次,还可以添加不同的运算,和上面的判断符一样,我添加了复数和对数运算,最终得到的程序如下:
import math
def JIA(num1, num2):
return num1 + num2
def JIAN(num1, num2):
return num1 - num2
def CHENG(num1, num2):
return num1 * num2
def CHU(num1, num2):
if num2 == 0:
print("除数不能为零!")
return 0
return num1 / num2
def loge(num1, num2):
return math.log(num2,num1)
while 1:
decide = int(input("请问需要复数(1)还是整数(2)运算还是对数(3)运算?:"))
if decide == 1:
num1 = complex(input("请输入第一个数字:"))
num2 = complex(input("请输入另外一个数字:"))
choice = input("请输入运算符(+-*/):")
if choice == '+':
print("num1 + num2 =",JIA(num1,num2))
elif choice == '-':
print("num1 - num2 =",JIAN(num1,num2))
elif choice == '*':
print("num1 * num2 =",CHENG(num1,num2))
elif choice == '/':
if CHU(num1,num2) == 0:
break
print("num / num2 =",CHU(num1,num2))
else:
print("运算符不合法!")
break
if input("是否继续? Y/N:" ) == 'N':
break
elif decide == 2:
num1 = int(input("请输入第一个数字:"))
num2 = int(input("请输入另外一个数字:"))
choice = input("请输入运算符(+-*/):")
if choice == '+':
print("num1 + num2 =",JIA(num1,num2))
elif choice == '-':
print("num1 - num2 =",JIAN(num1,num2))
elif choice == '*':
print("num1 * num2 =",CHENG(num1,num2))
elif choice == '/':
if CHU(num1,num2) == 0:
break
print("num / num2 =",CHU(num1,num2))
else:
print("运算符不合法!")
break
if input("是否继续? Y/N:" ) == 'N':
break
elif decide == 3:
num1 = int(input("请输入第一个数字:"))
num2 = int(input("请输入另外一个数字:"))
print("log(a,b)=",loge(num1,num2))
if input("是否继续? Y/N:" ) == 'N': #询问用户是否继续计算
break
以下是运行截图:

3.实验过程中遇到的问题和解决过程
- 问题1:输入数字但是程序返回乱码
问题1解决方案:进行输入时没有进行强制类型转换,将其转换为int类型可以解决问题
num1 = int(input("请输入第一个数字:"))
- 问题2:如何进行复数运算?
问题2解决方案:在python中,直接强制转换为complex类型即可
4.感悟和思考
- 编写程序时,使用模块化的思想自定义若干函数,再在主函数中将自定义函数封装到一起,十分方便。当然,这样也存在着变量混淆的可能,需要在编写程序时多加注意
浙公网安备 33010602011771号