python特效代码_网页爱心特效弱爆了,我让你点击网页显示所有python模块!

点击网页特效

上周写了一篇文章快速搭建个人博客的教程文章:

其中说到了一个点击网页出现爱心特效的插件 click_heart.js ,当然大家可能也见过其他博客上面,有点击网页出现类似 富强、民主、文明、和谐等等,关于代码在这里不多赘述,网上一查就能查到。代码如下:

/*鼠标点击出现文字*/

$(document).ready(function () {

var a_index = 0;

$("body").click(function (e) {

var a = new Array("富强", "民主", "文明", "和谐", "自由", "平等", "公正", "法治", "爱国", "敬业", "诚信", "友善");

var $i = $("").text(a[a_index]);

a_index = (a_index + 1) % a.length;

var x = e.pageX, y = e.pageY;

$i.css({

"z-index": 99999,

"top": y - 20,

"left": x,

"position": "absolute",

"font-weight": "bold",

"font-size": "12px",

"color": "#ff6651"

});

$("body").append($i);

$i.animate({"top": y - 180, "opacity": 0}, 1500, function () {

$i.remove();

});

});

});

div {

width: 200px;

height: 200px;

margin: 0 auto;

background-color: rgba(133, 132, 132, .2);

text-align: center;

}

使用效果如下:

点击特效

那么,既然周末闲来无事,不如给自己找点乐子吧!

获取Python模块

如何快速获取电脑已安装的Python模块呢?方法有很多:

打开cmd,输入python进入python命令行,然后输入help("modules")

命令行查看模块

通过代码查询Python内置的模块

import sys

sys.modules.keys()

# dict_keys(['sys', 'builtins', '_frozen_importlib', '_imp', '_thread', '_warnings', '_weakref', 'zipimport', '_frozen_importlib_external', '_io', 'marshal', 'nt', 'winreg', 'encodings', 'codecs', '_codecs', 'encodings.aliases', ...

输入pip list可以查看通过pip 安装过的所有模块

查看pip安装的模块

冷门知识点

这里介绍一个冷门知识点,可能面试的时候,遇到坑人的面试官会用到哦,大家可要记好了。

在刚才我们打印的内置模块中,有很多是_开头的模块,这些是干嘛的,你知道吗?

大家了解我们日常学习的Python其实最广泛是通过C语言实现的Python解释器,即Cpython,当然还有Jpython、ironpython等等。那么这些下划线开头的模块,绝大多数都是代表这个模块时通过C语言编写的扩展,然后编译到Python中的,所以这些模块其实是一个连接库,并不是.py文件。

当然他们编译后的存储也是有所不同的,有些作为内置的Builtin,而有些作为文件保存。即便是作为文件,名称也是有所不同的,在windows下他们可能叫xxx.pyd,而在Linux下他们绝大多数是xxx.so文件。

比如Python自带的GUI模块tkinter,让我们看看下面这段代码输出:

import _tkinter

print(_tkinter.__file__)

# E:\Software\Python37\DLLs\_tkinter.pyd

这么冷门的知识,大家学废了么,以后关键时刻装X就靠它了!

代码获取pip安装的模块

回归我们页面点击的正题,既然我们是Python博客,那么什么点击爱心和标语明显不适合我们,让用户点击出现Python的模块岂不是很赞?说干就干走起。

刚才我们看到,上面那段js,显示的内容都在那段Array内,我们只需要准备好那一堆字符串即可,但是我们如果只导入sys.modules,那仅仅能获取系统内置的所有模块,我们安装的模块该如何获取呢?

难道只能用subprocess 执行pip list命令解析结果?这里找了很多资料,研究结果如下:

# python2

import pip

pip.get_installed_distributions()

# python3 版本get_installed_distributions方法藏得很深

from pip._internal.utils.misc import get_installed_distributions

get_installed_distributions()

# 最终代码:

from pip._internal.utils.misc import get_installed_distributions

for module_name in get_installed_distributions():

print(module_name.key)

# output:

-ip

you-get

wtforms

werkzeug

webassets

watchdog

urllib3

texttable

sqlalchem

...

获取全量模块

既然能得到内部模块+pip安装的模块,那么我们追加两者的结果就可以获取我们本机所有安装的模块了。但是这里有一个小坑

一定要等我们sys.modules数据获取完成后,再导入pip否则会将pip的子类全部追加到modules中去!

最终代码如下:

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

# @Author : 王翔

# @微信号 : King_Uranus

# @公众号 : 清风Python

# @GitHub : https://github.com/BreezePython

# @Date : 2021/01/09 23:54:47

# @Software : PyCharm

# @version :Python 3.7.3

# @File : click_modules.py

import sys

# 提供我们将模块列表转化为字符串所需

import json

# from pip._internal.utils.misc import get_installed_distributions

# 过滤掉那些 _开头的C语言链接库

modules = [name for name in sys.modules if not name.startswith('_')]

print(len(modules)) # 53个

# 等待获取完成后再导入pip,否则内置模块编程了177个

from pip._internal.utils.misc import get_installed_distributions

for module_name in get_installed_distributions():

modules.append(module_name.key)

print(len(modules)) # 还以为自己用了很多,原来全量才135个啊...

print(json.dumps(sorted(modules)))

# output:

# ["-ip", "abc", "alabaster", "alembic", "altgraph", "babel", "baidu-aip", "blinker", "builtins", "certifi", "chardet", "click", "codecs", "collections", "colorama", "commonmark", "contextlib", "copyreg", "cssmin", "docutils", "encodings", "encodings.aliases", "encodings.gbk", "encodings.latin_1", "encodings.utf_8", "enum", "flask", "flask-assets", "flask-caching", "flask-ckeditor", "flask-debugtoolbar", "flask-dropzone", "flask-mail", "flask-migrate", "flask-sqlalchemy", "flask-wtf", "functools", "future", "genericpath", "heapq", "idna", "imageio", "imagesize", "importlib", "importlib._bootstrap", "importlib._bootstrap_external", "importlib.abc", "importlib.machinery", "importlib.util", "install", "io", "itertools", "itsdangerous", "jinja2", "jsmin", "json", "json.decoder", "json.encoder", "json.scanner", "keyboard", "keyword", "linecache", "lxml", "mako", "markupsafe", "marshal", "myqr", "nt", "ntpath", "numpy", "operator", "os", "os.path", "packaging", "pathtools", "pefile", "pillow", "pip", "py7zr", "pycryptodome", "pyfiglet", "pygments", "pyinstaller", "pyparsing", "python-dateutil", "python-dotenv", "python-editor", "python-http-client", "pytz", "pywin32-ctypes", "pyyaml", "pyzbar", "re", "recommonmark", "redis", "reprlib", "requests", "ruamel", "ruamel.yaml", "ruamel.yaml.clib", "sendgrid", "setuptools", "site", "sitecustomize", "six", "snowballstemmer", "sphinx", "sphinx-rtd-theme", "sphinxcontrib", "sphinxcontrib-applehelp", "sphinxcontrib-devhelp", "sphinxcontrib-htmlhelp", "sphinxcontrib-jsmath", "sphinxcontrib-qthelp", "sphinxcontrib-serializinghtml", "sqlalchemy", "sre_compile", "sre_constants", "sre_parse", "stat", "sys", "texttable", "token", "tokenize", "traceback", "types", "urllib3", "warnings", "watchdog", "webassets", "werkzeug", "winreg", "wtforms", "you-get", "zipimport"]

简单几行代码,完成我们的模块导出诉求。现在把这些模块,添加当刚才的js中,然后验证下效果,来看看钢琴手卡尔的点击速度吧,哈哈:

Python模块点击特效

我们把这样的点击特效放到自己博客上,才能算是Pythoner该有的样子啊!大家觉得有道理吗?哈哈...

我的博客特效已更新,快去访问点击玩玩吧:

清风Python的个人博客: https://qingfengpython.cn/!

结束语

最近创建了一个清风Python资源分享与学习交流群,喜欢的朋友加我微信,我拉你入群。那些微商和为了进群发广告的就别自讨无趣了,群内禁止推文与发广告,发现必踢!

期待你关注我的公众号清风Python,如果你觉得不错,希望能动动手指转发给你身边的朋友们。

我的个人博客地址:https://qingfengpython.cn/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453735.shtml

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

相关文章

Python 包管理之 poetry

poetry是一个Python虚拟环境和依赖管理的工具。poetry和pipenv类似,另外还提供了打包和发布的功能。 官方文档:python-poetry.org/docs/ python项目部署:poetry管理本地环境,上线用docker poetry 安装 poetry提供多种安装方式&#xff0c…

Windows数据库编程接口简介

数据库是计算机中一种专门管理数据资源的系统,目前几乎所有软件都需要与数据库打交道(包括操作系统,比如Windows上的注册表其实也是一种数据库),有些软件更是以数据库为核心因此掌握数据库系统的使用方法以及数据库系统…

映客都是互刷礼物吗_映客互刷礼物有什么用_映客守护有什么用

一起直播、互刷礼物、改ID发性感照,赵本山女375x332 - 122KB - PNG一起直播、互刷礼物、改ID发性感照,赵本山女600x893 - 247KB - JPEG一起直播、互刷礼物、改ID发性感照,赵本山女600x448 - 151KB - JPEG土豪互刷礼物吓坏男主播 即兴表演铁头功撞墙560x688 - 57KB - JPEG一起直…

Python 之打包工具 setup.py

1. 为什么需要对项目分发打包? 平常我们习惯了使用 pip 来安装一些第三方模块,这个安装过程之所以简单,是因为模块开发者为我们默默地为我们做了所有繁杂的工作,而这个过程就是 打包。 打包,就是将你的源代码进一步封…

周进度----06

周学习进度06 周学习进度06 第16周 所花时间: 60min60min100min100min100min100min90min60min60min 代码量(行) 500-800 博客量(篇) 4 了解到的知识 css样式表的一些知识 项目流程的初步了解 一周的学习心得…

八个实用的CMD命令及开始→运行→命令集锦

这篇文章是很久前收藏在自己笔记本内的,具体的来源地址不清楚,先谢一下原作者吧. 共享出来大家一起学习一下: 一,ping    它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DO…

2019如何转换2010_9102年,你还不知道PPT怎么转换成视频吗?小心落伍了

你在刷抖音的时候有没有刷过这类视频:成为人生赢家必备的书单、5个让你看透人性的电影、6个让你升职加薪的APP...如果你细心观察的话,会发现这类视频的做法基本都是一个样的,像在翻相册一样,一页页过去,所以它们也叫做…

深度学习之RetinaNet

总述 Focal loss主要是为了解决one-stage目标检测中正负样本比例严重失衡的问题。该损失函数降低了大量简单负样本在训练中所占的权重,也可理解为一种困难样本挖掘。 目标识别有两大经典结构: 第一类是以Faster RCNN为代表的两级识别方法,这种结构的第…

js生成图片

var image new Image(); var c document.getElementById("myCanvas"); var ctx c.getContext("2d"); var img document.getElementById("scream"); ctx.font "10px Arial";function createImg(name, zuowei, color) {// 姓名ctx…

浅谈如何学习linux

一.为什么要学linux? 当然最重要是爱好和兴趣!如果你这种必要学,或者根本不喜欢,请不要浪费时间,你学也学不好! 二.起步 你应该为自己创造一个学习linux的环境--在电脑上装一个linux或unix 问题1:版本…

python的datetime函数_Python连载8-datetime包函数介绍

一、datetime包(上接连载7内容)1.函数:datetime(1)用法:输入一个日期,来返回一个datetime类?(2)格式:datetime.datetime(年,月,日,hour,minute,second)其中hour,minute,…

深度学习之 soft-NMS

论文:《Improving Object DetectionWith One Line of Code》soft-NMS 英文论文链接:https://arxiv.org/pdf/1704.04503.pdfsoft-NMS github 链接:https://github.com/bharatsingh430/soft-nms 绝大部分目标检测方法,最后都要用到…

项目微管理 - 总结也是新的开始

时间都去哪了?听着这首耳熟能详的旋律,感叹着飞速流逝的年华,我渐渐的陷入到沉思之中。时间过的真的很快,从一名程序员到接手一个一线项目团队一晃已经2年多了。在这段时间里,我接触了各种各样的人,处理了各…

一维二维_Excel二维数据转一维,2种方法轻松搞定

今天是2020年1月1日,祝各位小伙伴们新年快乐,开心每一天~如下所示,左边是二维交叉数据表,我们希望快速转换成右边的一维数据表如果复制粘贴,效率太低了,今天分享两种方法,实现快速转换1、powerq…

数百种 Windows 软件的免费替代品列表

程序所执行任务的描述WindowsLinux1) 网络连接网页浏览器微软 IE,网景 Netscape / Mozilla, Opera [私有],Firebird,……1) Netscape/Mozilla 2) Galeon. 3) Konqueror. 4) Opera.[私有] 5) Firebird. 6) Nautilus 7) Epiphany 8)…

深度学习之 Cascade R-CNN

Zhaowei Cai, Nuno Vasconcelos. 《Cascade R-CNN: Delving into High Quality Object Detection》. CVPR 2018.论文链接:https://arxiv.org/abs/1712.00726代码链接:https://github.com/zhaoweicai/cascade-rcnn 前言 IOU阈值被用来定义正负例&#x…

转换文档参数_明明2秒可以搞定Word、Excel相互转换,你却用了半小时!真亏了...

我们在用office三件套工作的时候,经常都需要对文件的格式进行转换,像是Word文档和Excel表格的转换,很多小伙伴都要花上半个小时甚至以上的时间才能搞定,效率实在不行。别担心,今天小编将分享能快速完成Word、Excel转换…

深度学习之 DCN(Deformable Convolution)-可变形卷积

Paper link: http://openaccess.thecvf.com/content_ICCV_2017/papers/Dai_Deformable_Convolutional_Networks_ICCV_2017_paper.pdfhttps://arxiv.org/pdf/1703.06211 Code link: https://github.com/msracver/Deformable-ConvNets Abstract 如何有效地对几何图形的变化进行…

软件开发 项目进展 软件架构 指南

软件开发,标准化流水线式开发的实施构想 软件开发,标准化流水线式开发的实施构想 近日看到一篇博文,讨论标准化流水线开发模式的话题,但是这篇博文仅仅提出这个问题,未见回应。 这其实是一个很大的问题,我…

linux 下php多版本安装

php-multi-version ubuntu apt-get 安装php5.6 添加软件源sudo add-apt-repository ppa:ondrej/php sudo apt-get updatesudo apt-get install php5.6sudo apt-get install php5sudo apt-get install php7 /usr/local/bin 与/usr/bin echo $PATH/usr/local/sbin:/usr/local/bin…