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.mzph.cn/news/87744.shtml

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

相关文章

Oracle判断函数

CASE WHEN 语法&#xff1a; CASE WHEN 条件1 THEN 返回值1WHEN 条件2 THEN 返回值2ELSE 默认值END -- 对 EMP 的 DEPTNO 字段进行判断,显示出对应的部门名称 SELECT E.*, CASE WHEN E.DEPTNO10 THEN ACCOUNTINGWHEN E.DEPTNO20 THEN RESEARCHWHEN E.DEPTNO30 THEN SALES…

安装Python3.x--Windows

1 下载安装包 确定安装是干什么&#xff0c;要下哪个版本&#xff08;如果是配置项目环境&#xff0c;最好按项目需求的版本来装&#xff09; 1.1 官网链接 https://www.python.org 最新版本 指定版本 2 安装说明 点击下载exe&#xff0c;运行自定义安装路径&#xff0c;下…

什么是泛型?

泛型&#xff08;Generics&#xff09;是一种编程语言特性&#xff0c;它允许在编写代码时使用未指定具体类型的变量、参数或返回值。泛型的作用是增加代码的灵活性和重用性&#xff0c;并提高代码的类型安全性。 泛型可以应用于各种数据结构和算法中&#xff0c;例如集合类&a…

TS编译选项——不允许使用隐式any类型、不明确类型的this、严格检查空值、编译后文件自动设置严格模式

一、不允许使用隐式any类型 在tsconfig.js文件中配置noImplicitAny属性 {"compilerOptions": {// 不允许使用隐式any类型"noImplicitAny": true} } 开启后即可禁止使用隐式的any类型 注意&#xff1a;显式的any类型并不会被禁止 二、不允许使用不明确类…

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

今日已办 Venus 的 Trace 无感化 定义 handler 函数 fiber.Handler 的主要处理逻辑返回处理中出现的 error返回处理中响应 json 的函数 // handler // Description: // Author xzx 2023-08-26 18:00:03 // Param c // Return error // Return func() error : function for …

和 Node.js 说拜拜,Deno零配置解决方案

不知道大家注意没有&#xff0c;在我们启动各种类型的 Node repo 时&#xff0c;root 目录很快就会被配置文件塞满。例如&#xff0c;在最新版本的 Next.js 中&#xff0c;我们就有 next.config.js、eslintrc.json、tsconfig.json 和 package.json。而在样式那边&#xff0c;还…

Spring面试题9:Spring的BeanFactory和FactoryBean的区别和联系

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说一说Spring的BeanFactory和FactoryBean的区别和联系 区别:BeanFactory是一个工厂接口,主要负责管理和创建Bean实例。它是Spring提供的最底层的…

优维产品最佳实践:主机合规性检查

我们常常会感到这样的困惑&#xff0c;为什么这么多的无效主机记录&#xff0c;为什么这些主机很多信息空白&#xff0c;当许多人一起维护主机信息时&#xff0c;常常会出现信息错漏的情况。主机是运维最重要最基本的CMDB信息&#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…

linux之df命令 查看分区大小

linux命令df linux命令&#xff1a;检查文件系统的磁盘空间占用情况。 格式&#xff1a;df [选项] 说明&#xff1a;df命令可显示所有文件系统对I节点和磁盘块的使用情况。 命令中各个选项的含义&#xff1a; df -a&#xff1a;显示所有文件系统的磁盘使用情况&#xff0c;包括…

混合Rollup:探秘 Metis、Fraxchain、Aztec、Miden和Ola

1. 引言 混合Rollup为新的以太坊L2扩容方案&#xff0c;其分为2大类&#xff1a; 将乐观与ZK技术结合的混合Rollup同时支持公开智能合约 和 私人智能合约 的混合Rollup 本文将重点关注Metis、Fraxchain、Aztec、Miden和Ola这五大项目。 2. 何为混合Rollup&#xff1f; 混合…

MySQL-树型结构数据查询

表结构 进行树形结构查询&#xff0c;利用特殊语法进行操作 with recursive t as(select parent_id , business_namefrom business_line where id 21union allselect a.parent_id, a.business_namefrom business_line a join t on a.id t.parent_id) select business_name f…

[AI Agent学习] MetaGPT源码浅析

前言 工作上&#xff0c;需要使用AI Agent&#xff0c;所以需要深入学习一下AI Agent&#xff0c;光阅读各种文章&#xff0c;总觉无法深入细节&#xff0c;所以开看各类AI Agent相关的开源项目&#xff0c;此为第一篇&#xff0c;学习一下MetaGPT的源码。 基本目标 MetaGPT是一…

【深度学习实验】前馈神经网络(八):模型评价(自定义支持分批进行评价的Accuracy类)

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. __init__(构造函数) 2. update函数(更新评价指标) 5. accumulate(计算准确率) 4. reset(重置评价指标) 5. 构造数据进行测试 6. 代码整合 一、实验介绍 本文将实…

进行 XSS 攻击 和 如何防御

跨站脚本攻击&#xff08;XSS 攻击&#xff09;是 Web 开发中最危险的攻击之一。以下是它们的工作原理以及防御方法。 XSS 攻击 跨站脚本攻击就是在另一个用户的计算机上运行带有恶意的 JS 代码。假如我们的程序没有对这些恶意的脚本进行防御的话&#xff0c;他们就会由我们的…

【Java】泛型 之 super通配符

我们前面已经讲到了泛型的继承关系&#xff1a;Pair<Integer>不是Pair<Number>的子类。 考察下面的set方法&#xff1a; void set(Pair<Integer> p, Integer first, Integer last) {p.setFirst(first);p.setLast(last); }传入Pair<Integer>是允许的&…

李宏毅hw-10 ——adversarial attack

一、查漏补缺&#xff1a; 1.关于glob.glob的用法&#xff0c;返回一个文件路径的 列表&#xff1a; 当然&#xff0c;再套用1个sort&#xff0c;就是将所有的文件路径按照字母进行排序了 2.relpath relative_path返回相对于基准路径的相对路径的函数 二、代码剖析&#xff…

Mybatis连接DB2数据库时,FETCH FIRST {n} ROWS ONLY不能参数化解决

Mybatis连接DB2数据为时 ......WHERE ROW_NUM_HAHA > #{start,jdbcTypeNUMERIC} FETCH FIRST #{pageSize,jbdcTypeNUMERIC} ROWS ONLY...... 如果像上面这样写是不行的。查过资料后&#xff0c;才发现FETCH FIRST后面的值是不能参数化的&#xff0c;只能写死。而Mybatis中…

STM32单片机入门学习(四)-蜂鸣器

蜂鸣器接线 低平蜂鸣器&#xff0c;低电平发声&#xff0c;高电平不发声&#xff0c; 三个排针&#xff0c;VCC接3.3v&#xff0c;GND接地&#xff0c;I/O接A0口&#xff0c;如图&#xff1a; 蜂鸣器代码&#xff1a;响一秒停半秒 #include "stm32f10x.h" #includ…

MySQL 排序规则

文章目录 1.简介2.支持的排序规则3.设置排序规则4.中文排序规则参考文献 1.简介 字符集是一组符号和编码。排序规则是一组用于比较字符集中的字符的规则。 每个 MySQL 字符集可以支持一个或者多个排序规则&#xff0c;用于定义每个字符的比较规则&#xff0c;包括是否区分大小…