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.pswp.cn/news/453735.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453735.shtml
英文地址,請注明出處:http://en.pswp.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…