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

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

课程:《Python程序设计》
班级: 2443
姓名: 梁悦
学号:20244319
实验教师:王志强
实验日期:2025年3月26日
必修/选修: 公选课

一、实验内容

1.设计并完成一个完整的计算机应用程序,完成加、减、乘、除、log等运算,功能多多益善;

2.考核基本语法、判定语句、循环语句、逻辑运算等知识点;

3.使用Python语言实现具体的操作运算,并完成程序调试和运行,代码托管到码云。

二、实验过程及结果

(一)设计并完成一个完整的计算机应用程序,完成加、减、乘、除等运算

完整代码如下:

import math
from stringprep import b1_setdef 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("除数不能为0哦,亲爱的")return 0return num1/num2
def logab(a,b):return math.log(a,b)Queen=int(input("你要进行什么运算?(1)实数(2)复数\n"))if Queen ==1:flag = Truewhile flag:num1=int(input("请输入一个实数:"))num2=int(input("请输入另一个实数:"))choice = input("请输入运算符(+、-、*、/、log):")if choice=="+":print("num1",choice,"num2=",jia(num1,num2))elif choice=="-":print("num1",choice,"num2=",jian(num1,num2))elif choice=="*":print("num1",choice,"num2=",cheng(num1,num2))elif choice=="/":print("num1",choice,"num2=",chu(num1,num2))elif choice=="log":print("log以",num2,"为底",num1,"的对数=",logab(num1,num2))else:print("亲爱的,你好像输入错运算符咯~")key = input("是否继续? Y/N:")if key=="Y":flag = Trueelse:flag = Falseelif Queen ==2:flag = Truewhile flag:num1 = complex(input("请输入一个复数:"))num2 = complex(input("请输入另一个复数:"))choice = input("请输入运算符(+、-、*、/):")if choice == "+":print("num1", choice, "num2=", jia(num1, num2))elif choice == "-":print("num1", choice, "num2=", jian(num1, num2))elif choice == "*":print("num1", choice, "num2=", cheng(num1, num2))elif choice == "/":print("num1", choice, "num2=", chu(num1, num2))else:print("亲爱的,你好像输入错运算符咯~")key = input("是否继续? Y/N:")if key == "Y":flag = Trueelse:flag = False

(二)考核基本语法、判定语句、循环语句、逻辑运算等知识点

1.判定语句(如if key=="Y"语句)

2.循环语句(if-elif-else语句)

3.逻辑运算(and、or、not语句)

(三)使用Python语言实现具体的操作运算,并完成程序调试和运行,代码托管到码云

1.基础运算函数准备:

2.设计实数部分计算器:

运行结果截图:

3.设计复数部分计算器:

运行结果截图:

4.增加实数对数运算功能

运行结果截图:

5.代码托管到码云

托管成功截图:

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

  • 问题1:不清楚Python中怎么调用数学库

  • 问题1解决方案:百度搜索+积累语法

  • 问题2:重复性代码过多

  • 问题2解决方案:增加分类合并部分代码

如可改为:

    flag = Truewhile flag:if input("请问:需要复数(1)还是整数(2)运算?\n")=="1":num1 = complex(input("请输入一个数:"))num2 = complex(input("请输入另一个数:"))else:num1 = int(input("请输入一个数:"))num2 = int(input("请输入另一个数:"))choice = input("请输入运算符(+-*/ log):")if choice == "+":print("num1 ",choice, " num2 = ", Csum(num1, num2))elif choice =="-":print("num1 ",choice, " num2 = ", Csub(num1, num2))elif choice == "*":print("num1 ",choice, " num2 = ", Cmulti(num1, num2))elif choice == "/":print("num1 ",choice, " num2 = ", CDiv(num1, num2)))elif choice == "log":print("log以",num2,"为底",num1, "的对数 = ", logab(num1, num2))conti = input("是否继续?Y/N\n")if conti == "Y" or conti == "y":flag = Trueelse:flag = False

其他(感悟、思考等)

我因为dbug没能跟上老师进度,所以计算器程序代码的后半段是自己编写的,但是最后的代码以及运行结果和老师的差不多,开心开心(有点小小的成就感嘻嘻)

参考资料

  • 《零基础学Python》(2018 明日科技编著)

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

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

相关文章

让 LLM 既能“看”又能“推理”!

DeepSeek-R1 会推理,GPT-4o 会看。能否让 1 LLM既能看又能推理? DeepSeek-R1取得很大成功,但它有个问题——无法处理图像输入。 1.1 DeepSeek模型发展 自2024.12,DeepSeek已发布:DeepSeek-V3(2024.12):视觉语言模型(VLM),支持图像和文本输入,类似 GPT-4o DeepSeek-…

WindowsPE文件格式入门03.节表

https://www.bpsend.net/thread-306-1-1.html dump 我们点击运行程序进程加载时时,是把文件里面的数据映射进内存,这样进程里面的内存就拿到了各种各样的代码,数据等资源,但是如果我们反着来,就可以从进程的内存里把 exe 文件提出来,这个过程叫做dump过程 dump过程在对抗里面经…

7-二次、加解密、DNS等注入

加解密注入其实就是数据被加密了,注入的时候要先把注入语句进行相应加密再注入,只是叠加了一次加密而已二次注入二次注入一般用于白盒测试,黑盒测试就算是找到注入也没办法攻击 二次注入无法通过工具或手工发现,只能观察源代码才能发现 一般产生在有数据互联的情况,比如有…

8-WAF绕过

WAF WAF部署安全狗,宝塔等waf搭建部署 https://blog.csdn.net/nzjdsds/article/details/93740686 流量防护:某ip访问过多入黑名单 建议阿里云搞个服务器部署进行绕过测试WAF常见功能总体来说,WAF(Web Application Firewall)的具有以下四个方面的功能:审计设备:用来截获所有…

一个基于 .NET 开源免费的异地组网和内网穿透工具

前言 今天大姚给大家分享一个基于 .NET 开源免费的异地组网和内网穿透工具:linker。 工具介绍 linker是一个基于 .NET8 开源免费(GPL-2.0 license)的异地组网和内网穿透工具,支持TCP(支持IPV6)打洞、UDP打洞,服务器中继,异地组网使用虚拟网卡将各个客户端组建为局域网络、…

还是继续写博客吧!作为留痕、作为给面试官了解我的资料。

今天我被约谈了,没错,说的是“毕业”的事情 今天下午三点的时候,我接到了一个工单,我很纳闷,这是一个很简单且稳定运行了几年的东西,怎么有问题了?这个系统我太熟悉了,简单看下日志,便发现了问题所在——用户信息上的关键标识缺失,导致了某个接口查询无结果。我赶紧联…

SvelteKit 最新中文文档教程(12)—— 高级路由

前言 Svelte,一个语法简洁、入门容易,面向未来的前端框架。 从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1:Svelte 以其独特的编译时优化机制著称,具有轻量级、高性能、易上手等特性,非常适合构…

代码随心录第一天|Leecode (704二分查找、27移除元素、977有序数组的平方

Leecode 704二分查找 题目链接:https://leetcode.cn/problems/binary-search/ 题目描述 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。题目解法 思路: 题目前提是数组为有序…

Linux输出重定向全攻略:掌握命令行高效管理的艺术

概述 在Linux中,输出重定向是一种将命令的输出(标准输出或标准错误)重定向到文件或其他设备的方法。以下是一些常见的输出重定向操作符及其用法:标准输出重定向 (>)将命令的标准输出重定向到一个文件中。如果文件不存在,它会被创建;如果文件已经存在,它会被覆盖。 co…

XN2025 集训记录 D6

梦境是一个微妙的境界 , 空寂感与包裹感交织 , 哪些景象明明永远不可能出现在现实 , 却像家一样 . . . 温暖 . . . 熟悉XN2025 集训记录 D6 今天西安也降温了 , 一晚上没睡好 , 做了能有三四个梦 . 梦到自己去神秘巨大建筑群集训 , 找不到同桌还没找明白房间 . . . 这都啥跟啥 …

树上差分学习笔记+做题记录

树上差分 点的差分求路径 \(u-v\) 上的点被经过的次数. \(cnt[x]\) 表示点 \(x\) 被经过的次数. 核心代码:cnt[u]++; cnt[v]++; cnt[lca(u,v)]--; cnt[father[lca(u,v)]]--;边的差分求 \(u-v\) 路径上每条边的经过次数 \(cnt[x]\) :代表 \(x\) 向上的边经过的次数. 核心代码:cn…

小迪安全|web安全|渗透测试|小白学习笔记Day1

Day1-概念名词 域名 什么是域名例www(可以换).xxx.com(可以换) 可以简单的理解为我们平常使用的网址,具体可以参考:https://baike.baidu.com/item/域名/86062域名在哪里注册国内像万网,新网都可以注册域名,可以在上面提及的网站上面进行查询以及进行注册什么是二级域名以及…