随着人工智能技术的普及,愈来愈多的前端程序员开始关注相关技术。Python 做为人工智能领域最经常使用的语言,与前端程序员平常使用的语言 JavaScript 同属脚本语言,且在二者发展过程当中,社区也多有相互借鉴之处,所以有不少类似。一个熟悉 JavaScript 语言的前端程序员,经过掌握了他们之间的不一样之处,能够快速上手 Python 。前端
如下是我学习过程当中记录的 Python 不一样于 JavaScript 的语法点,方便随手查阅。c++
x
是非零数值、非空字符串、非空list等,就判断为True
,不然为False
。if a > b:
a++
elif:
b++
else:
c++
复制代码
try:
print('try...')
r = 10 / 0
print('result:', r)
except ZeroDivisionError as e:
print('except:', e)
finally:
print('finally...')
print('END')
复制代码
列表分为list和tuple程序员
获取list长度 len()数组
获取list最后一个参数 datas[-1],倒数第二个 datas[-2]bash
list操做方法:app
末尾增长 datas.append(data)函数
指定位置插入:datas.insert(index, data)学习
删除末尾:datas.pop()ui
删除指定位置:datas.pop(index)人工智能
list中数据类型可不一样,这一点与JavaScript相同
tuple是不可变的list
tuple定义:(1, 2, 3)
仅一个元素的tuple:(1.2, )
切片:L[a: b: c]从a到b(左闭右开,支持倒数)每c个取一个
tuple和str也可切片,结果仍是原类型
for in迭代dict默认是迭代key
迭代dict的value:for value in d.values()
迭代dic的key、value:for k, v in d.items()
下标循环:for i, value in enumerate(['A', 'B', 'C']):
引用多个变量的循环:for x, y in [(1, 1), (2, 4), (3, 9)]:
列表生成式:[x * x for x in range(1, 11) if x % 2 == 0],[m + n for m in 'ABC' for n in 'XYZ']
列表生成器:可动态的生成列表中的元素,节省内存空间
列表生成器(generator)建立方式
将列表生成式外面的[]改成()
定义generator函数
变量互换:a, b = b, a
Iterable包括list、tuple、dict、set、str
Iterator包括generator
Iterator是惰性求值的
可以使用iter()函数将Iterable转换为Iterator
Iterable和Iterator均可使用for,只有Iterator可以使用next()
map()的返回值类型是Iterator
reduce()的回调函数接受两个参数,相似斐波那契数列,返回值类型是list元素的类型
sorted()函数第二个命名关键字参数,将原来的元素映射为可排序的
def abc(x):
return 0
复制代码
函数能够返回多个值,本质上是构成了一个tuple
可用power(x, n=2)的形式定义默认参数
如调用函数时不是按顺序省略参数,可用以下形式:enroll('Adam', 'M', city='Tianjin')
默认参数必须指向不变对象,不然屡次调用函数且修改参数时可能存在问题
参数类型:
通常的参数叫作位置参数,经过在参数表中的位置代表关系;
可变参数定义函数calc(*numbers)会将传入的多个参数组成tuple,在调用时calc(*[1,2,3])表示将该list做为可变参数传入;
关键字参数定义函数def person(name, age, **kw):会将传入的键值对做为dict传入,调用如person('Adam', 45, gender='M', job='Engineer');
命名关键字参数为分隔符*以后的参数def person(name, age, *, city, job),必须这样调用person('Jack', 24, city='Beijing', job='Engineer'),若是函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就再也不须要一个特殊分隔符了:def person(name, age, *args, city, job):,命名关键字参数传入时必须带有参数名,命名关键字参数也可设置默认值def person(name, age, *, city='Beijing', job):
各种型顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数
匿名函数 lambda x: x * x 仅可有一个不须要写return的表达式
装饰器@可调用高阶函数修改函数定义
偏函数functools.partial的做用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。
__
开头,就变成了一个私有变量(private),只有内部能够访问,外部不能访问