Coder Social home page Coder Social logo

jm199504 / python-exercises Goto Github PK

View Code? Open in Web Editor NEW
8.0 2.0 4.0 27.21 MB

Python 练习册(基础操作 / 数据库 / 数据统计处理 / 图文生成 / 数据转换 / 算法题 / 小应用 / 程序开发)

Python 96.10% HTML 3.90%
python data-analysis database

python-exercises's Introduction

Python 练习册(基础操作/数据库/数据统计处理/图文生成/数据转换/算法题/笔试题/小应用/程序开发)

author language topics

【题目描述/题解】:/markdown

【代码文件】:/code

【依赖文件】:/code/files

【来源】:Github、牛客网、知乎、日常coding

【更新】:不定期更新,欢迎投稿/共建/交流:[email protected]

【知乎】:Python练习册专栏链接

题目分类

1 基础操作

1.1 统计函数运行时长

  • 一个流程涉及调用多个函数,但最近发现流程整体运行时间慢,现需要对每一个函数统计运行时长。

1.2 批量文件重命名

  • 笔记软件导出笔记到markdown格式,md文件名不符合预期,存在一串不明字符,现需要批量修改。

1.3 根据文件标题和内容生成目录

  • 将一个文件夹内的md5文件中的标题和指定内容转为目录。

1.4 执行简单命令行命令

  • 在py文件里面执行touch **.txt的命令,创建10个txt文件,分别为1-10.txt

2 数据库

2.1 插入MySQL数据库

  • 将生成促随机码题目生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中。

2.2 插入Redis数据库

  • 将生成随机码题目生成的 200 个激活码(或者优惠券)保存到 Redis 非关系型数据库中。

2.3 MongoDB数据库基本交互

  • 数据库链接、向集合插入数据、查询数据、删除指定数据、查询数据

三、数据统计处理

3.1 统计单词数量

  • 一个英文的纯文本文件,统计其中的单词出现的个数

3.2 统计最重要的词

  • 一个日记目录( txt格式),为避免分词的问题,假设内容都是英文,统计出每篇日记最重要的词。

3.3 统计代码行数

  • 一个代码目录,统计一下写过多少行代码。包括空行和注释,分别列出来。

3.4 统计HTML各类内容

  • 一个HTML文件,找出里面的标题、内容、链接、正文内容

3.5 敏感词识别

  • 一个敏感词文本文件,当用户输入敏感词语时,则打印出 Freedom,否则打印出 Human Rights。

3.6 敏感词替换*

  • 一个敏感词文本文件,当用户输入敏感词语,用星号*替换,例如当用户输入「北京是个好城市」,则变成「**是个好城市」。

3.7 统计数据空值

  • 如果你想知道某csv数据文件每一列的信息是否都有完整数据。

3.8 统计谁在用Python语言

  • csv文件,包含用户ID、等级、所使用的编程语言的字段,现输出有谁在用Python这一门语言,并且希望按照等级降序输出显示,若等级相同时,请按照用户ID升序,注意大小写忽略。

3.9 统计哪个语言最多人用

  • csv文件包含用户ID、等级、所使用的编程语言的字段,请按照编程语言使用人数降序,并输出各个语言的使用人数。

3.10 仅查看前后前几行

  • csv文件包含用户ID、等级、所使用的编程语言的字段,现需要仅读取前几行数据,或者后几行数据。

3.11 统计Python高阶玩家

  • csv文件包含用户ID、等级、所使用的编程语言的字段,现需要输出编程语言(language)使用Python并且等级(level)≥4的用户信息。

3.12 统计数字3

  • 编写一个count(3)函数统计1-100以内有几个数字3

3.13 统计指定日期数量

  • 一份数据包含time字段,包含了年/月/日 小时:分钟,客户更关心指定日期的数据量,现需要进行统计。

3.14 统计昨今返场用户

  • 有一个打卡活动需要统计:当天打卡用户是否在昨日也打卡过,现需要输出每一天打卡用户中在前一日也打过卡的用户名称。

3.15 矩阵(二维数组)相加

  • 计算两个矩阵(二维数组)相加

3.16 双值互换

  • 提供多种方法实现a和b变量值互换

3.17 字典合并

  • 合并字典

3.18 读取txt文件统计字符个数

  • 为了读取txt文件并统计字符个数,同时设计测试用例,你可以编写一个Python脚本,其中包含统计字符个数的函数以及相应的测试函数。这里使用unittest模块来进行测试。

3.19 多处理器并行计算

  • 面对计算量大的时候,尝试考虑利用多处理器的优势,实现并行计算。

四、图文生成

4.1 生成微信头像消息

  • 请将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。

4.2 生成随机码

  • 作为 Store App 独立开发者,你需要为你的应用生成随机码,使用 Python 如何生成 200 个随机码?

4.3 生成验证码

  • 生成类似于文末的字母验证码图片。

4.4 用户密码加密存储

  • 某个网站或者 APP后台管理需要使用HMAC对密码加密。

4.5 缩小图片至指定大小

  • 一个照片目录,统一修改尺寸修改不大于 iPhone5 分辨率的大小(iPhone5 分辨率:1136×640像素)

4.6 制作词云

  • 一个文本文件的重要词汇抽离生成词云。

4.7 生成二维码

  • 将文本或者链接以二维码的形式保存,同时将制定图片插入二维码或者设置为背景。

4.8 凯撒密码对输入字符串进行加密

  • 接受一个字符串和一个移位值作为参数,然后返回加密后的字符串。加密过程是通过将字符串中的每个字母字符按照移位值进行循环移位来实现的,非字母字符保持不变。

4.9 文本生成手写图片

  • 将文本转为手写体的图片。

4.10 生成不同样式的日志

  • 针对debug/info/warning/error等不同级别的日志,采用不同的样式显示。

4.11 生成箱体文本

  • 针对英文文本用箱体包裹的样式,用于标识关键信息。

4.12-生成随机数by-random

  • 使用random库生成各类随机数

五、数据转换

5.1 字典文本转表格

  • 字典txt文件转为excel文件。

5.2 表格转XML

  • excel转为txt文件。

5.3 JSON转表格

  • JSON数据转为Excel格式。

5.4 JSON转字典 & 字典转JSON

  • 将dict对象和string对象互转;将dict对象存储到JSON文件,从JSON文件读取dict数据

5.5 unix时间戳转字符串

  • 目前有很多在线Unix时间戳(timestamp)转换工具,如何用Python实现这一功能。

5.6 列表文本转表格

  • 列表txt文件转为excel文件。

5.7 优化日期格式

  • 一个CSV文件,其中的日期格式统一为mm/dd/yyyy,期望将日期格式统一转为YYYY年mm月dd日。

5.8 字典转YAML

  • 有一份python的字典(dict)对象,需要转为YAML格式。

5.9 YAML转字典

  • 有一份YAML格式,需要转为python的字典(dict)对象。

5.10 字典转PDF

  • 有一份python的字典(dict)对象,需要转为PDF格式。

5.11 URL编码转为字符串

  • 部分网页接口返回的数据是URL编码后的字符,无法直接阅读,需要转为可阅读的字符串。

5.12 结合变量值将模板文件中的动态内容生成HTML页面

  • 结合变量值将模板文件中的动态内容生成HTML页面,实现生成新的HTML页面。

六、算法题/笔试题

6.1 密码游戏

  • 牛牛和牛妹一起玩密码游戏,牛牛作为发送方会发送一个4位数的整数给牛妹,牛妹接收后将对密码进行破解。

6.2 蜗牛多久能爬上去

  • 有一棵光滑的葡萄树高 18 分米,一只蜗牛从底部向上攀,每分钟爬 3 分米,但每爬一分钟后都要休息一分钟,休息期间又要滑下 1 分米。请问最快在第几分钟,蜗牛可以爬到树顶端。

6.3 画满天五角星

  • 老师布置了一个作业要小盆友画五角星,并且需要画很多个,但是小明想偷懒,所以准备用Python来画五角星。

6.4 排列组合

  • 提供三个字符,比如:a、b、c,需要输出所有组合情况,组合里可重复字符。

6.5 菱形图案

  • 打印用“*”组成的菱形图案。

6.6 递归计算兔子的数量

  • 兔子的数量以这样的方式增长:每个月的兔子数量等于它前一个月的兔子数量加它前两个月的兔子数量,即f(n)=f(n-1)+f(n-2)。假设第1个月的兔子有2只,第2个月的兔子有3只,你能使用递归的方法求得第n个月的兔子有多少只吗?

6.7 球的表面积

  • 计算球的表面积

6.8 最长连续序列

  • 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。

6.9 轮转数组

  • 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

6.10 最大数

  • 给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。

6.11 反转链表

  • 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

6.12 快速排序

  • 给你一个整数数组 nums ,使用快速排序对 nums 进行排序。

6.13 冒泡排序

  • 给你一个整数数组 nums ,使用冒泡排序对 nums 进行排序。

6.14 最长回文子串

给定一个字符串 s,输出 s 中最长的回文子串,其中回文子串指该子串倒序与正序相同。

6.15 整数反转

  • 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转,有效数值范围为 [(−2)^31, 2^31 − 1],若超出有效数值范围则输出 0。

6.16 无重复字符的最长子串

  • 给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。

6.17 最长公共前缀

  • 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。

6.18 三数之和

  • 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k , 同时还满足 nums[i] + nums[j] + nums[k] == 0 。请你返回所有和为 0 且不重复的三元组。

6.19 回文数

  • 判断一个数字是否为回文数,如果从左边和右边读的结果是一样的则是回文数,若为回文数返回True,反之返回False。

6.20 字符串相乘

  • 传入一个字符串和一个数值,输出的结果是将字符串重复数值的次数。

6.21 全排列

  • 给定一个不含重复数字的数组 nums ,返回其所有可能的全排列 。你可以按任意顺序返回答案。

6.22 两数之和

  • 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

6.23 最大子数组和

  • 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和,子数组是数组中的一个连续部分。

6.24-01背包

  • 输入两个整数*n,m ,n表示你拥有的积分,m表示有多少礼品,接下来有m行,每行a和b,a表示物品所需要消耗的积分,b表示这个物品大家的喜爱值,a和b取值范围是[1,100],装入最多的喜爱值。

6.25-两数之和

  • 给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。

6.26-两两相等数有一个不等数

  • 给定一个整数数组里面有很多整数,基本都是两两相等,但是存在一个不等数,请输出这个不等数。

6.27-蛇形座位表

  • 现在有一个会场需要您进行座位排序,你希望ID临近的参会人员挨着坐,所以你想到了蛇形座位表,提供你一份ID列表,比如:[1,2,3,4,5,6,7...,87],每一排是10位,请生成一份二维数组,并且存储到excel表。

七、小应用/程序开发

7.1 留言簿应用

  • 基于 Python 的 Web 框架的Web 版本留言簿应用。

7.2 FTP文件分享

  • 小A和小B在共同完成课件,希望直接通过拖拽的方式放入指定文件夹进行素材文件共享。

7.3 API方式调用百度翻译

  • 用API方式调用百度翻译接口,实现在终端输入中文,返回英文结果。

7.4 待办事项应用开发

  • 基于 Python 的 Web 框架的 Web 版本 TodoList 应用。

7.5 积分榜

  • 玩游戏:四位玩家需要记录每一轮得分,并且实时统计总分。

7.6 基于flask的用户登录和注册系统

  • 基于flask框架实现用户登录和注册系统

7.7 多线程接口性能测试

  • 设计一个多线程的性能测试框架,用于测试一个网络服务的并发能力和响应时间,需要本地搭建一个后端服务并暴露接口用于测试。

7.8 使用pytest测试

  • 测试一个简单的用户管理系统,包括用户创建、用户验证和用户信息更新的功能。

7.9 始终移动鼠标

  • 电脑需要始终开放端口提供服务,但是鼠标键盘未动,电脑会自动熄屏(无法设置永不熄屏功能),因此设计了始终移动鼠标的脚本。

7.10 实现一个随机丢球程序界面

  • 有一个单独窗体程序,实现点击鼠标即释放一个球,并随机碰撞窗体的边框实现弹起行为。

7.11 实现一个简单的问答系统

  • 提供以下的问题与答案库,实现文本匹配回答问题
question answer
**总面积 **的总面积约为960万平方公里(约为370万平方英里)。
陆地上最大的动物是什么 大象
**总人口 截至2022年,**的人口约为14亿。

7.12 实现消息发送和消息接收示例

  • 完成sender.pyreceiver.py代码,前者用于发送消息,后者运行后持续接收,直至遇到键入中断。

八、绘制图表(matplotlib)

8.1 折线图

8.2 折线图子图

8.3 柱状图

8.4 饼图

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.