关于python练习的小项目,其实就是一些常用的模块的针对练习

一、找出电脑中遗忘的大文件

# !/usr/bin/env python

# _*_ coding:utf-8 -*-

import os

def old_file(path, file_size): # 传入路径,和规定的文件大小阈值

for dirpath, dirnames, filenames in os.walk(path): # os.walk 用法

for target_file in filenames:

target_file = os.path.join(dirpath, target_file) # 拼接规定目录下所有文件

if not os.path.isfile(target_file): # 异常处理,有的不一定是文件

continue

size = os.path.getsize(target_file) # 获取该文件大小,为下面作比对做准备

if size > file_size:

size = size//(1024 * 1024) # 转换成MB

size = '%dMB' %size

print('文件路径:%s大小:%s'%(target_file, size))

if __name__ == '__main__':

print("建议这里直接赋值粘贴即可")

files = input("请输入文件路径:")

size = int(input('输出规定的大小(单位MB):'))

size = size * 1024 *1024 # 输入的大小化为MB

try: # 异常处理,防止输入错误

old_file(files, size)

except:

print("输入的路径有误")

输出样例:找出遗忘的大文件输出样例

二、制作密码生成器

# !/usr/bin/env python

# _*_ coding:utf-8 -*-

import random as r # random模块的使用

def toatl(a,b,c,d):

sum_ = upper_(a) + lower_(b) + plot_(c) + nums_(d) # 调用下面的函数

sum_ = ''.join(r.sample(sum_, len(sum_))) # 将sum_内容打乱,并将返回的列表作为字符串输出

print(sum_)

def upper_(count):

upp = 'QWERTYUIOPASDFGHJKLZXCVBNM'

return ''.join(r.choices(upp, k = count)) # 从upp中随机选出a个返回

def lower_(count):

low = 'qwertyuiopasdfghjklzxcvbnm'

return ''.join(r.choices(low, k=count)) # 从low中随机选出b个返回

def plot_(count):

pl = '!#$%&*.'

return ''.join(r.choices(pl, k=count)) # 从pl中随机选出c个返回

def nums_(count):

nm = '1234567890'

return ''.join(r.choices(nm, k=count)) # 从nm中随机选出d个返回

if __name__ == '__main__':

toatl(1,3,1,8) #输入想要随机生成的密码对应大写字母个数,小写字母个数,特殊符号个数,数字个数

输出样例:根据代码我的随机个数分别是1,3,1,8

三、海龟画美国队长的盾

# !/usr/bin/env python

# _*_ coding:utf-8 -*-

import turtle as tl # 导入turtle

def circle_(): # 先画圆

col = ['red', 'white', 'red', 'blue'] # 定义颜色

rad = [200,150,100,50] # 分别定义圆的半径

tl.penup() # 抬笔

tl.goto(0,-200) # 定义初始位置

top = -150 # 定义一个增加的变量,调整圆的位置

for i in range(4): # 美国队长的盾,四个圆

tl.fillcolor(col[i]) # 填充刚刚设置好的颜色

tl.begin_fill() # 开始填充

tl.circle(rad[i]) # 画圆

tl.end_fill() # 填充结束

tl.goto(0, top) # 位置上移top

top += 50 # 调整top大小

def star(): # 画星星

tl.goto(-46,15) # 参数自己调试

tl.fillcolor('white') # 白色的星星

tl.begin_fill() # 开始填充

for _ in range(5): # 参数自己调试

tl.forward(95)

tl.right(144)

tl.end_fill()

tl.done() # 画完收笔,保持画面

if __name__ == "__main__":

circle_() #调用两个函数

star()

输出样例:

四、为下载的内容添加进度条

import requests

def download_file(url, path):

r = requests.get(url, stream=True) # 链接地址,获取内容赋值给r

content_size = int(r.headers['content-length']) # 获取将要下载的内容的总长度

print('下载开始')

with open(path, "wb") as f: # 开始把内容写入到path中,格式为wb,赋值给 f

n = 1;

for chunl in r.iter_content(chunk_size=1024): # 边下载边存硬盘,大小可修改,单位为B

loaded = (n * 1024.0 / content_size) * 100 # 进度条

f.write(chunl) # 写入文件

print('\r' + '已下载{:.2f}%'.format(loaded), end='', flush=True) # 调整输出内容覆盖

n += 1 # 每次下载完+1

# 不能同时两行print

if __name__ == "__main__"

download_file("https://vd4.bdstatic.com/mda-khkkr38rhxhf5sms/mda-khkkr38rhxhf5sms.mp4", './dome5.mp4')

# 路径+视频源地址

输出样例:

五、字符画的转变

# !/usr/bin/env python

# _*_ coding:utf-8 -*-

from PIL import Image # pillow模块

char_set = 'Iloveyou' # 定义字符画要写的字

lh = Image.open("images\\char_loveheart.png") # 打开预存好的图片

lh = lh.resize((70, 30), Image.ANTIALIAS) # 调整尺寸大小,后面参数防止失真

lh = lh.convert('L') # 转为灰度图

lh.save('images\\loveheart_1.png') # 存储

def set_gray(gray1, count1):

if gray1 >= 210: # 该数值调试得出,注意字符画背景要求为纯色

return ' '

else:

return char_set[count1]

text = ''

count = -1 # 置一个-1的参数,下面会用到count值不断上调位置

for i in range(lh.height):

for j in range(lh.width): # 分别获取图片坐标,像素的位置

count += 1

gray = lh.getpixel((j, i)) # 获取位置的RGB

if isinstance(gray, tuple):

gray = int(0.2126 * gray[0] + 0.7152 * gray[1] + 0.0722 * gray[2])

# 参数调试所得

# print(gray)

if count == len(char_set): #如果读完一行,则跳行,count值为0

count = 0

text += set_gray(gray, count)

text += '\n' # 输出换行,读取下一行

with open('pic_loveheart.txt', 'w') as f: # 存入文档

f.write(text)

输出样例:我本地存有心的图片,网上找即可,注意ps成纯色背景

六、简单的小爬虫

# !/usr/bin/env python

# _*_ coding:utf-8 -*-

import requests

import pprint

import time

import os

from urllib import request

class Haokanshipin(object): # 定义一个好看视频的类

def __init__(self, game):

self.headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0'

} # 请求头

self.url = "https://haokan.baidu.com/videoui/api/videorec?tab=game_%s&act=pcFeed&pd=pc&num=15&shuaxin_id=%d" % (

game, time.time()) # 抓包发现内容和时间戳

def makepath(self):

if not os.path.exists('./好看视频短视频'):

os.mkdir('./好看视频短视频') # 创建目录

def get_data(self):

res = requests.get(url=self.url, headers=self.headers) # 爬取内容

response = res.json() # 转化为json格式,抓包发现是json格式,所以转换

# pprint.pprint(response)

response_list = response['data']['response']['videos'] # 剥洋葱,获取连接的列表

for content in response_list:

title = content['title'] + '.mp4' # 标题

play_url = content['play_url'] # 路径

play_path = './好看视频短视频' + '/' + title # 拼接好得到的本地路径

print('%s正在下载中' % title)

request.urlretrieve(play_url, play_path) #下载,文件较大,也可二进制分块写入

print('%s下载成功' % title)

def run(self): # 执行

self.makepath()

self.get_data()

if __name__ == '__main__':

print('现在支持现在游戏系列有英雄联盟,和平精英,王者荣耀,第五人格,明日之后,穿越火线,

迷你世界')

print('-----------------------------------------------------------------------------------')

game_list = {'王者荣耀': 'wzry', '和平精英': 'hpjy', '第五人格': 'dwrg', '明日之后': 'mrzh',

'QQ飞车': 'qqfc', '英雄联盟': 'yxlm',

'穿越火线': 'cyhx', '迷你世界': 'mnsj'}

#抓包所得支持的内容,通过字典转化为url需要的内容

game = input('输入你想要下载的游戏视频(输入游戏全称哦):')

try: # 异常处理

game = game_list[game]

except:

print('请检查您输入的游戏名是否正确')

hksp = Haokanshipin(game) # 实例化

hksp.run() # 执行代码

输出样例:

以上都是比较简单适合新手练习的小项目,主要涉及os模块,pillow模块,turtle海龟绘图模块,random模块,和爬虫有关的 requests和xpath模块。

希望对新手的学习有所帮助,最后(再来一遍QWQ),假期来临,个人想要收几个入门学习python的新手,本人主要是爬虫方向,如果有意,可以加我个人Q:2135432606,记得备注知乎

python需要多大的硬盘_适合新手练习的几个python小项目相关推荐

  1. python秒表小项目_适合新手练习的几个python小项目

    关于python练习的小项目,其实就是一些常用的模块的针对练习 一.找出电脑中遗忘的大文件 # !/usr/bin/env python # _*_ coding:utf-8 -*- import o ...

  2. python实现登录支付宝收能量_适合零基础人群学习的Python入门教程

    适合零基础人群学习的Python入门教程学什么?小编为大家准备的Python学习教程,课程主要讲解:Python核心编程.Linux基础.前端开发.Web开发.爬虫开发.人工智能等内容. 对于初学者想 ...

  3. 基于stm32的简单小项目_适合小白做的创业3个小项目,简单上手

    现在每一位为了能够让自己和家人过上更好地生活,都会不满足于现状的单方面地工作,想要通过创业来改变如今的局面,这种想法也是好的,但是我们需要知道想要创业,并不是那么的容易,需要有一定的技能和管理水平才能 ...

  4. python爬虫需要调用什么模块_适合新手练习的Python项目有哪些?Python爬虫用什么框架比较好?...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. Python爬虫一般用什么框架比较好?一般来讲,只有在遇到比较大型的需求时 ...

  5. dt测试软件的学习心得,无线网络优化dt测试心得_适合新手入门,高手进阶_5年项目经验实战经验.docx...

    无线网络优化DT测试心得_适合新手入门,高手进阶_5年项目经验实战经验 无线网络优化DT测试心得_适合新手入门,高手进阶_5年项目经验实战经验 路测中不常见的问题和个人心得 1.深井子镇投诉测试报告 ...

  6. python和lisp学哪个好_五位专家跟你讲讲为啥Python更适合做AI/机器学习

    摘要: 为什么Python会在这股深度学习浪潮中成为编程语言的头牌?听听大牛如何解释吧! 1.Python网络编程框架Twisted的创始人Glyph Lefkowitz(glyph): 编程是一项社 ...

  7. python小白逆袭大佬_飞桨深造学院百度深造7天打卡第6期:python小白反攻大神的经验,深度,学习,日,第六期,Python,小白逆袭,结营,心得...

    先来说说这七天的课程里有哪些具体收获吧!!! Day1-人工智能概述与入门基础 第一天只是学习了一些人工智能的基本的有关知识,然后讲了讲python的基本语法(哈哈,对于刚刚学完python的我,第一 ...

  8. silklabo哪个公众号有资源_适合新手的公众号投稿资源大整合!

    今天又给大家整理了一份公众号投稿资源,这些公众号大部分都是处于发展中的新公众号,虽然稿酬不会很多,但是适合新手们锻炼文笔,过稿率也会高一点哦,大家可以试试. 下面是整理的22个公众号投稿资源,按照稿费 ...

  9. python大神作品_掌握了这24个顶级Python库,你就是大神!

    全文共11815字,预计学习时长24分钟 Python有以下三个特点: · 易用性和灵活性 · 全行业高接受度:Python无疑是业界最流行的数据科学语言 · 用于数据科学的Python库的数量优势 ...

最新文章

  1. 2018年人工智能将赋能所有行业,未来市场将超过400亿美元
  2. OpenCV提炼角点位置的实例(附完整代码)
  3. RabbitMQ消息自动重新入队
  4. 计算机的组成和Linux的发行版本介绍
  5. 在Ubuntu下如何压缩一个文件夹
  6. Android报“android.content.res.Resources$NotFoundException: String resource ID #0x2”错误
  7. eclipse类文件无法找到_「Revit技巧」新建项目和族时无法找到样板文件(丢失)?...
  8. Knowledge Graph - NLP
  9. 读书-算法《程序设计导引及在线实践》-简单计算题3:校门外的树
  10. C语言打印九九乘法表
  11. web前端 vue 面试题(一)
  12. 建立数据挖掘的用户画像
  13. HDU 5651 xiaoxin juju needs help 组合数
  14. 无限级树状图html5,无限树状列表的实现
  15. 扩展欧几里得算法 | exgcd 证明 + 板子 + 习题
  16. vue run build 错误 CssSyntaxError错误
  17. 黑客黑了自己!恶意软件开发者不小心感染了自己的 PC,致数据泄漏
  18. 网站信息收集工具RED_HAWK
  19. 消息服务器 负载均衡,一文看懂集群、分布式与负载均衡的关系
  20. Mob 第三方分享

热门文章

  1. 伯虎点秋香-rqnoj-144
  2. 三年级上册计算机计划书,三年级上册期末复习计划书
  3. pbe更新服务器不在线是什么意思,英雄联盟3.6PBE更新内容_英雄联盟3.6PBE更新了什么_快吧游戏...
  4. python适合开发游戏吗_对编程一知半解,如何带娃像玩游戏一样“玩”编程?
  5. JVM总结(面试必备)
  6. fabs()函数以及C ++中的示例
  7. 如何像打王者荣耀一样让自己拼了命的去学习
  8. 监听手机端虚拟键盘的弹出和隐藏
  9. 四十七、python学习之Django框架(DRF框架三):Request与Response、视图与视图集、路由
  10. wps怎么取消自动编号?四种方法任你选择