Python开发与应用实验2 | Python基础语法应用

 *本文是博主对学校专业课Python各种实验的再整理与详解,除了代码部分和解析部分,一些题目还增加了拓展部分(⭐)。拓展部分不是实验报告中原有的内容,而是博主本人自己的补充,以方便大家额外学习、参考。

(本文分步更新,先更新代码部分,再更新解析部分。如果打开文章发现只有代码没有解析,说明还没更新完毕,可以过一阵子再来参考~)

目录

一、实验目的

二、实验内容

1、学生宿舍信息输入

2、超市抹零

3、个人用户登录

4、模拟斐波那契数列输出

5、银行金额大写汉字转换

6、天天向上的力量

7、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

8、一个雇员一周的总薪水

9、水仙花数是3位整数(100-199),它的各位数字立方和等于该数本身。请编写程序。

 10、过滤敏感词

三、实验总结(将于本学期结束后补充)



一、实验目的

(1)能够使用分支结构和循环结构编写简单程序;

(2)能够使用math库进行简单的数值计算;

(3)通过设计型实验方式,结合具体的应用场景和业务需求,引导学生进行关键的技术分析,帮助学生理清编程思路,最后熟练运用 Python 语言进行程序设计,培养的了学生针对一般问题自主进行分析问题和解决问题的能力。


实验内容

1、学生宿舍信息输入

模拟学生宿舍信息输入,需要输入学生个人信息 姓名、性别、年龄、宿舍号、学院、专业、电话信息,并输出显示。

源代码:

def input_student_info():name = input("请输入学生姓名:")gender = input("请输入学生性别:")age = input("请输入学生年龄:")dormitory_number = input("请输入学生宿舍号:")college = input("请输入学生学院:")major = input("请输入学生专业:")phone = input("请输入学生电话:")student_info = {"姓名": name,"性别": gender,"年龄": age,"宿舍号": dormitory_number,"学院": college,"专业": major,"电话": phone}return student_infodef display_student_info(student_info):# 输出学生信息print("学生信息如下:")for key, value in student_info.items():print(f"{key}: {value}")if __name__ == "__main__":student_info = input_student_info()display_student_info(student_info)

列出测试数据和实验结果截图:


2、超市抹零

逛超市购物结账的时候,商家都会给顾客回馈一张清单小票,票面上的金额往往会精确到角或分。大部分商家通常会采用四舍五入的原则进行结算,不过有些商家为了让利顾客,会将小数点后面的数字金额全部抹零。下面使用数字类型转换实现收银抹零行为。

源代码:

amount = float(input("请输入购物金额(可以包含小数点):"))
rounded_amount = int(amount)
print(f"抹零后的金额为:{rounded_amount}元")

列出测试数据和实验结果截图:


3、个人用户登录

当用户登录时给3次机会。如果成功,显示欢迎xxx。如果登录失败,显示录入错误你还有x次机会。如果3次机会使用完毕,则显示登录超限,请明天再登录。

源代码:

def login(username, password):correct_username = "user"  # 正确的用户名correct_password = "123"  # 正确的密码if username == correct_username and password == correct_password:return Trueelse:return Falsedef main():login_attempts = 3  # 允许尝试d 次数while login_attempts > 0:username = input("请输入用户名:")password = input("请输入密码:")if(login(username,password)):print(f"欢迎{username}!")breakelse:login_attempts -= 1if login_attempts > 0:print(f"登录错误,你还有 {login_attempts} 次机会。")else:print("登录超限,请明天再登录。")if __name__ == "__main__":main()

列出测试数据和实验结果截图:


4、模拟斐波那契数列输出

用户输入指定的数列范围,正确输出结果。

源代码:

def fib(n):a, b = 0, 1result = []for _ in range(n):result.append(a)a, b = b, a + breturn resultif __name__ == "__main__":n = int(input("请输入要生成的斐波那契数列项数:"))sequence = fib(n)print(f"斐波那契数列前 {n} 项为:{sequence}")


5、银行金额大写汉字转换

银行电子支票业务在金额部分需要使用大写的汉字,因此需要将用户录入的数字信息转变为汉字。目前只需完成1~5位整数转换即可。

源代码:

def number_to_chinese(number):if number == 0:return "零"chinese_dict = {0: "零",1: "壹",2: "贰",3: "叁",4: "肆",5: "伍",6: "陆",7: "柒",8: "捌",9: "玖"}unit_dict = {0: "",1: "拾",2: "佰",3: "仟",4: "万"}result = []position = 0while number > 0:digit = number % 10if digit != 0:result.append(chinese_dict[digit] + unit_dict[position])else:# 零if result and result[-1] != "零":result.append("零")number //= 10position += 1return "".join(result[::-1])if __name__ == "__main__":number = int(input("请输入金额(1-5位整):"))if 1 <= number <= 99999:chinese_amount = number_to_chinese(number)print(f"大写汉字金额:{chinese_amount}")else:print("非法!")

列出测试数据和实验结果截图:


6、天天向上的力量

一年365天,每天进步1‰,累计进步多少?如果每天退步1‰,累计剩下多少?如果以3天打鱼2天晒网的学习态度持续学习一年,学习效果如何?

源代码:

def calculate():increase_rate = 0.001total_increase = (1 + increase_rate) ** 365total_decrease = (1 - increase_rate) ** 365return total_increase, total_decreasedef main():total_increase, total_decrease = calculate()print(f"每天进步1‰,一年的累计:{total_increase:.2%}")print(f"每天退步1‰,一年的累计:{total_decrease:.2%}")if __name__ == "__main__":main()

列出测试数据和实验结果截图:


7、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

源代码:

import mathdef func():for x in range(1, 10000):y = x + 100z = y + 168if math.sqrt(y).is_integer() and math.sqrt(z).is_integer():return xreturn Nonedef main():result = func()if result is not None:print(f"整数是:{result}")else:print("未找到")if __name__ == "__main__":main()

列出测试数据和实验结果截图: 


8、一个雇员一周的总薪水

一个雇员一周的总薪水,等于其每小时的时薪,乘以其一周工作的正常小时数,再加上加班费。加班费等于总的加班时间,乘以每小时薪水的1.5倍。

编写一个程序,以每小时的薪水,常规工作时间,加班工作时间作为输入,显示一个雇员的总周薪。按照要求:每周常规工作时间不能超过40小时且不能小于等于0,正常工作时薪不能小于15元。

​源代码:

def func(hourly_wage, regular_hours, overtime_hours):if regular_hours > 40 or regular_hours <= 0:return "不符合要求"if hourly_wage < 15:return "每小时薪水不能小于15元"regular_salary = hourly_wage * regular_hoursovertime_salary = hourly_wage * 1.5 * overtime_hourstotal_salary = regular_salary + overtime_salaryreturn total_salarydef main():hourly_wage = float(input("请输入每小时薪水(元):"))regular_hours = float(input("请输入常规工作时间(小时):"))overtime_hours = float(input("请输入加班工作时间(小时):"))result = func(hourly_wage, regular_hours, overtime_hours)if isinstance(result, str):print(result)else:print(f"雇员的总周薪为:{result:.2f}元")if __name__ == "__main__":main()

列出测试数据和实验结果截图: 

 


9、水仙花数是3位整数(100-199),它的各位数字立方和等于该数本身。请编写程序。

​源代码:

def get_number():lily_numbers = []for number in range(100, 1000):digit1 = number // 100digit2 = (number // 10) % 10digit3 = number % 10# 立方和sum_of_cubes = digit1 ** 3 + digit2 ** 3 + digit3 ** 3# 判断if sum_of_cubes == number:lily_numbers.append(number)return lily_numbersdef main():lily_numbers = get_number()if lily_numbers:print("3位水仙花数有:", lily_numbers)else:print("未找到3位水仙花数。")if __name__ == "__main__":main()

列出测试数据和实验结果截图: 


 10、过滤敏感词

敏感词一般是指带有敏感政治倾向、暴力倾向、不健康色彩的词或不文明用语,论坛、网站管理员一般会设定一些敏感词,以防不当发言影响论坛、网站环境。若论坛、网站设置了敏感词,用户编辑的内容又含有敏感词,论坛和网站会将其判定为不文明用语,阻止内容的发送,或使用“*”替换其中的敏感词。

​源代码:

import redef censor_text(text, sensitive_words):censored_text = textfor word in sensitive_words:# 创建正则表达式用的pattern = re.compile(re.escape(word), re.IGNORECASE)censored_text = pattern.sub('*' * len(word), censored_text)return censored_textdef main():sensitive_words = ["呵呵", "哈哈", "嘻嘻"]  # 定义敏感词列表user_text = input("请输入文本内容:")censored_text = censor_text(user_text, sensitive_words)if censored_text != user_text:print("检测到敏感词,已替换为 '*':")print(censored_text)else:print("文本内容合法,无敏感词。")if __name__ == "__main__":main()

列出测试数据和实验结果截图: 


实验总结(将于本学期结束后补充)

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

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

相关文章

Python3 如何实现 websocket 服务?

Python 实现 websocket 服务很简单&#xff0c;有很多的三方包可以用&#xff0c;我从网上大概找到三种常用的包&#xff1a;websocket、websockets、Flask-Sockets。 但这些包很多都“年久失修”&#xff0c; 比如 websocket 在 2010 年就不维护了。 而 Flask-Sockets 也在 2…

通信协议:Uart的Verilog实现(上)

1、前言 调制解调器是主机/设备与串行数据通路之间的接口&#xff0c;以串行单比特格式发送和接收数据。它也被称为通用异步收发器(Uart, Universal Asynchronous Receiver/Transmitter)&#xff0c;这表明该设备能够接收和发送数据&#xff0c;并且发送和接收单元不同步。 本节…

递归算法讲解,深度理解递归

首先最重要的就是要说明递归思想的作用&#xff0c;在后面学习的高级数据接口&#xff0c;树和图中&#xff0c;都需要用到递归&#xff0c;即深度优先搜索&#xff0c;如果递归掌握的不好&#xff0c;后面的数据结构将举步为艰。 加油 首先看下如何下面两个方法有什么区别&a…

git revert 撤销之前的提交

git revert 用来撤销之前的提交&#xff0c;它会生成一个新的 commit id 。 输入 git revert --help 可以看到帮忙信息。 git revert commitID 不编辑新的 commit 说明 git log 找到需要撤销的 commitID &#xff0c; 然后执行 git revert commitID &#xff0c;会提示如下…

Allegro如何将丝印文字Change到任意层面操作指导

Allegro如何将丝印文字Change到任意层面操作指导 在用Allegro进行PCB设计的时候,有时需要将丝印文字change到其它层面,如下图 可以看到丝印文字是属于REFDES这个Class的 如果需要把丝印文字change层面,只支持REFDES中以下的层面中来change

入门级制作电子期刊的网站推荐

随着数字化时代的到来&#xff0c;越来越多的人开始尝试制作自己的电子期刊。如果你也是其中的一员&#xff0c;那么这篇文章可以帮助你制作电子期刊。无论是初学者还是有一定经验的制作者&#xff0c;都能快速完成高质量的电子期刊制作 小编经常使用的工具是-----FLBOOK在线制…

95 # express 二级路由的实现

上一节实现了兼容老的路由写法&#xff0c;这一节来实现二级路由 二级路由实现核心&#xff1a; 进入中间件后&#xff0c;让对应的路由系统去进行匹配操作中间件进去匹配需要删除 path&#xff0c;存起来出去时在加上 示意图&#xff1a; 代码实现如下&#xff1a; rout…

ASCII码-对照表

ASCII 1> ASCII 控制字符2> ASCII 显示字符3> 常用ASCII码3.1> 【CR】\r 回车符3.2> 【LF】\n 换行符3.3> 不同操作系统&#xff0c;文件中换行 1> ASCII 控制字符 2> ASCII 显示字符 3> 常用ASCII码 3.1> 【CR】‘\r’ 回车符 CR Carriage Re…

安装OpenSearch

title: “安装opensearch” createTime: 2021-11-30T19:13:4508:00 updateTime: 2021-11-30T19:13:4508:00 draft: false author: “name” tags: [“es”,“安装”] categories: [“OpenSearch”] description: “测试的” 说明 基于Elasticsearch7.10.2 的 opensearch-1.1.…

arcgis搭建离线地图服务WMTS

Arcgis搭建离线地图服务WMTS 发布时间&#xff1a;2021-03-04 版权&#xff1a; ARCGIS搭建离线地图服务器&#xff0c;进行离线地图二次开发 2. 离线地图服务发布&#xff08;WMTS服务&#xff09; &#xff08;详细教程&#xff1a;卫星地图_高清卫星地图_地图编辑_离线地…

商品秒杀系统整理

1、使用redis缓存商品信息 2、互斥锁解决缓存击穿问题&#xff0c;用缓存空值解决缓存穿透问题。 3、CAS乐观锁解决秒杀超卖的问题 4、使用redission实现一人一单。&#xff08;分布式锁lua&#xff09;脚本。 5、使用lua脚本进行秒杀资格判断&#xff08;将库存和用户下单…

jupyter notebook进不去指定目录怎么办?

首先激活你要使用的虚拟环境 刚开始是现在 (base) C:\Users\lenovo>目录下 直接输入你想进入的盘 (base) C:\Users\lenovo>e:此时再cd (base) C:\Users\lenovo>cd E:\tim\learn_pytorch 就可以进入了 安装3.4.1.15问题 已经有了最新python版本的虚拟环境&#…

【实战项目之个人博客】

目录 项目背景 项目技术栈 项目介绍 项目亮点 项目启动 1.创建SSM&#xff08;省略&#xff09; 2.配置项目信息 3.将前端页面加入到项目中 4.初始化数据库 5.创建标准分层的目录 6.创建和编写项目中的公共代码以及常用配置 7.创建和编写业务的Entity、Mapper、…

GE IS220PVIBH1A 336A4940CSP16 电源模块

GE IS220PVIBH1A 336A4940CSP16 电源模块是通用电气&#xff08;GE&#xff09;的一种电源模块&#xff0c;用于工业控制和电力系统中&#xff0c;提供电源供应和保护功能。以下是这种类型电源模块的一般特点和功能&#xff1a; 电源供应&#xff1a;GE IS220PVIBH1A 336A4940C…

电脑WIFI突然消失

文章目录 1. 现象2. 解决办法1&#xff1a;重新启用无线网卡设置3. 解决办法2&#xff1a;更新无线网卡驱动4. 解决办法3&#xff1a;释放静电5. 解决办法4&#xff1a;拆机并重新插拔无线网卡 1. 现象 如下图&#xff1a;电脑在使用过程中WIFI消失 设备管理器中的无线网卡驱…

数据通信——应用层(域名系统)

引言 TCP到此就告一段落&#xff0c;这也意味着传输层结束了&#xff0c;紧随其后的就是TCP/IP五层架构的应用层。操作系统、编程语言、用户的可视化界面等等都要通过应用层来体现。应用层和我们息息相关&#xff0c;我们使用电子设备娱乐或办公时&#xff0c;接触到的就是应用…

19.组合模式(Composite)

意图&#xff1a;将对象组成树状结构以表示“部分&#xff0d;整体”的层次结构&#xff0c;使得Client对单个对象和组合对象的使用具有一致性。 上下文&#xff1a;在树型结构的问题中&#xff0c;Client必须以不同的方式处理单个对象和组合对象。能否提供一种封装&#xff0c…

基于jquery开发的Windows 12网页版

预览 https://win12.gitapp.cn 首页代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"refresh" content"0;urldesktop.html" /> <meta name"viewport&…

selenium中ActionChains方法详细讲解

前言 本文将介绍Selenium中的ActionChains类及其使用方法&#xff0c;帮助您模拟用户在网页上的鼠标和键盘操作。了解ActionChains的常用方法和示例代码&#xff0c;可轻松实现移动鼠标、点击元素、拖拽元素等操作。通过本文的学习&#xff0c;您能更好地应用ActionChains解决自…

Vue中开发中Mock和总线了解以及应用

&#x1f3c5;我是默&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;在这里&#xff0c;我要推荐给大家我的专栏《Vue》。&#x1f3af;&#x1f3af; &#x1f680;无论你是编程小白&#xff0c;还是有一定基础的程序员&#xff0c;这个专栏…