【嵌牛导读】Python 是一门运用很广泛的语言,自动化脚本、爬虫,甚至在深度学习领域也都有 Python 的身影。作为一名前端开发者,也了解 ES6 中的很多特性借鉴自 Python (比如默认参数、解构赋值、Decorator等),同时本文会对 Python 的一些用法与 JS 进行类比。不管是提升自己的知识广度,还是更好地迎接 AI 时代,Python 都是一门值得学习的语言。
【嵌牛鼻子】python与JS的相似之处
【嵌牛提问】python与JS有哪些相似呢?
【嵌牛正文】
数据类型
在 Python 中,最常用的能够直接处理的数据类型有以下几种:
数字[整数(int)、浮点型(float)、长整型(long)、复数(complex)]
字符串(str)
布尔值(bool)
空值(None)
除此之外,Python 还提供了列表[list]、字典[dict] 等多种数据类型,这在下文中会介绍。
类型转换与类型判断
与 JS 十分类似,python 也能实现不同数据类型间的强制与隐式转换,例子如下:
强制类型转换:
int('3') # 3str(3.14) # '3.14'float('3.14') # 3.14# 区别于 JS 只有 Number 一种类型,Python 中数字中的不同类型也能相互强制转换float(3) # 3.0bool(3) # Truebool(0) # False
隐式类型转换:
1 + 1.0 # 2.01 + False # 11.0 + True # 2.0# 区别于 JS 的 String + Number = String, py 中 str + int 会报错1 + '1' # TypeError: cannot concatenate 'str' and 'int' objects
此外写代码的时候经常会需要判断值的类型,可以 使用 python 提供的 type() 函数获取变量的类型,或者使用 isinstance(x, type) 来判断 x 是否属于相应的 type 类型。
type(1.3) == float # Trueisinstance('a', str) # Trueisinstance(1.3, int) # Falseisinstance(True, bool) # Trueisinstance([], list) # Trueisinstance({}, dict) # True
有序集合类型
集合是指包含一组元素的数据结构,有序集合即集合里面的元素是是按照顺序排列的,Python 中的有序集合大概有以下几类:list, tuple, str, unicode。
list 类型
Python 中 List 类型类似于 JS 中的 Array,
L = [1, 2, 3]print L[-1] # '3'L.append(4) # 末尾添加元素print L # [1, 2, 3, 4]L.insert(0, 'hi') # 指定索引位置添加元素print L # ['hi', 1, 2, 3, 4]L.pop() # 末尾移除元素 L.pop(2) ?????? 2 ???print L # ['hi', 1, 2, 3]
tuple 类型
tuple 类型是另一种有序的列表,中文翻译为" 元组 "。tuple 和 list 非常类似,但是,tuple 一旦创建完毕,就不能修改了。
t = (1, 2, 3)print t[0] # 1t[0] = 11 # TypeError: 'tuple' object does not support item assignmentt = (1)print t # 1 t 的结果是整数 1t = (1,) # 为了避免出现如上有歧义的单元素 tuple,所以 Python 规定,单元素 tuple 要多加一个逗号","print t # (1,)
新闻热点
疑难解答