学号 2024-2025-2 《Python程序设计》实验二报告
课程:《Python程序设计》
班级: 2441
姓名: 韩金婕
学号:20244111
实验教师:王志强
实验日期:2025年4月1日
必修/选修: 公选课
1.实验内容
设计并完成一个完整的应用程序,完成加减乘除模阶乘等运算,功能多多益善。通过输入不同的运算符,程序可以执行相应的数学操作,并能够根据用户需求选择进行实数运算还是复数运算。(+ - * / % // ^ ** !logab \n……)
考核基本语法(if,input,int……)、判定语句(if,elif,else)、循环语句(while )、逻辑运算(+ - * / % // ^ ** !logab \n)、多行注释等知识点。
2. 实验过程及结果
1.代码编写
from sys import flags
import math
def calculate(a,b,operator41):
if operator41 == '+':
return a+b
elif operator41 == '-':
return a-b
elif operator41 == '':
return ab
elif operator41 == '/':
return a/b
elif operator41 == '':
return ab
elif operator41 == '//':
return a//b
elif operator41 == '!':
return math.factorial(a)#math.factorial(b)
elif operator41 == '%':
return math.floor(a/b)
elif operator41 == 'logab':
return math.log(a,b)
print('''
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
☆☆ 计算器V1.0♥ ☆☆
☆☆ 开发日期:2025年4月1日 ☆☆
☆☆ 学号:20244111 ☆☆
☆☆ 姓名:韩金婕 ☆☆
☆☆ 座右铭:python好难 ☆☆
☆☆ 捐赠我一朵花 ☆☆
☆☆ ☆☆☆☆☆☆☆☆☆☆ ☆☆
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
''')
flag = True
while flag:
if input("请问您要做实数运算还是复数运算呢?\n")"复数":
a = complex(input("请输入一个复数:"))
b = complex(input("请输入另一个复数:"))
else:
a=int(input("请输入一个数:"))
b=int(input("请再输入一个数:"))
operator41=input("请输入操作:+ - * / % // ^ ** !logab \n")
print(f"{a}{operator41}{b}=",calculate(a,b,operator41))
conti=input("是否需要继续计算? Y or N\n")
if conti'N' or conti=='n':
flag = False
2.运行结果
3.实现过程
创建项目:在本地创建一个新的Python项目文件夹,用于存放计算器程序代码。
编写代码:使用文本编辑器或集成开发环境(IDE)编写Python代码。定义 calculate 函数,在函数内部通过 if-elif-else 语句判断运算符并执行相应运算。在主程序部分,使用 while 循环让用户可以多次进行计算,根据用户输入选择实数或复数运算,获取两个操作数和运算符,调用 calculate 函数进行计算并输出结果。
调试与运行:运行程序,输入不同的运算类型、操作数和运算符进行测试。
- 输入实数运算,如 3 + 5 ,程序输出 8 ;
- 输入复数运算,如 (2+3j) * (4+5j) ,程序输出 (-7+22j) ,功能均正常实现。
3. 实验过程中遇到的问题和解决过程
-
问题1:在进行复数运算时,直接使用 input 获取的输入无法直接作为复数参与运算。
-
问题1解决方案:使用 complex 函数将 input 获取的字符串转换为复数类型。
-
问题2:在实现阶乘运算时,最初将 math.factorial(b) 也写在条件判断中,导致当输入 ! 时,若输入的第二个数不是第一个数,会出现错误。
-
问题2解决方案:只保留 math.factorial(a) ,因为阶乘只针对一个数进行计算。
-
问题3:在编写注释时无法对齐,不够美观。
-
问题3解决方案:修改字符全半角,使得注释对齐,更加美观。
其他(感悟、思考等)
通过本次实验,我对Python的基本语法、判定语句、循环语句以及逻辑运算有了更深入的理解和运用。在实现过程中遇到的问题让我明白在处理用户输入时需要考虑各种情况,包括数据类型的转换和异常处理。同时,模块化编程的思想也得到了锻炼,将具体的计算功能封装在函数中,使代码结构更加清晰。对于后续学习,我意识到需要进一步加强对复杂数学运算的实现能力。以及,我认识到Python编写的程序可以大大提高运行效率,不用根据不同的运算去编写不同的程序,可以整合起来,大大提高了运行效率。
参考资料
-
《Java程序设计与数据结构教程(第二版)》
-
《Java程序设计与数据结构教程(第二版)》学习指导