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.程序运行结果如下:

image

三、实验过程中遇到的问题和解决过程

  • 问题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

这样就能解决问题。

其他(感悟、思考等)

通过“计算器设计”实验,我对编程有了更深入的理解。实验中,我运用了基本语法、判定语句、循环语句和逻辑运算等知识,完成了加、减、乘、除运算功能的实现。在设计过程中,我意识到细节的重要性。例如,除法运算中对除数为零的判断等细节,直接影响程序的健壮性和用户体验。同时,我也体会到功能扩展的意义,可以通过增加平方、立方等额外功能,让计算器更具实用性。

参考资料

posted @ 2025-04-02 14:20  doronlee  阅读(53)  评论(0)    收藏  举报