• 首先要清楚静态类型语言和动态类型语言的判别的标准
    定义:如果类型检查发生在编译阶段(compile time),那么是静态类型语言(statically typed languages)中,相反的,如果类型检查发生在运行阶段(run time),那么是动态类型语言(dynamically typed languages)
  • 什么是类型检查
    类型检查就是查看变量的类型,然后判断这个表达式是合理的,可以这么理解:编译器通常在编译阶段做类型检查(java),而解释器通常在运行阶段做类型检查(python)
  • 静态类型(static)语言: 所有的变量类型必须被显示地声明,因为这些信息在编译阶段就被需要。例如,在 Java 中
float f = 0.5  #定义变量必须显示声明类型

动态(Dynamic)语言: 显示声明不被要求,因为类型赋值发生在运行阶段。例如在 Python 中,

f = 0.5 #定义变量不需要显示声明
  • 从上面分析可以知道,python是动态语言(类型检查发生在运行阶段,而且不需要显示声明类型),那么强类型和弱类型的判别标准是什么?
  • 先上概念:强类型语言有更强的类型检查机制,表达式计算中会做严格的类型检查;而弱类型语言允许各种变量类型间做一些运算。
  • 再看实例:
    首先看下什么是强类型,在强类型中,不管在编译时还是运行时,一旦某个类型赋值给某个变量,它会持有这个类型,并且不能同其他类型在计算某个表达式时混合计算。例如在Python中:
data = 5 # 在运行时,data被赋值为整型
data = data + "xiaoming" #报错

然而,在弱类型中,它是很容易与其他类型混合计算的,比如同样一门伟大的语言 Javascript,使用它:

var data = 5
data = data + 'xiaoming' //string和int可以结合,程序正常执行
  • 各种语言按照动态/静态,弱类型/强类型的划分:
  • 结论:
    1 类型检查确保一个表达式中的变量类型是合法的。在静态类型语言中,类型检查发生在编译阶段;动态类型语言,类型检查发生在运行阶段。
    2 强类型语言有更强的类型检查机制,表达式计算中会做严格的类型检查;而弱类型语言允许各种变量类型间做一些运算。
    3 Python是一门动态的(dynamic)且强类型(strong)语言

python是动态语言还是静态语言?强类型语言还是弱类型语言相关推荐

  1. java的强类型语言与JavaScript(js)的弱类型语言

    强类型 java语言是一种强类型语言,强类型怎么理解? java语言存在编译阶段,假设有代码:int i; 那么在Java中有一个特点是:java程序编译阶段就已经确定了 i变量的数据类型,该i变量的 ...

  2. python中动态语言静态语言的定义_作为程序开发,你所需要知道的编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的概念以及区别...

    作为程序开发,你所需要知道的编译型与解释型.动态语言与静态语言.强类型语言与弱类型语言的概念以及区别! 在各式各样的开发过程当中,我相信各位开发小伙伴在开发过程中并没有太关注什么是解释性语言和编译性语 ...

  3. 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言概念辨析

    编译型与解释型.动态语言与静态语言.强类型语言与弱类型语言概念辨析 转自:https://blog.csdn.net/u010533843/article/details/76215487 编译型和解 ...

  4. 静态 动态 强类型 弱类型语言的区别

    原文:http://www.zhihu.com/question/19918532 类型系统的一些概念,众说纷纭,使用上也比较乱.有些东西,甚至不好严格定义.以下算学术界的一种相对"严格&q ...

  5. 强类型语言和弱类型语言;动态语言和静态语言

    动态语言和静态语言 1.动态类型语言:是指在运行期间才去做数据类型检查的语言.在用动态语言编程时,不用给变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来.Python和Rub ...

  6. Typescript笔记之基础知识(1):强类型语言和弱类型语言、静态语言和动态语言

    foreword(前言) 这是本人关于Typescript的第一篇笔记,之所以选择将"强类型语言和弱类型语言.静态语言和动态语言"作为第一个想要去总结的主题,是因为个人觉得它很重要 ...

  7. c++强大还是python强大-Python 到底是强类型语言,还是弱类型语言?

    0.前言 我在上一篇文章中分析了 为什么 Python 没有 void 类型 的话题,在文章发布后,有读者跟我讨论起了另一个关于类型的问题,但是,我们很快就出现了重大分歧. 我们主要的分歧就在于:Py ...

  8. python语言的类型是_Python到底是强类型语言,还是弱类型语言?

    0.前言 我在上一篇文章中分析了 的话题,在文章发布后,有读者跟我讨论起了另一个关于类型的问题,但是,我们很快就出现了重大分歧. 我们主要的分歧就在于:Python 到底是不是强类型语言?我认为是,而 ...

  9. python里两个等号代表什么_Python 到底是强类型语言,还是弱类型语言?

    以下文章来源于 Python 猫 ,作者豌豆花下猫 作者 | 豌豆花下猫 来源 | Python 猫 前言 我在上一篇文章中分析了为什么 Python 没有 void 类型的话题,在文章发布后,有读者 ...

最新文章

  1. Vue 源码阅读(三)Special Attributes
  2. 智源青年科学家代季峰:用“数据+知识”解决图像理解的四大挑战
  3. 【CORE JAVA】反射应用:通用方法-扩展数组长度
  4. godaddy 管理mysql_在godaddy上使用MySQL和Entity Framework的安全例...
  5. Docker User Guide
  6. 【ADO.NET基础知识】SqlConnection、command、DataSet 、DataTable、dataAdapter
  7. 操作数栈的字节码指令执行分析
  8. vb.net如何查询电脑麦克风收到声音_EMUI 10.1 跨屏协同实测:这一次把你的手机「搬」进电脑...
  9. 计算机管理创建新用户,win7系统添加新用户名的方法和win7系统计算机管理中没有本地用户和组的解决方法...
  10. 这辈子都没有好好的认认真真的过过一天
  11. Google的快照的用户体验感觉不如之前
  12. matlab怎么fprintf,matlab中的fprintf函数怎么用
  13. 北京政协:电子垃圾回收是亟待破解的难题
  14. webpack 深入浅出分析之打包 JS、ES6 和 Typescript
  15. java8 .map是什么意思_JDK8 stream().map() 作用
  16. 视图的重命名mysql语句_sql语句重命名字段-视图重命名sql语句-数据库重命名sql语句...
  17. C#实现气泡屏保效果(用4个timer)
  18. 【PCIE703】XCKU060+海思视频处理器HI3531DV200-ARM的高性能综合视频图像处理平台设计资料及调试经验
  19. java cs系统_Java课程设计——基于CS模式的用户管理系统
  20. 小学计算机应聘简历,小学计算机教师求职简历范文(英文)

热门文章

  1. 诺基亚眼中的未来:一个智能手机被元宇宙取代的世界
  2. MySQL数据库(最全)
  3. Atitit 教育与培训学校 的计划策划 v4 qc18
  4. 数据结构与C语言精髓(逐步完善)
  5. 版权,转载和搜索引擎
  6. 无缝轮播——改ul的marginLeft
  7. 服务器远程管理卡:提升安全,方便管理
  8. unity Timeline控制动画的播放
  9. DNS安全性介绍和要求(RFC4033翻译)
  10. C语言_地址与指针类型不兼容造成的影响