从 Javascript 到 Python
假设你懂 JavaScript,但你拿到了这家位于理想城市的优秀公司的 offer,而他们的技术栈里却完全没有 JavaScript。相反,他们使用基于 Python 的 Django Web 开发框架。那么,你该从哪里开始呢?在这篇文章中,我将(希望)为你打下基础。我们将涵盖以下内容:
- 什么是python?
- 为什么要学习python?
- 基本(简单)数据类型
- 列表
- 变量声明
- 编写函数
我们希望读者熟悉 javascript,如果不是这样,我建议查看Udemy 上的python 简介,不需要任何类型的编程知识。
什么是 Python?
摘自他们的网站:Python 是一种解释型、面向对象、具有动态语义的高级编程语言。 什么??是的,我第一次读到这句话的时候就是这么想的,所以让我们把这句话分解一下:
- 解释型- 与 JavaScript 类似,Python直接被翻译成计算机可读的代码。在 JavaScript 中,这通常由计算机或服务器上的解释器(例如 Chrome 的 V8 引擎或 Node.js)处理。Python 有自己的解释器,可以在这里下载。
- 面向对象是指 Python 程序的组织/结构方式。在 Python 中,我们使用类和对象来分离关注点,使代码更简洁 (DRY),并允许我们的程序表示现实世界中的事物。相比之下,JavaScript是一种函数式编程语言,它使用函数来实现许多与 Python 相同的组织策略。从概念上讲,两者有很多重叠之处,我们可以讨论几个小时。但对于 JavaScript 开发者来说,只需知道Python 中的类不像 JavaScript 中那样是一种特殊的函数类型。
- 高级编程语言——指的是与人类语言更相似的语言。基本上,它易于阅读,即使对于非程序员来说也是如此。JavaScript 也是一种高级语言,但我认为它不如 Python 那么易于阅读。我们稍后会通过代码示例重新讨论这种比较。
- 动态语义- 基本上,我们可以将变量赋值并重新赋值,使其指向不同的值和数据类型。在 JavaScript 中也可以做到这一点。
为什么选择 Python?
根据 Stack Overflow 的调查,Python 是增长最快的编程语言。在Stack Overflow 的2019 年开发者调查中,Python 在最受欢迎的技术中排名第四。
基本(简单)数据类型
是时候了解 Python 的真正含义了。要尝试以下任何代码示例,我建议使用repl.it,或者您可以下载Python 解释器。我们将使用 Python 的内置type()
函数进行类型检查。这相当于 JavaScript typeof
。为了在执行时记录值,我们使用 Python 的 console.log 函数。print()
- 在 JavaScript 中,我们只有数字。Python 将数字分为三类:整数、浮点数、复数。
# int
print(type(10))
# >>> <class 'int'>
# float
print((type(10.11)))
# >>> <class 'float'>
# complex
print((type(10 + 5j)))
# >>> <class 'complex'>
- 字符串和布尔值与 JavaScript 非常相似。注意,在 Python 中布尔值是大写的。
print(type("I am a string"))
# >>> <class 'str'>
# float
print((type(True)))
# >>> <class 'bool'>
- None数据类型。Python 中没有 null 或 undefined。相反,我们有
None
print(type(None))
# >>> <class 'NoneType'>
还要注意,python 中的注释是用 # 写的,而 JavaScript 中的注释是用 // 写的
列表和其他复杂数据类型
Python 中的列表与 JavaScript 中的数组非常相似。值(元素)包含在[]中,并以逗号分隔。我们也可以使用括号进行访问。
my_list = [1,2,3,4]
print(my_list[2])
# >>> 3
请注意,列表中的元素不能用空格分隔,并且与 JavaScript 类似,列表的索引从零开始。
其他复杂数据类型包括:
- 元组:不可变列表
my_tuple = (1,2,3,4)
- 集合:无序列表(无索引)
my_set = {1,2,3,4}
- 字典:相当于javascript中的对象(键值对)
my_dictionary = {
"name": "Avery",
"age": 32,
"city": "New Orleans"
}
print(my_dictionary["name"])
# >>> Avery
变量赋值
在 JavaScript 中编写变量时,我们有很多选择。我们应该使用const
、let
、var
,还是定义一个不带关键字的全局变量(千万不要这样做……)?在 Python 中,我们从来不使用任何关键字。变量命名的惯例是使用蛇形命名法。和 JavaScript 一样,变量区分大小写。
my_dog = "Jasmine"
x = 10
X = 100
print(my_dog)
print(x)
print(X)
# >>> Jasmine
# >>> 10
# >>> 100
编写函数
Python 中的函数使用(define 的缩写)关键字编写def
。与 JavaScript 不同,我们使用缩进来定义函数体(这里没有胡须括号!)。通常缩进4 个空格,但只要保持一致,您可以随意缩进。
def multiply_by_two(x):
print(x * 2)
multiply_by_two(30)
# >>> 60
下一步是什么?
显然,我们只是触及了 Python 的皮毛。但正如你所见,它与 JavaScript 有很多相似之处。熟悉 ES6 Class 语法的 JavaScript 开发人员在使用 Python Class 时会如鱼得水。展望未来,我强烈推荐 Colt Steele 的《现代 Python 3 训练营》。俗话说,学习你的第一门语言总是最难的——对我来说确实如此,因为在学习 JavaScript 之后再学习 Python 到目前为止一切顺利。祝你的 Python 之旅一切顺利!
文章来源:https://dev.to/aveb/from-javascript-to-python-1b1m