当前位置: 首页 > news >正文

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()

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


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

相关文章:

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

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

网络安全--防火墙旁挂部署方式和高可靠性技术

目录 一、防火墙 二、防火墙旁挂部署方式 使用策略路由实现 第一步、IP地址配置 第二步、配置路由 第三步、在防火墙上做策略 第四步、在R2上使用策略路由引流 三、防火墙高可靠性技术--HRP 拓扑图 第一步、配置SW1、SW2、FW1、FW2 第二步、进入防火墙Web页面进行配…...

c++最小步数模型(魔板)

C 最小步数模型通常用于寻找两个点之间的最短路径或最少步数。以下是一个基本的 C 最小步数模型的示例代码&#xff1a; #include<bits/stdc.h> using namespace std; const int N 1e5 5; vector<int> G[N]; int d[N]; bool vis[N];void bfs(int s) {queue<i…...

【每日一题Day337】LC460LFU 缓存 | 双链表+哈希表

LFU 缓存【LC460】 请你为 最不经常使用&#xff08;LFU&#xff09;缓存算法设计并实现数据结构。 实现 LFUCache 类&#xff1a; LFUCache(int capacity) - 用数据结构的容量 capacity 初始化对象int get(int key) - 如果键 key 存在于缓存中&#xff0c;则获取键的值&#x…...

解决老版本Oracle VirtualBox 此应用无法在此设备上运行问题

问题现象 安装华为eNSP模拟器的时候&#xff0c;对应的Oracle VirtualBox-5.2.26安装的时候提示兼容性问题&#xff0c;无法进行安装&#xff0c;具体版本信息如下&#xff1a; 软件对应版本备注Windows 11专业工作站版22H222621eNSP1.3.00.100 V100R003C00 SPC100终结正式版…...

法规标准-UN R48标准解读

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

自动化和数字化在 ERP 系统中意味着什么?

毋庸置疑&#xff0c;ERP系统的作用是让工作更轻松。它可以集成流程&#xff0c;提供关键分析&#xff0c;确保你的企业高效运营。这些信息可以提高你的运营效率&#xff0c;并将有限的人力资本重新部署到更有效、更重要的需求上。事实上&#xff0c;自动化和数字化是ERP系统最…...

python nvidia 显卡信息 格式数据

python nvidia 显卡信息 格式数据. def get_gpu_memory():result subprocess.check_output([nvidia-smi, --query-gpupci.bus_id,memory.used,memory.total,memory.free, --formatcsv])# 返回 GPU 的显存使用情况&#xff0c;单位为 Minfo []for t in csv.DictReader(result…...

LeetCode每日一题:1993. 树上的操作(2023.9.23 C++)

目录 1993. 树上的操作 题目描述&#xff1a; 实现代码与解析&#xff1a; 模拟 dfs 原理思路&#xff1a; 1993. 树上的操作 题目描述&#xff1a; 给你一棵 n 个节点的树&#xff0c;编号从 0 到 n - 1 &#xff0c;以父节点数组 parent 的形式给出&#xff0c;其中 p…...

绿色计算产业发展白皮书:2022年OceanBase助力蚂蚁集团减排4392tCO2e

9 月 15 日&#xff0c;绿色计算产业联盟在 2023 世界计算大会期间重磅发布了《绿色计算产业发展白皮书&#xff08;2023 版&#xff09;》。蚂蚁集团作为指导单位之一&#xff0c;联合参与了该白皮书的撰写。 白皮书中指出&#xff0c;落实“双碳”战略&#xff0c;绿色计算已…...

阿里云通义千问14B模型开源!性能超越Llama2等同等尺寸模型

9月25日&#xff0c;阿里云开源通义千问140亿参数模型Qwen-14B及其对话模型Qwen-14B-Chat,免费可商用。Qwen-14B在多个权威评测中超越同等规模模型&#xff0c;部分指标甚至接近Llama2-70B。阿里云此前开源了70亿参数模型Qwen-7B等&#xff0c;一个多月下载量破100万&#xff0…...

两横一纵 | 寅家科技发布10年新征程战略

2023年9月22日&#xff0c;寅家科技“寅路向前”10年新征程战略发布会在上海举办&#xff0c;来自投资领域的东方富海、深创投、高新投等知名投资机构&#xff0c;一汽大众、一汽红旗、奇瑞汽车等主机厂&#xff0c;国家新能源汽车技术创新中心、梅克朗、芯驰科技、思特威等合作…...

二值贝叶斯滤波计算4d毫米波聚类目标动静属性

机器人学中有些问题是二值问题&#xff0c;对于这种二值问题的概率评估问题可以用二值贝叶斯滤波器binary Bayes filter来解决的。比如机器人前方有一个门&#xff0c;机器人想判断这个门是开是关。这个二值状态是固定的&#xff0c;并不会随着测量数据变量的改变而改变。就像门…...

【刷题笔记9.25】LeetCode:相交链表

LeetCode&#xff1a;相交链表 一、题目描述 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 二、分析及代码 方法一&#xff1a;使用哈希Set集合 &#xff08;注意…...

打造本地紧密链接的开源社区——KCC@长沙开源读书会openKylin爱好者沙龙圆满举办...

2023年9月9日&#xff0c;由开源社联合 openKylin 社区举办的 KCC长沙开源读书会&openKylin 爱好者沙龙&#xff0c;在长沙圆满举办。这是 KCC长沙首次正式进入公众视野&#xff0c;开展开源交流活动&#xff0c;也是 openKylin 社区长沙首场线下沙龙。长沙地区及其周边的众…...

Python 笔记03(多线程)

一 打开命令行&#xff0c;查看本机IP windows r 命令行输入&#xff1a;cmd ipconfig 然后查看IPv4的地址&#xff1a;192.168.1*6.1 ipconfig 二 函数式多进程 from multiprocessing import Process import os, timedef func(name):print(进程的ID&#xff1a;, os.g…...

mysql-4:SQL的解析顺序

SQL语句的解析顺序 文章目录 SQL语句的解析顺序编写顺序与解析顺序解析顺序关键字FROMONOUTER JOINWHEREGROUP BYHAVINGSELECTDISTINCTORDER BYLIMIT 解析流程流程分析流程说明WHERE条件解析顺序 编写顺序与解析顺序 编写顺序 SELECT DISTINCT < select_list > FROM &l…...

如何通过优化Read-Retry机制降低SSD读延迟?

近日,小编发现发表于2021论文中,有关于优化Read-Retry机制降低SSD读延迟的研究,小编这里给大家分享一下这篇论文的核心的思路,感兴趣的同学可以,可以在【存储随笔】VX公号后台回复“Optimizing Read-Retry”获取下载链接。 本文中主要基于Charge Trap NAND架构分析。NAND基…...

matlab自动生成FPGA rom源码

1 matlab 源码 close all clear all clci=0:1:(300000-100-1); x=300000./(100+i); x=x./2; x=round(...

消息队列(RabbitMQ+RocketMQ+Kafka)

消息队列是一种应用程序之间通过异步通信进行数据交换的通信模式 消息队列的类型&#xff1a; 点对点&#xff0c;一对一的消息传递模型&#xff0c;其中每个消息只能被一个接收者消费。发送者将消息发送到队列中&#xff0c;而接收者从队列中获取消息并进行处理&#xff0c;…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

Oracle11g安装包

Oracle 11g安装包 适用于windows系统&#xff0c;64位 下载路径 oracle 11g 安装包...