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.xdnf.cn/news/142016.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaEE】多线程案例-线程池

文章目录 1. 什么是线程池2. 为什么要使用线程池&#xff08;线程池有什么优点&#xff09;3. 如何使用Java标准库提供的线程池3.1 创建一个线程池对象3.2 什么是工厂模式3.3 为什么要使用工厂模式3.4 Executors 创建不同具有不同特性的线程池3.5 ThreadPool 类的构造方法3.6 线…

C++之list成员函数应用总结(二百三十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

Neo4j 与 Cypher 基础

更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验 简介 Neo4j 是用 Java 实现的开源 NoSQL 图数据库。从2003年开始开发&#xff0c;2007年正式发布第一版&#xff0c;其源码托管于 GitHub。 与常见的关系型数据库不同&#xff0c;Neo4j 基于图图结构来表示…

学习:原码-反码-补码

文章目录 前提知识原码详解反码补码 二进制负数的运算 前提知识 正数不需要进行原码反码补码一说&#xff0c;正数就是正数&#xff0c;我们原码反码补码是为了针对负数 &#xff08;按道理来说其实根本不存在什么码&#xff0c;只有二进制机器码&#xff0c;不过是为了方便计…

华为云云耀云服务器L实例评测|华为云上安装etcd

文章目录 华为云云耀云服务器L实例评测&#xff5c;华为云上安装etcd一、什么是etcd官方硬件建议 二、华为云主机准备三、etcd安装1. 安装预构建的二进制文件2. 从源代码构建 四、etcd服务注册与发现1. 配置etcd2. 使用systemctl 管理启动etcd服务3. 注册服务4. 发现服务 五、其…

ISE_ChipScope Pro的使用

1.ChipScope Pro Core Inserter 使用流程 在之前以及编译好的流水灯实验上进行学习 ChipScope的使用。 一、新建一个ChipScope 核 点击Next,然后在下一个框中选择 Finish&#xff0c;你就会在项目菜单中看到有XX.cdc核文件。 二、对核文件进行设置 右键“Synthesize – XST” …

最快的包管理器--pnpm创建vue项目完整步骤

1.用npm全局安装pnpm npm install -g pnpm 2.在要创建vue项目的包下进入cmd&#xff0c;输入&#xff1a; pnpm create vue 3.输入项目名字&#xff0c;选择Router,Pinia,ESLint,Prettier之后点确定 4.cd到创建好的项目 &#xff0c;安装依赖 cd .\刚创建好的项目名称\ p…

怎样快速打开github.com

1访问这个网站很慢是因为有DNS污染&#xff0c;被一些别有用心的人搞了鬼了&#xff0c; 2还有一个重要原因是不同的DNS服务器解析的速度不一样。 1 建议设置dns地址为114.114.114.114.我觉得假设一个县城如果有一个DNS服务器的话&#xff0c;这个服务器很可能不会存储…

[linux]服务器挂代理提升下载权重速度

写在前面 这里主要以huggingface下载权重为例&#xff0c;介绍如何在linux中部署代理提升下载速度 实际操作 第一步&#xff1a;服务器安装clash文件 https://github.com/Dreamacro/clash/releases#下载clash链接第二步&#xff1a;使用自己的配置文件 将config.yaml替换掉…

前端项目练习(练习-003-webpack-01)

学习webpack前&#xff0c;首先&#xff0c;创建一个web-003项目&#xff0c;内容和web-002一样。&#xff08;注意将package.json中的name改为web-003&#xff09; 想想&#xff0c;我们开发Java 的时候&#xff0c;Maven帮我们做的主要是编译&#xff0c;打包等等内容。开发前…

Spring Cloud Alibaba Gateway 简单使用

文章目录 Spring Cloud Alibaba Gateway1.Gateway简介2. 流量网关和服务网关的区别3. Spring Cloud Gateway 网关的搭建3.1 Spring Cloud Gateway 配置项的说明3.2 依赖导入3.3 配置文件 Spring Cloud Alibaba Gateway 1.Gateway简介 Spring Cloud Gateway是一个基于Spring F…

计算机竞赛 深度学习乳腺癌分类

文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度&#xff0c;召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…

构建自己的物料解决方案——构建物料库,实现前端设计

01: 数据拦截简化数据获取流程 /** * 响应拦截器&#xff1a; * 服务端返回数据之后&#xff0c;前端 .then 之前被调用 */ service.interceptors.response.use((response) > {const { success, message, data } response.dataif (success) {return data}// TODO&#xff…

法规标准-UN R48标准解读

UN R48是做什么的&#xff1f; UN R48全名为关于安装照明和灯光标志装置的车辆认证的统一规定&#xff0c;主要描述了对各类灯具的布置要求及性能要求&#xff1b;其中涉及自动驾驶功能的仅有6.25章节【后方碰撞预警信号】&#xff0c;因此本文仅对此章节进行解读 功能要求 …

Python中的设计模式 -- 单例

迷途小书童 读完需要 2分钟 速读仅需 1 分钟 当我们谈到单例模式时&#xff0c;可以想象一个非常特殊的餐厅&#xff0c;这个餐厅只有一个桌子&#xff0c;无论多少人来用餐&#xff0c;都只能坐在这个桌子上。这个桌子就是餐厅的单例&#xff0c;它保证了整个餐厅中只有一个桌…

Element登录+注册

Element登录注册 1.1 定义1.3 完成用户注册登录界面搭建1.3.3 下载js依赖1.3.4 创建用户登录注册组件1.3.5 配置路由 二、数据交互2.1 数据导入2.3 安装引用相关模块 2.3.1 安装相关模块2.3.2 引用相关模块2.4 axios之get请求2.5 axios之post请求 四、注册 1.1 定义 ElementUI是…

bash中执行比较的几种方法

bash 脚本中的 test 命令用于检查表达式的有效性&#xff0c;检查命令或表达式为 true 或者 false。此外&#xff0c;它还可以用于检查文件的类型和权限。 如果命令或表达式有效&#xff0c;则 test 命令返回0&#xff0c;否则返回1。 使用 test 命令 test 命令的基本语法如…

腾讯mini项目-【指标监控服务重构】2023-08-29

今日已办 Collector 指标聚合 由于没有找到 Prometheus 官方提供的可以聚合指定时间区间内的聚合函数&#xff0c;所以自己对接Prometheus的api来聚合指定容器的cpu_avg、cpu_99th、mem_avg 实现成功后对接小组成员测试完提供的时间序列和相关容器&#xff0c;将数据记录在表格…

Qt/C++音视频开发56-udp推流和拉流/组播和单播推流

一、前言 之前已经实现了rtsp/rtmp推流&#xff0c;rtsp/rtmp/hls/flv/ws-flv/webrtc等拉流&#xff0c;这种一般都需要依赖一个独立的流媒体服务程序&#xff0c;有没有一种更便捷的方式不需要这种依赖&#xff0c;然后又能实现推拉流呢&#xff0c;当然有的那就是udpp推流&a…

前端项目练习(练习-004-webpack-02)

学习前&#xff0c;首先&#xff0c;创建一个web-004项目&#xff0c;内容和web-003一样。&#xff08;注意将package.json中的name改为web-004&#xff09; 前面的例子&#xff0c;成功将js文件打包到了dist中&#xff0c;但是我们有三个文件&#xff0c;css&#xff0c;js和h…