详解Python文件: .py、.ipynb、.pyi、.pyc、​.pyd

news2024/11/28 16:52:05

今天科普下各类Python代码文件的后缀,给各位Python开发“扫扫盲”。

.py

最常见的Python代码文件后缀名,官方称Python源代码文件

.ipynb

这个还是比较常见的,.ipynbJupyter Notebook文件的扩展名,它代表"IPython Notebook"。

学过数据分析,机器学习,深度学习的同学一定不陌生!

.pyi

.pyi文件是Python中的类型提示文件,用于提供代码的静态类型信息。

一般用于帮助开发人员进行类型检查静态分析

示例代码:

hellp.pyi
def hello(name: str) -> None:    print(f"hello {name}")

.pyi文件的命名约定通常与相应的.py文件相同,以便它们可以被自动关联在一起。

.pyc

.pycPython字节码文件的扩展名,用于存储已编译的Python源代码的中间表示形式,因为是二进制文件所以我们无法正常阅读里面的代码。

图片

.pyc文件包含了已编译的字节码,它可以更快地被Python解释器加载和执行,因为解释器无需再次编译源代码。

.pyd

.pydPython扩展模块的扩展名,用于表示使用CC++编写的二进制Python扩展模块文件。

.pyd文件是编译后的二进制文件,它包含了编译后的扩展模块代码以及与Python解释器交互所需的信息。

此外,.pyd文件通过import语句在Python中导入和使用,就像导入普通的Python模块一样。

由于CC++的执行速度通常比纯Python代码快,可以使用扩展模块来优化Python代码的性能,尤其是对于计算密集型任务。

.pyw

.pywPython窗口化脚本文件的扩展名。

它表示一种特殊类型的Python脚本文件,用于创建没有命令行界面(即控制台窗口)的窗口化应用程序。

一般情况下,运行Python脚本会打开一个命令行窗口,其中显示脚本输出和接受用户输入。但是,对于某些应用程序,如图形用户界面(GUI)应用程序,不需要命令行界面,而是希望在窗口中显示交互界面。这时就可以使用.pyw文件。

示例代码:

# click_button.pyw
import tkinter as tk
def button_click():    label.config(text="Button Clicked!")
window = tk.Tk()button = tk.Button(window, text="Click Me", command=button_click)button.pack()
label = tk.Label(window, text="Hello, World!")label.pack()
window.mainloop()

.pyx

.pyxCython源代码文件的扩展名。

Cython是一种编译型的静态类型扩展语言,它允许在Python代码中使用C语言的语法和特性,以提高性能并与C语言库进行交互。

我对比了下Cython与普通python的运行速度:

fb.pyx(需使用cythonize命令进行编译)​​​​​​​

cdef int a, b, i
def fibonacci(n):if n <= 0:raise ValueError("n必须是正整数")
if n == 1:return 0elif n == 2:return 1else:        a = 0        b = 1for i in range(3, n + 1):            a, b = b, a + breturn b

run.py​​​​​​​

import fbimport timeit
def fibonacci(n):if n <= 0:raise ValueError("n必须是正整数")
if n == 1:return 0elif n == 2:return 1else:        a, b = 0, 1for _ in range(3, n + 1):            a, b = b, a + breturn b
# 纯Python版本python_time = timeit.timeit("fibonacci(300)", setup="from __main__ import fibonacci", number=1000000)
# Cython版本cython_time = timeit.timeit("fb.fibonacci(300)", setup="import fb", number=1000000)
print("纯Python版本执行时间:", python_time)print("Cython版本执行时间:", cython_time)

得出结果:

纯Python版本执行时间: 12.391942400000516Cython版本执行时间: 6.574918199999956

在这种计算密集任务情况下,Cython比普通Python效率快了近一倍。

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

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

相关文章

大模型时代,开发者成长指南 | 新程序员

【编者按】GPT 系列的面世影响了全世界、各个行业&#xff0c;对于开发者们的感受则最为深切。以 ChatGPT、Github Copilot 为首&#xff0c;各类 AI 编程助手层出不穷。编程范式正在发生前所未有的变化&#xff0c;从汇编到 Java 等高级语言&#xff0c;再到今天以自然语言为特…

在Kotlin中设置User-Agent以模拟搜索引擎爬虫

前言 随着双十一电商活动的临近&#xff0c;电商平台成为了狂欢的中心。对于商家和消费者来说&#xff0c;了解市场趋势和竞争对手的信息至关重要。在这个数字时代&#xff0c;爬虫技术成为了获取电商数据的有力工具之一。本文将以亚马逊为例&#xff0c;介绍如何使用Kotlin编…

Excel中功能区的存放位置很灵活,可以根据需要隐藏或显示

在这个简短的教程中,你将找到5种快速简单的方法来恢复Excel功能区,以防丢失,并学习如何隐藏功能区,为工作表腾出更多空间。 功能区是Excel中所有操作的中心点,也是大多数可用功能和命令所在的区域。你觉得功能区占用了你太多的屏幕空间吗?没问题,只需单击鼠标,它就被隐…

ROS源码安装应用。VSCode

ROS源码安装应用 安装一下VSCode 前置文章 到安装程序的目录中: 完成克隆 编译 catkin_make打开ros核心 roscore打开应用程序 rosrun turtlesim turtlesim_node安装一下VSCode deb下载地址 sudo dpkg -i code_1.84.1-1699275408_amd64.deb添加项目工程到工作空间&#xff…

股票融资科普:融资融券对散户好不好?为何?

股票融资融券是一种常见的股票交易方式&#xff0c;它可以让投资者通过借入资金来购买股票&#xff0c;或借入股票来卖空股票&#xff0c;从而获得投资收益。但是&#xff0c;对于散户来说&#xff0c;融资融券到底是好是坏呢&#xff1f;下面将从几个方面来解析。 首先&#x…

4.搭建压测可视化平台-如何离线完成

目录 概述前置安装 InfluxDB下载 InfluxDB启动 InfluxDB进入容器内部influxdb相关参数运行验证 安装 Grafana下载 Grafana 镜像启动 Grafana 容器验证部署grafana串联influxdb导入模板 安装 node_exporter安装 prometheus下载解压运行配置 prometheus 问题结束 概述 今日涉及的…

功率信号源应用在哪些领域

功率信号源是一种广泛应用于各种领域的设备&#xff0c;它们能够产生特定功率的信号输出&#xff0c;为其他电子设备或系统提供所需的电能或能量。下面将介绍功率信号源在几个不同领域的应用。 无线通信领域&#xff1a; 无线通信系统需要稳定而可靠的功率信号源来提供电能给无…

Java基础篇 | 线程池相关

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Java从入门到精通 ✨特色专栏&#xf…

【Python大数据笔记_day03_shell编程和大数据导论】

shell编程 一、shell简介 shell语言是一个C语言编写的脚本语言,它是用户与linux的桥梁 shell编程:通常指的是学习shell命令语法后,利用这套语法开发脚本程序,操作、访问内核服务。而不是使用C语言去编写一个shell程序。 shell解释器&#xff1a;unix默认sh&#xff0c;Linux的…

景联文科技提供高质量人像采集服务,助力3D虚拟人提升逼真度

人像采集是一种通过特定设备或技术&#xff0c;对人的相貌、身材等特征信息进行收集和处理的过程&#xff0c;可应用于3D虚拟人领域。通过采集大量的人像数据&#xff0c;可以训练和优化人像识别算法&#xff0c;提高其准确性。 人像采集对于提高3D虚拟人的逼真度、个性化定制以…

notepad 文本筛选并替换

正则表达式&#xff1a; ".*"中的"."代表的是匹配一切字符"\s" 匹配所有空白字符(包括制表符); "\S"匹配所有字符串"\d" 匹配所有数字 "\D"匹配所有非数字"*" 代表的是贪婪匹配模式意思为连续匹…

【机器学习】七、降维与度量学习

1. 维数灾难 样本的特征数称为维数&#xff08;dimensionality&#xff09;&#xff0c;当维数非常大时&#xff0c;也就是现在所说的维数灾难。 维数灾难具体表现在&#xff1a;在高维情形下&#xff0c;数据样本将变得十分稀疏&#xff0c;因为此时要满足训练样本为“密采样…

Masked Image Training for Generalizable Deep Image Denoising 论文阅读笔记

CVPR2023 港科大&#xff08;广州&#xff09;发的一篇denoising的论文&#xff0c;作者里面有上海AILab的董超老师&#xff08;看introduction的时候看到有一段很像董超老师 Networks are slaching off 的论文的思想&#xff0c;说网络overfitting的时候学习了训练集的噪声模式…

2023年【起重机司机(限门式起重机)】新版试题及起重机司机(限门式起重机)找解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 起重机司机(限门式起重机)新版试题考前必练&#xff01;安全生产模拟考试一点通每个月更新起重机司机(限门式起重机)找解析题目及答案&#xff01;多做几遍&#xff0c;其实通过起重机司机(限门式起重机)作业模拟考试…

桌面此电脑图标不见了的解决办法

打开Windows设置 找到主题&#xff08;每个机型的位置可能不一样&#xff09;&#xff0c;然后点击桌面图标设置 我们也可以使用搜索框进行查找 “主题” 如果直接检索“桌面图标设置”有可能找不到 在桌面图标设置里我们可以自行勾选&#xff0c;选择想要在桌面进行显示的图标…

神经网络遗传算法函数极值寻优

大家好&#xff0c;我是带我去滑雪&#xff01; 对于未知的非线性函数&#xff0c;仅仅通过函数的输入和输出数据难以寻找函数极值&#xff0c;这一类问题可以通过神经网络结合遗传算法求解&#xff0c;利用神经网络的非线性拟合能力和遗传算法的非线性寻优能力寻找函数极值。 …

香橙派orangepi c#.net霍尔水流量计+485脉冲精准测水流量实操实例-

香橙派 c#.net iot 霍尔水流量计传感器实操实例 用于测量液体流量,包括咖啡机,自助饮料机,农场水肥等流量检测,很便宜,十块钱以内一个 1、设备:流量计-4分水管 2、脉冲计数器 我使用的是国产香橙派 orangepi zero2 接线: 流量计香橙派红线5V黑线GND黄线wPi编码:10香…

WordPress Wpay最简单的付费查看下载wp主题模板开心无限制版

模板简介&#xff1a; wpay基于wppay插件二开&#xff0c;为了就是更简单的实现虚拟资源购买分享 本主题就是为了简单而生&#xff0c;idwons功能太多&#xff0c;许多人搭建起来站点没有用户消费&#xff0c;折腾大半天&#xff0c;不如来个简单的. 首页支持分页模式&#xff…

大学校园安全如何保障?学到了视频监控的神技!

随着科技的不断进步和社会的快速发展&#xff0c;视频监控技术已经成为我们生活中不可或缺的一部分。视频监控系统为我们提供了更广泛、全面的视觉信息&#xff0c;从而改善了安全性、管理效率和生活质量。 客户案例 零售连锁店 福建某大型零售连锁店&#xff0c;面临着商品损…

「Verilog学习笔记」使用函数实现数据大小端转换

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 分析 题目要求使用函数实现4bit数据大小端转换的功能&#xff0c;所谓大端&#xff0c;即数据的高位写在左侧&#xff0c;低位写在右侧。小端则反过来&#xff1a;高位写在…