导航:首页 > 源码编译 > python是弱编译吗

python是弱编译吗

发布时间:2023-01-16 16:54:32

python是什么样的编程语言

编程语言主要从以下几个角度为进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,每个分类代表什么意思呢,我们一起来看一下。

2.1 编译型与解释型。

编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;

而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.

这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)

编译型

优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。

缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编

解释型

优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。

缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

2.2动态语言和静态语言

通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。

(1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。

(2)静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、java等。

2.3强类型定义语言和弱类型定义语言

(1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。

(2)弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,"这门语言是不是动态语言”与"这门语言是否类型安全”之间是完全没有联系的!

例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。

通过上面这些介绍,我们可以得出,python是一门动态解释性的强类型定义语言。

❷ python是解释型语言吗

是的,Python是解释型编程语言,同时Python还是编译型、动静态、强弱定义类型的编程语言。

❸ Python 相比 Java的优势是什么缺点又是什么

Python相比Java的优势如下:
1. Python作为动态语言更适合初学编程者。Python可以让初学者把精力集中在编程对象和思维方法上,而不用去担心语法、类型等等外在因素。而Python清晰简洁的语法也使得它调试起来比Java简单的多。
2. Python有一些Java没有的强大的架构,可以表达非常复杂的逻辑
3. Python有非常强大的支持异步的框架如Eventlet Networking Library,而据Java要实现这些功能就复杂的多。因此Python适合一些可扩展的后台应用。
2. Python作为脚本语言,更适合开发小的应用,而且极其适合在应用发展初期时用来做原型

缺点如下:
1. 由于Python是动态语言,比Java还执行效率低下。python是弱类型语言,编译的时候要check 类型的。
2.何可以运行Java虚拟机的电脑或者移动设备都可以运行Java的应用,而不管在哪里运行Python的程序都需要一个编译器来将Python代码转化为特定的操作系统可理解的代码。

❹ python需要编译么

一个经常听见的问题,那就是:Python是解释型的语言吗?它会被编译吗?这个问题没有想象中那么好回答。和很多人认识世界一样,习惯以一个简单的模型去评判一些事物。而事实上,里面包含了很多很多的细节。
通常的说法,编译代表着将一个高级语言转化为 CPU 能执行的机器码。当你编译 C 的时候,的确是做的这样的操作。编译的结果是一个二进制可执行文件,这时你的系统可直接运行这个程序。
与此相对的,解释的意思是这样的:程序运行时每次读源文件中的一行代码,并执行相应的操作,就这样一行一行的重复下去。当然,所谓的脚本语言就是这么运行的。
但事实上,上面的定义有太多的局限。一门真正的语言,为了拥有更多有用和强大的特性,通常采用了各种各样的实现方式。我们可以将编译理解为更通用一些:将一种语言转化为另一种语言形式。通常来说,源语言比目标语言要更高级一些,比如将 C 转化为机器码。当然,JavaScript 8 到 JavaScript 5 的转化也算是一种编译。
在Python中,源代码会被编译为更低级的一种形式,我们称之为字节码。字节码是一串指令,和 CPU 的指令集类似。但是字节码并不直接被 CPU 执行,而是在虚拟机中执行的。当然,这里的虚拟机并不模仿整个操作系统的环境,只是提供了字节码执行的一个环境。
下面我们看 Python 的一小段代码以及它对应的字节码
看了字节码的内容后,我们就知道 f'...' 这种格式化字符串的形式的运行原理,就是将里面的字符串转化为一系列的字面字符串与变量,然后使用 + 号连接起来。
dis 是 Python 标准库中反汇编模块,它可以展示 Python 代码的字节码信息。上面提到的执行字节码的虚拟机,可以用任意的语言实现,包括 Python 自己。有兴趣的可以去 GitHub 上看下这个项目 nedbat/byterun 。这个项目可以用来学习,但不适用于生产环境。
不过,我们运行 Python 时完全感受不到它的编译过程,没有显示的调用什么编译程序,仅仅是简单的执行 .py 文件,编译都是需要时自动编译的。这和 JAVA 不同,当你每次写完 JAVA 代码要执行时,都要手动将其编译为 .class 文件,然后执行。也正是这个原因,JAVA 被称为编译型语言,而 Python 被叫做解释型语言。但事实上,两种语言执行时都会先编译成字节码,然后交给虚拟机执行。
Python还有一个重要的特性,就是交互式命令行。你可以敲入一行 Python 语句,然后立刻回车执行。实际上,即使是这个过程,Python 同样是先转为字节码,然后执行。而这个交互式命令行这个特性,在很多编译型语言里是没有的。同样因为没有显示的调用编译程序,很多人将执行Python源文件的程序叫做Python解释器。
即使比较简略,但还是补充下。部分编译型语言比如 C 或者 JAVA 也有交互式命令行,但这些并不是这些语言的重心。JAVA 刚开始是编译成字节码然后执行,后面有了即时编译技术( JIT )可以直接编译成机器码,与 C 类似。
从上面的描述可以看出,不管是解释还是编译,并没法完全分离开来。很多时候,我们想用一些词将现有的编程语言分个类,但事实上要办到这一点太难了。
最后要说明的是,你的代码是怎么执行的只是语言的实现问题,并非语言的特征。上文中,我们讨论的是 Python ,但实际上是 CPython 的描述。CPython 是一个解释器,之所以这么叫,是因为这个解释器是用 C 编写的,这也是 Python 默认的解释器。当然还有其它很多解释器,比如,PyPy 就是另一种解释器,使用了 JIT 技术,运行速度相比 CPython 有较大提升。
回到标题中的问题,Python之所以称为解释型语言,是因为它没有显示的调用编译操作,表现出解释型的特性比较多而已。但事实上,编译是存在的,具体怎么编译就看语言的实现了,也就是解释器的设计。
更多Python相关技术文章,请访问Python教程栏目进行学习!以上就是小编分享的关于python需要编译么的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!

❺ python是强类型语言吗

Python是弱类型。。。。说Python是强类型的,完全是在忽悠人。
网上常常出现说Python是强类型的说法:由于 "1"+1 会报错,所以Python是强类型。。
完全是扯淡。。。JAVA,C#输入"1"+1,都会输出"11"。。。难道JAVA和C#都是弱类型?JAVASCRIPT输入"1"+1会报错,难道JS却成了强类型?
判断一门语言是不是强类型。。。例子应该如此:
java的例子(强类型):
int a=1;
a="1"; //报错
C#的例子(强类型):
int a=1;
a="1"; //报错
JS的例子(弱类型):
var a=1;
a="1" ;//不报错
PHP的例子(弱类型):
$a=1;
a="1"; //不报错
所以,Python显然是弱类型。

❻ python是动态语言,是不是弱类型语言

不是。python是强类型语言,一个变量不经过强制转换,它永远是这个数据类型,不允许隐式的类型转换。
例如:1+"2" 在python中会报错,因为一个数字,一个是字符串,python是强类型语言,不会默认进行转换,所以报错。

❼ python是解释性语言还是编译型语言

先说结论,python 是解释性语言。
何为编译?
1、生成目标文件。
2、且目标文件是针对特定的 CPU 体系的,为ARM生成的目标文件,不能被用于MIPS的CPU,也不能用于x86的CPU。反过来说也是成立的。
也就是说这段代码在生成目标文件的过错中就已经被翻译成了目标CPU指令,所以如果这个程序需要在另外一种CPU上面运行,这个代码就必须重新翻译。
而上述这个翻译过程叫做编译。
何为解释?
对于各种非编译型语言(例如python/java)来说,可能不存在某种翻译成中间文件的过错,可能存在某种编译成中间文件的过程
如果存在翻译过错,那么他们翻译生成的通常是一种‘平台无关’的中间代码,这种代码一般不是针对特定的CPU平台,他们是在运行过程中才被翻译成目标CPU指令的,因而在ARM CPU上能执行,换到MIPS也能执行,换到x86也能执行,不需要重新对源代码进行翻译。
而由于这些中间代码并不是能在CPU上直接运行,所以需要某种中介(叫做虚拟机)在执行时负责把代码翻译成CPU能执行的指令。

❽ C语言和python两种语言有什么区别

C是编译语言
Python是解释语言
这个是最大区别
其它区别基本都是基于这个的

除此外,c是面向过程的,py是面向对象的
大多数时候c做底层,py做上层,但这个并非绝对
其实应该找他俩一样的地方,不一样的地方实在太多啦

❾ python是什么样的编程语言

python是什么编程的高级语言?
Python是一种面相对象、解释型的计算机程序语言,并已成为学习数据科学、虚拟现实和人工智能的首选编程语言,其设计哲学是“优雅”,“明确”,“简单”。易上手,及时反馈的特点成了很多入门编程世界的首选。同时Python也是一种相当高级的语言,拥有丰富和强大的第三库,可引用各种模块并很轻松的连接在一起。众多社交网站如Reddit, 豆瓣,知乎,Dropbox, YouTube,果壳等都是由Python完成。

最初对python的印象是在纪录片《互联网之子》中Aaron Swartz从MIT的图书馆截取的那些文件资料用的程序就是用python写的,当时对python心生荡漾,但很快就灰飞烟灭,因为没有后续联接和交集。

个把月前我看到一个python基础班,当时还不知道Python是什么样的编程语言(即使到现在也还不完全了解Python具体可以做啥),从哪里来要去哪里,完全不了解的情况下按了报名键。我自认为的优点是尽力为自己的行为买单,且只能是默默的,不可让一时冲动太声张,也不能恬不知耻的说那是epiphany,而是尽量去探询已成事实的一二。

培训班不上课,没有讲义和资料,只分配任务和引导卡片,刚开始也会心有戚戚焉,在白纸上乱画我还得知道怎么握笔呢,可是在键盘上乱敲肯定不会有惊喜,错误提示都看不懂,别说去修Bug。程序装了卸,卸了装,操作也是胡乱使用添加,电脑最终无法忍受这样的主就自动瘫痪装死,只得我重装系统又如获新生,也算如实贯彻了打小的信念“生命在于折腾”。厚着脸皮长大的人是天生被上帝眷顾着的,基本不会心生‘不好意思’的念头,不懂就问同学嘛!一个不行换另一个,哪怕被认为问了“愚蠢”的问题。匍匐着向前,只要方向对了,那也是进步吧!

就像学外语着得把身处周围的环境变量调整过来,让自己置身在那个世界中去感受和徜徉,身上细胞的张合大小,呼吸的进出频率也慢慢跟上节奏。除了Python本家,编译程序(Windows上我使用Atom, MAC使用TextWrangler)和运行终端(Windows PowerShell 或Terminal)外,接触最多的就是 Github, Google 还有新欢Markdown (MOU)。

——-Github 是世界上最大的代码存放网站和开源社区,副名是:最大的同性交友网站,因其界面设计很容易对号入座。尽管那原是Geek的天地,如今越来越多的其他门派弟子也加入其中,大家都带着灵敏的嗅觉,看哪好就往里钻。他是协作项目最好的实现平台,支持异地,不同电脑的项目更新,特别是不同动作之前的区别和个别动静的比较清晰可见,操作人性化。很多人在上面写书,协作翻译,项目管理、设计资料库、科研项目数据及个人简历都放上面,还有人把自己的健身记录也放上面。据说有公司招聘还需要看应聘者的github账号。最最重要的是一切都是免费,只要你想。(尽管有收费的,那是针对个别私人想要数据保密的公司)。之前在别处看到github这个词就当是熟悉的陌生人,熟悉“github"这6个字母组成的单词,但完全不知道那是什么样的世界。现只是轻轻推移了那扇门,门缝里漏出的光都觉足够耀眼并思忖着想探寻更多。

-——Google 本不需要多提,原来也是每天在使用。可Google貌似与Python有真感情,每次搜索打Python开头的关键字,出来的第一条结果往往就是正确答案且出自Google自家,比Python的官方文件还显情真意切。

-——Markdown 人称写作神奇,是我刻意关注并想收入囊中的工具,想让她陪伴着我写下去,目前还有待开发。

如他程序Python基本命令零容错,标点符号,大小字母,缩进都有严格的规定,更别提逻辑关系,循环迭代,有一处不对就报错。对小白来说修Bug的时间会比写程序的时间还长,修复一个bug,报出新的bug已经算是一种进步了。在编程时,若习惯了这些严苛的标准到不是非常难,错一次磕一下头,同一个错多犯几次,就多磕几次,即使擦破头皮反正不至于亡命天涯,总归能牢记于心。当从程序世界抽离自己回到现实世界,真感觉对待其他事是不是太随意了。至少我打这些文字的时候根本没注意“的”和“地”的区别,逗号和句号看心情而定,习惯了新段落前不空两格。工作中仔细的程度没法用尺衡量,也不会有程序直接报错,免不了能略就略,可以将就过去就不愿多费心思,短期可能没有意外,总归长久不了,埋下的地基是作为将来向上的支撑。自从学习编程以来,已开始反思,虽还没改进多少,可像颗钉子被扎着总觉不适,不时提醒自己。

作为一门高级语言,灵活性和包容性对第三方库有着无限的吸引力。据说C++用200行命令,Java的40行而Python只需20行可实现同样的功能。虽然基本命令的严苛像个固执的老学究,但若掌握了要领,成了武林高手,各种技巧灵活运用,自由发挥,盖世武功尽情发挥。只要有本事,任你翻云覆雨,去到‘风所到达的地方’。

Python的一大特点是代码只在命令运行时才会被检查执行,即使隐藏了错误,若没运行到,永远发现不了。很像身体或任何世间体制内的事,大家只关心呵护眼见为实,真实的隐藏只被激发时才被注意到。为了扫清后顾之忧,我们使用‘及时反馈’策略,就是码几行程序,马上print出来,看效果如何,而不是等敲完所有的程序,才发现一团乱麻却不知如何进行手术。这是平时学习很好借鉴的地方,走一段路得停一下检查是不是在正确的道上,一方面可及时调整姿态,重要的是用小小的可见成果作为的漫漫前方道路的鼓励。
如果我的回答对您有所帮助,记得点亮采纳哦,谢谢啦!

❿ python是一种什么类型语言

Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言;
Python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构;
Python是一种解释型语言,意味着开发过程中没有了编译这个环节,类似于PHP和Perl语言;
Python是交互式语言,意味着你可以在一个Python提示符>>>后直接执行代码;
Python是面向对象语言,意味着Python支持面向对象的风格或代码封装在对象的编程技术;
Python是初学者首选的语言,Python对初级程序员而言,是一种伟大的编程语言,它支持广泛的应用程序开发,从简单的文字处理到WWW浏览器再到游戏,无所不能。

阅读全文

与python是弱编译吗相关的资料

热点内容
加密u盘内容怎么拷贝 浏览:281
安卓手机为什么看不到iso文件 浏览:578
用图片做文件夹图标 浏览:693
java正则表达式语法 浏览:865
美图秀在线压缩图片 浏览:184
苹果自带控制app是什么 浏览:906
孩子学编程怎么样 浏览:589
网络编程经典书籍 浏览:612
曲靖创建网站java程序员 浏览:690
256位加密中是什么意思 浏览:97
php多维数组去重 浏览:308
做程序员这一行储备人才怎么看 浏览:460
参加密逃文 浏览:327
苹果编程语言ios 浏览:763
求解病态系统常用的算法 浏览:994
驾校用的app叫什么 浏览:219
数控编程线的缠绕方法 浏览:972
安卓线性布局怎么设计计算器布局 浏览:24
拓本pdf 浏览:79
2017法硕指南pdf 浏览:295