20243402谢子凌 实验二《Python程序设计》实验报告

news/2025/3/29 22:50:08/文章来源:https://www.cnblogs.com/xie-ziling/p/18794718

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

课程:《Python程序设计》
班级: 2434
姓名: 谢子凌
学号:20243402
实验教师:王志强老师
实验日期:2025年3月26日
必修/选修: 公选课

1.实验内容

设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。
考核基本语法、判定语句、循环语句、逻辑运算等知识点

2. 实验过程及结果

一.编写计算器
1.具有初步功能的计算器(加减乘除)
部分代码截图


运行结果

2.升级计算器(可实现求余、乘方、对数、三角函数运算)
部分代码截图


运行结果

总代码:
import math
def cjia(num1,num2):
return num1+num2
def cjian(num1,num2):
return num1-num2
def ccheng(num1,num2):
return num1*num2
def cchu(num1,num2):
if num2==0:
print("除数不能为0")
return 0
return num1/num2
def cduishu(num1,num2):
return math.log(num1,num2)
def cchengfang(num1,num2):
return num1**num2
def cqiuyu(num1,num2):
return num1%num2
def csanjiao(sanjiao,num):
if sanjiao == "sin":
num = math.radians(num)
print("num的sin值为", format(math.sin(num),'.2f'))
elif sanjiao == "cos":
num = math.radians(num)
print("num的sin值为", format(math.cos(num),'.2f'))

flag =True
while flag:
yunsuan=input("请问:需要复数(1)吗,还是整数(2)运算,还是三角(3)运算?\n")
if yunsuan"1":
num1=complex(input("请输入一个数:"))
num2=complex(input("请输入另一个数:"))
choice = input("请输入运算符(+ - * / log ** %)")
if choice == "+":
print("num1", choice, "num2=", cjia(num1, num2))
elif choice == "-":
print("num1", choice, "num2=", cjian(num1, num2))
elif choice == "*":
print("num1", choice, "num2=", ccheng(num1, num2))
elif choice == "/":
print("num1", choice, "num2=", cchu(num1, num2))
elif choice == "log":
print("log以", num1, "为底,", num2,"的对数=",cduishu(num1, num2))
elif choice == "%":
print("num1", choice, "num2=", cqiuyu(num1, num2))
elif choice == "**":
print("num1的", choice, "num2次方=", cchengfang(num1, num2))
conti = input("是否继续?Y/N")
if conti == "Y" or conti == "y":
flag = True
else:
flag = False
elif yunsuan
"2":
num1= int(input("请输入一个数:"))
num2=int(input("请输入另一个数:"))
choice = input("请输入运算符(+ - * / log ** %)")
if choice"+":
print("num1",choice,"num2=",cjia(num1,num2))
elif choice == "-":
print("num1", choice, "num2=", cjian(num1, num2))
elif choice
"":
print("num1",choice,"num2=",ccheng(num1,num2))
elif choice"/":
print("num1",choice,"num2=",cchu(num1,num2))
elif choice == "log":
print("log以", num1, "为底,", num2,"的对数=",cduishu(num1, num2))
elif choice == "%":
print("num1", choice, "num2=", cqiuyu(num1, num2))
elif choice == "**":
print("num1的num2次方=", cchengfang(num1, num2))
conti=input("是否继续?Y/N")
if conti == "Y" or conti
"y" :
flag=True
else:
flag=False
elif yunsuan=="3":
sanjiao = input("请输入运算种类:")
num = float(input("请输入角度值:"))
csanjiao(sanjiao,num)
conti = input("是否继续?Y/N")
if conti == "Y" or conti == "y":
flag = True
else:
flag = False
二.编写随机题目生成器
代码截图


运行结果

总代码
import math
import random
count1=0
def cjia(num1,num2):
print(num1, "+", num2, "=")
if int(input()) == num1 + num2:
print("对了")
count1+=1
else:
print("错了,菜就多练")
def cjian(num1,num2):
print(num1, "-", num2, "=")
if int(input()) == num1 - num2:
print("对了")
count1 += 1
else:
print("错了,菜就多练")
def ccheng(num1,num2):
print(num1, "
", num2, "=")
if int(input()) == num1 * num2:
print("对了")
count1 += 1
else:
print("错了,菜就多练")
def cchu(num1,num2):
print(num1, "/", num2, "=")
if int(input()) == num1 / num2:
print("对了")
count1 += 1
else:
print("错了,菜就多练")
count=int(input("请输入你要练的题数:"))
count2=count
while count:
suiji=random.randint(1,4)
num1=random.randint(1,100)
num2=random.randint(1,100)
if suiji1:
cjia(num1,num2)
elif suiji
2:
cjian(num1,num2)
elif suiji3:
ccheng(num1,num2)
elif suiji
4:
cchu(num1,num2)
count-=1
print("你总共练习了",count2,"道题,对了",count1,"道题")
三.上传码云
计算器:
https://gitee.com/xie-ziling/purple-lingering/blob/master/计算器.py
随机题目生成器:
https://gitee.com/xie-ziling/purple-lingering/blob/master/随机题目生成器.py

3. 实验过程中遇到的问题和解决过程

  • 问题1:不知道乘方运算符号
  • 问题1解决方案:询问ai,Python 提供了内置的幂运算符 **,可以直接用来计算 x 的 n 次方。
    示例:
    def power(x, n):
    return x ** n
  • 问题2:三角函数不知道角度和弧度如何转化,以及如何保留规定的小数位
  • 问题2解决方案:询问ai和同学,使用math.radians(num)即可完成转化,但是由于除不尽会产生细微误差。通过format函数保留规定小数位数format(math.cos(num),'.2f')

其他(感悟、思考等)

初学python,多进行相关编程。经过这两个程序的编程,我感觉自己对python编程的熟练度大大提高,语法掌握更加深刻。但是仍然存在代码过于冗长,没有优化的情况,今后学习需要着重注意这方面的改进。

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

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

相关文章

【视频】文本挖掘专题:Python、R用LSTM情感语义分析实例合集|上市银行年报、微博评论、红楼梦数据、汽车口碑数据采集词云可视化

原文链接:https://tecdat.cn/?p=41149原文出处:拓端数据部落公众号 分析师:Zhenzhen Liu,Shuai FungPython企业年报文本分析情感挖掘语调分析:以上市银行为例作为数据科学家,我们始终关注如何从非结构化数据中提取高价值信息。本专题合集聚焦企业年报的文本分析技术,通…

20242125 单嘉怡 实验二《Python程序设计》实验报告

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

026 登录页-手机登录搭建-volar警告消除

这里什么也不写,把res删除 2、这样写 3、看看效果

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

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

基于Grafana使用官方模版查询Prometheus数据

grafana配置Prometheus作为数据源选择一个模版,导入到dashboards 模板地址 https://grafana.com/grafana/dashboards/ 选择Prometheus,选择一个适应版本的模版,记录ID 例如:1860 11074 8919查看dashboards

计算机二级之C++专业知识①

前排提醒:做选择题的时候不能用编译器,只能用脑子想 里面标了⭕的是新内容,最好把这一段好好看看1、C++概述 1.1 比较C和C++ C++相对于C语言最更本的变化是引入了类与对象的概念(最大改进也是这个) 面向对象思想:具有封装性(封装了数据和操作)、继承性、多态性 类设计之…

git log 进入命令行后 退出的几种方法

git log 是git 中很有用的命令,会列出git的最近的操作内容,并且用 冒号来作为提示行。在 Git 命令行中,如果你看到 :,通常是因为你进入了一个查看器界面,比如 git log 或 git diff。要退出这个界面,你可以按下 q 键。以下是一些常见的退出方法: 退出查看器界面: 按 q 键…

OpenAI的GPT-4o:普通人的AI秘书来了

1. 惊艳时刻:AI比你想象的更"人性" 早餐时,张三正埋头刷推送,一篇关于OpenAI发布GPT-4o的文章瞬间点燃了他的好奇心。这个AI简直是科技圈的惊雷!竟然可以像真人一样说话、理解语境、实时交互,甚至能读懂你的情绪。这哪里还是以前那个机械的聊天机器人,简直就是…