20244111 实验二《Python程序设计》实验报告

学号 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 a
b
elif operator41 == '/':
return a/b
elif operator41 == '':
return a
b
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程序设计与数据结构教程(第二版)》学习指导

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/909686.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20244112 实验二《Python程序设计》实验报告

20244112 2024-2025-2 《Python程序设计》实验二报告 课程:《Python程序设计》 班级: 2441 姓名: 李其鲔 学号:20244112 实验教师:王志强 实验日期:2025年4月1日 必修/选修: 公选课 1.实验内容 (1)设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善;…

20244102 2024-2025-2 《Python程序设计》实验二报告

20244102 2024-2025-2 《Python程序设计》实验二报告 课程:《Python程序设计》 班级: 2441 姓名: 丁可 学号:20244102 实验教师:王志强 实验日期:2025年4月1日 必修/选修: 公选课 一、实验内容 1.设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。二…

20242207 实验二 《Python程序设计》实验报告

20242207 2024-2025-2 《Python程序设计》实验二报告 课程:《Python程序设计》 班级: 2422 姓名: 赵泓睿 学号: 20242207 实验教师:王志强 实验日期:2025年3月26日 必修/选修: 公选课 1.实验内容 1.设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。…

高一下四月日记

云海翻涌,尘世如歌;人间烟火常驻,心中超然长留。低眉俯瞰凡世间,存梦幻歌凭云处。4.1 闲话 做题纪要 luogu P1175 表达式的转换开两个栈辅助建后缀表达式。点击查看代码 char s[110]; deque<char>s1,s2; deque<int>s3; int val(char x) {if(x==() return 0;if(…

进阶图论

进阶图论 I. 割点与桥 首先,我们得了解割点的含义 割点对于一个无向图,如果把一个点删除后这个图的极大连通分量数增加了,那么这个点就是这个图的割点(又称割顶)。通俗点说,就是连接两个或多个连通分量的公共点。 如何求割点呢,这里引用一个算法:Ttarjan 定义 dfn[i] 为…

URAT协议自学笔记

定义 URAT(Universal Asynchronous Receiver/Transmitter)协议是一种通用异步收发传输协议,用于在两个设备之间进行串行数据通信。它将并行数据转换为串行数据进行传输,接收时再将串行数据转换为并行数据。 特点 异步通信:不需要共享时钟信号,通过波特率同步数据传输。 全…

解决手机每次复制都弹出google的nearby服务-分享到附近的设备

起因: 我的手机刷了国际版的系统,有google套件,每次复制都会唤起nearby附近分享这个组件,感觉很烦。 解决方法: 下载AppOps,这个软件能方便我们管理和监视应用权限。 使用Shizuku授权点击左上角,选择使用情况历史点击剪切板我们切出去, 在别的应用中进行一次复制,就可…

neo4j community教程

neo4j community最新版本安装教程(2025.1) 前言 ​ neo4j desktop以交互性好,体验好为优点。但是自24年中旬neo4j官网先后被墙和neo4j desktop联网打不开等诸多问题,本文作者建议使用community版本。 正文下载安装包neo4j官网,下载community最新版本(5.26.1)jdk-23下载(这…

代码随想录第四天 | Leecode 24. 两两交换链表、19.删除链表的倒数第N个节点、 面试题 02.07. 链表相交 、142.环形链表II

Leecode 24. 两两交换链表 题目链接:https://leetcode.cn/problems/swap-nodes-in-pairs/description/ 题目描述:思路:虚拟头节点,注意保存临时节点 题目解答: 循环结束的时候就是,当链表偶数个时cur->next->next=NULL,奇数个时cur->next=NULL。 Leecode 19. 删…

JpaSpecificationExecutor :Spring Data JPA 动态查询的核心扩展

JpaSpecificationExecutor 是 Spring Data JPA 动态查询的核心扩展,通过 Specification 机制提供灵活的类型安全查询,解决了传统 JPQL 或 Criteria API 的冗余问题,特别适合复杂业务场景下的动态数据访问需求。 核心设计目标: ​动态查询:允许运行时动态构建查询条件,避免…

四款高效报表软件推荐 助力企业数据可视化

概述 在数字化时代,企业和组织越来越依赖数据驱动决策,报表软件成为提高数据可视化能力、优化业务管理的关键工具。本文将为大家介绍四款功能强大的报表软件,帮助不同需求的企业找到合适的解决方案。 一、山海鲸报表 山海鲸报表是一款零代码的免费数据可视化和报表生成工具,…

AMDGPU对CUDA支持方式的分析

AMDGPU对CUDA支持方式的分析 实现方式是针对HIP API(Heterogeneous-Computing Interface for Portability)做CUDA的接口套壳,即将cuda的API接口作为标准接口,用AMD ROCm实现cuda的API(目的就是保证对外的API与CUDA完全相同),但实际调用 HIP+ROCm 的相关接口实现(即实际…