我学 Python 的时候也不习惯,写代码的时候总有种不安全的感觉,没关系,多写点 Python 代码就习惯了。

写 Python 个人推荐 PyCharm,对不遵守代码规范的写法有比较好的提示,适合初学者养成优秀的代码习惯。

多说两句。

显式声明类型与隐式声明类型的语言各有优劣,与语言的设计和定位,以及历史因素都有关系。

像 C/C++、Java 诞生的年代,编译器非常弱,不能在编译期做太多类型推断。为了帮助编译器做静态类型检查,才要求定义变量的时候显式声明类型。此外,在用继承实现多态的语言里,显式声明类型也是定义多态变量的方式。

现在一些比较新的语言,像 JVM 平台上的 Kotlin、Scala,以及 Rust、Go 等等,很多都采取了 静态强类型 + 隐式声明类型 的设计。比如在 Kotlin 里:

val a = 100 // a 自动推断为 Int 类型

Rust:

leta=100// a 自动推断为 i32 类型

这些新语言吸收了学术界有关类型推断的研究成果,能够在编译阶段推断出合适的类型。当然,推断的能力也还有限,无法完全摆脱显式类型声明。

对于 Python 这样的 动态强类型 + 隐式声明类型 语言来说,它并不希望程序员太关心变量是什么类型,是个变量你拿过来用就行。这样一来,虽然损失了一些类型安全,但也提高了语法的灵活性,让写 Python 代码更加舒服,开发效率更高,写出来的代码也更短。这种设计的坏处在于一句话:“动态类型一时爽,代码重构火葬场”,缺乏严谨带来的安全。

python端口与c的区别_Python和C区别该如何理解?如何适应这种区别?相关推荐

  1. python中全局变量和局部变量关键字_Python中全局变量和局部变量的理解与区别

    前言 学过编程的人应该对全局变量与局部变量这两个名词并不陌生,Python也同多数编程语言一样,也有全局变量与局部变量的概念 但是与其他编程语言又有所不同 全局变量与局部变量两者的本质区别就是在于作用 ...

  2. python中read和readline的区别_Python中read()、readline()和readlines()三者间的区别和用法...

    前言 众所周知在python中读取文件常用的三种方法:read(),readline(),readlines(),今天看项目是又忘记他们的区别了.以前看书的时候觉得这东西很简单,一眼扫过,待到用时却也 ...

  3. python中del和pop的区别_python中的del,remove,pop有什么区别

    python中有3个删除元素的方法:del remove pop 虽然它们都是删除元素,用于删除列表.字符串等里面的元素,但是用法可不完全一样,元组由于是不可变的,所以不能使用哦!那么接下来就来看看它 ...

  4. python中的单引号和双引号有什么区别_Python 中的单引号和双引号有什么区别?...

    在Python当中表达字符串既可以使用单引号,也可以使用双引号,那两者有什么区别吗? 简单来说,在Python中使用单引号或双引号是没有区别的,都可以用来表示一个字符串.但是这两种通用的表达方式,除了 ...

  5. python中str和int区别_Python中的string方法和str方法有什么区别?

    String是一个模块,str是一个类型. 我发现str有方法,有些str的方法与string相同.在>>>dir(str) ['__add__', '__class__', '__ ...

  6. python中del和remove的区别_Python列表删除元素del、pop()和remove()的区别小结

    前言 在python列表的元素删除操作中, del, pop(), remove()很容易混淆, 下面对三个语句/方法作出解释 del语句 del语句可以删除任何位置处的列表元素, 若知道某元素在列表 ...

  7. python中matrix是什么意思_Python与线性代数——Numpy中的matrix()和array()的区别

    Numpy中matrix必须是2维的,但是 numpy中array可以是多维的(1D,2D,3D····ND).matrix是array的一个小的分支,包含于array.所以matrix 拥有arra ...

  8. python中del和pop有什么区别_Python列表删除元素del、pop()和remove()的区别小结

    前言 在python列表的元素删除操作中, del, pop(), remove()很容易混淆, 下面对三个语句/方法作出解释 del语句 del语句可以删除任何位置处的列表元素, 若知道某元素在列表 ...

  9. python class和def的区别_Python中class和def的理解

    class Cc(object): #class 是关键字(表示要开始创建类了),Cc是新建的类名称,object为类的继承,没有合适的继承类用object类,这是所有类最终会继承的类 def aa( ...

  10. python中save是什么意思_Python中的numpy.save()和joblib.dump()有什么区别?

    这是joblib代码的关键部分,应该有所启发. def _write_array(self, array, filename): if not self.compress: self.np.save( ...

最新文章

  1. html css 表格自动高度,html – 表格单元格(IE)中的Textarea CSS {height:100%}
  2. Python必学内容:格式化输出的三种方式
  3. 从战中反弹:将Git提交信息作为JSON返回
  4. SpringMVC 测试 mockMVC
  5. VS2010 error C299: “Font”:“struct”类型重定义
  6. Mysql partition by
  7. 话题:什么是前端工程化?
  8. 在内存不足时,new (std::nothrow)并不抛出异常,而是将指针置NULL
  9. RHELServer6.2下编译GDAL和mysql和proj4支持
  10. unity 将虚拟相机的视角局部放大,显示在一个平面上
  11. 2020-08-21 第一次面试小结
  12. php require找不到文件,第一次运行Fatal error: require_once找不到文件
  13. TreeView 右键菜单
  14. 小程序 获取地理位置
  15. 【2016.11.28】纯HTML仿微博注册页面
  16. 由I2C data信号低电平不到0,再思考I2C及GPIO
  17. Spring Boot 容器镜像分层构建
  18. 1 华为南研所软件研发校园优招面试经历
  19. Python基础教程(英文视频教学)
  20. python-flask(二)集成bootstrap、集成web表单、集成邮件发送

热门文章

  1. php xml视频教程,传智播客PHP2015-XML视频教程
  2. Mysql更新数据库数据sql_一条更新SQL在MySQL数据库中是如何执行的
  3. 语义分割--(DeepLabv3+)Encoder-Decoder with Atrous Separable Convolution for Semantic
  4. Kali学习笔记15:防火墙识别、负载均衡识别、WAF识别
  5. Windows 下搭建 Ruby 开发环境
  6. LevelDB的源码阅读(三) Get操作
  7. jquery验证框架validate的使用
  8. #includealgorithm里的函数
  9. Android开发笔记1之HelloWorld
  10. 研华外触发实验PCI1714板卡安装事项