20222223 实验二《Python程序设计》实验报告
20222223 2024-2025-2 《Python程序设计》实验二报告
课程:《Python程序设计》
班级: 2222
姓名: 李東霖
学号:20222223
实验教师:王志强
实验日期:2025年3月26日
必修/选修: 公选课
一、实验内容
(一)实验内容
设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。
考核基本语法、判定语句、循环语句、逻辑运算等知识点。
(二)实验要求
创建工程项目,使用Python语言实现具体的操作运算,并完成程序调试和运行,代码托管到码云。
注:在华为ECS服务器(OpenOuler系统)和物理机(Windows/Linux系统)上使用VIM、PDB、IDLE、Pycharm等工具编程实现。
二、实验过程及结果
1.设计代码如下:
def Csum(num1,num2):
return num1+num2
def Csub(num1,num2):
return num1-num2
def Cmul(num1,num2):
return num1*num2
def Cdiv(num1,num2):
if num2==0:
print("被除数不能为0")
exit(0)
else:
return num1/num2
flag=True
while flag:
num1=int(input("请输入一个数"))
num2=int(input("请输入另一个数"))
choice=input("请输入运算符(+-*/)")
if choice=="+":
print(f"{num1}+{num2}={Csum(num1,num2)}")
elif choice=="-":
print(f"{num1}-{num2}={Csum(num1,num2)}")
elif choice=="*":
print(f"{num1}*{num2}={Cmul(num1,num2)}")
elif choice=="/":
print(f"{num1}/{num2}={Cdiv(num1,num2)}")
if input("是否结束(y/n)")== "y" or "Y":
flag=False
这个计算器实现了简单的加减乘除功能,通过函数分别完成4种运算。
通过设置一个flag变量当做循环的判断条件,使计算器可以重复运行。
2.程序运行结果如下:

三、实验过程中遇到的问题和解决过程
- 问题1:在判断程序是否继续运行时,无论输入什么都会停止
- 问题1解决方案:我的判断代码如下
flag=True
while flag:
......(此处为计算器实现代码)
if input("是否结束(y/n)") == "y" or "Y":
flag=False
这里的逻辑是错误的,原因在于 or 的优先级和逻辑判断的顺序。
在 Python 中,or 运算符会从左到右依次计算表达式:
如果左侧的表达式为 True,则整个表达式的结果为 True,且不会计算右侧的表达式。
如果左侧的表达式为 False,则会计算右侧的表达式。
实际上,代码中的判断条件是(“输入的字符==y”或“Y”),而不是(输入的字符==“y or Y”)。
然而 or 后面 "Y" 这部分永远为 True,因为 "Y" 是一个非空字符串,Python 会把它当作 True。所以无论用户输入什么,flag 都会被设置为 False,程序会直接退出。
程序可以改为
if input("是否结束(y/n)")in ["y" , "Y"]:
flag=False
这样就能解决问题。
其他(感悟、思考等)
通过“计算器设计”实验,我对编程有了更深入的理解。实验中,我运用了基本语法、判定语句、循环语句和逻辑运算等知识,完成了加、减、乘、除运算功能的实现。在设计过程中,我意识到细节的重要性。例如,除法运算中对除数为零的判断等细节,直接影响程序的健壮性和用户体验。同时,我也体会到功能扩展的意义,可以通过增加平方、立方等额外功能,让计算器更具实用性。
浙公网安备 33010602011771号