为什么说 Python 是强类型语言?

为什么说 Python 是强类型语言?

强类型语言

强类型语言也称为强类型定义语言。是一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。

  java、.NET、C++等都是强制类型定义的。一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。

 

例如你有一个整数,如果不显式地进行转换,你不能将其视为一个字符串。

弱类型语言

与强类型定义相反,类型可以被忽略的语言的语言。

VBScript是弱类型定义的。在VBScript中,可以将字符串‘12’和整数3进行连接得到字符串‘123’,然后可以把它看成整数123,而不需要显示转换。

 

  但其实它们的类型没有改变,VB只是在判断出一个表达式含有不同类型的变量之后,自动在这些变量前加了一个clong()或(int)()这样的转换函数而已。能做到这一点其实是归功于VB的编译器的智能化而已,这并非是VB语言本身的长处或短处。

区别

对于“强弱类型”判定的核心是“不同类型的变量是否允许隐式转化”

强类型语言:倾向于不对变量的类型做隐式转换

弱类型语言:倾向于对变量的类型做隐式转换

python强弱判定

python不倾向于对变量的类型做隐式转换,根据定义可以判定是一门强类型语言。

例如:

a = 1

b = "1"

a < b // Type error

a == b // false,符合==的意思,类型都不一样显然是不相等的

1 + 1.1 // 2.1,为了符合直觉做了隐式转换

容易引起干扰的是动态语言和静态语言

动态类型语言

动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。可以在运行时改变变量的类型

Python和Ruby就是一种典型的动态类型语言。

静态类型语言

数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型。不可以在运行时改变变量的类型

C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。

python动静判定

python可以在运行时改变变量的类型,因此python是一门动态类型语言

a = 1

a = "1" // 不会报错

结论

python是一门强类型动态语言。

编程语言画了一张分类图:

 

 

 

 

 

 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一种高级、解释型、面向对象、动态类型的编程语言。它由Guido van Rossum于1989年创建,现已成为一种广泛应用的编程语言之一,用于Web开发、数据科学、人工智能、自动化测试等领域。 Python的特点和优劣势如下: 特点: 1. 简洁易学:Python语法简单明了,易于学习和使用,具有较高的代码可读性和可维护性。 2. 跨平台性:Python可以在Windows、Linux、Mac OS等多个操作系统上运行,具有很好的跨平台性。 3. 面向对象:Python支持面向对象编程,具有封装、继承和多态等特性。 4. 动态性:Python是一种动态类型语言,变量的类型不需要事先声明,具有很好的灵活性。 5. 库丰富:Python拥有丰富的标准库以及第三方库,可以方便地进行各种开发和应用。 6. 互动性:Python支持在交互式界面中进行程序开发和调试,便于快速验证代码。 优势: 1. 生态系统广泛:Python拥有庞大的社区,具有丰富的资源和生态系统,可以轻松获取开发所需的各种工具和资源。 2. 应用领域广泛:Python在数据科学、机器学习、人工智能、Web开发、自动化测试等领域应用广泛。 3. 代码可读性Python语法简洁明了,代码可读性,易于维护。 4. 开发效率高:Python语法简单、库丰富,可以快速实现各种功能,提高开发效率。 5. 社区活跃:Python社区活跃,有很多开源项目和工具,开发者可以轻松获取优秀的代码和资源。 劣势: 1. 性能较低:相比于一些编译型语言,如C++,Python的执行效率较低。 2. GIL限制:Python解释器中的全局解释器锁(GIL)会限制Python多线程的并行性,影响程序的性能。 3. 弱类型限制:Python是一种动态类型语言,因此存在类型转换错误等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值