一、简介
JavaScript 在浏览器领域和服务端领域都有大量的应用,但是 python 在数据处理方面有自己的的优势,编程语言无所谓好坏,趁手的语言使得工作能高效的完成。
二、声明变量与关键字
2.1)js
ts
var v = 123;
let vl = 123
const VC = 123;
2.2)py
py
v = 123
vl = 123
VC = 123
js 声明后关键字,但是 py 没有。从变量声明来看,py 比 js 更加简单。
三、常用数据类型
以下是 Python 和 JavaScript 数据类型的对比,它们放在一个列表中以便比较:
Python 数据类型 | JavaScript 数据类型 |
---|---|
整数 (int) | 数字 (Number) |
浮点数 (float) | 数字 (Number) |
字符串 (str) | 字符串 (String) |
布尔值 (bool) | 布尔值 (Boolean) |
列表 (list) | 数组 (Array) |
元组 (tuple) | - |
集合 (set) | Set(数据结构) |
字典 (dict) | 对象 (Object) |
字节串 (bytes) | - |
字节数组 (bytearray) | - |
范围 (range) | - |
空类型 (NoneType) | 未定义(undefined) 空对象(null) |
自定义类 (class) | 类(class) |
在数据类型上 JS 的数据类型, JS 不包含元组,也没有 字节串/字节数组
等类型
3.1)js
ts
// 数字
let x = 123;
let y = -123;
// 字符串
let name = "string";
let greeting = 'string';
// 布尔值
let isTrue = true;
let isFalse = false;
// 数组
let string_arr = ["a", "b", "c"];
let numbers_arr = [1, 2, 3, 4, 5];
// 对象
let p = {name: "n", age: 0, sex: "male"};
// 特殊类型:日期对象
let d = new Date();
// 特殊类型:正则表达式
let reg_pattern = /hello/i;
// 空
let undf = undefined
let nl = null
// class
class An {
constructor(a, b) {
this.a = a
this.b = b
}
}
// set
let mySet = new Set(); // 创建一个空的 Set
let mySet2 = new Set([1, 2, 3, 2, 1]); // 从数组初始化 Set
3.2)py
py
# 整数
x = 123
y = -123
# 浮点数
f_pi = 3.14159
f_t = 98.6
# 字符串
s_str = "string"
s_str = 'string'
# 布尔值
is_true = True
is_false = False
# 列表
str_arr = ["a", "b", "c"]
numbers_arr = [1, 2, 3, 4, 5]
# 元组
tuple_point = (3, 4)
# 集合
unique_numbers = {1, 2, 3, 4, 5}
unique_letters = set("abcabcde")
# 字典
py_d = {name: "n", age: 0, sex: "male"};
# 字节串
data = b'Hello, world, this is bytes'
# 字节数组
byte_array = bytearray(b'Hello, world, this is bytes')
# 范围
my_range = range(1, 6)
# 空类型
no_value = None
# class
class An:
def __init__(self, a, b):
self.a = a
self.b = b
四、独有的数据类型
4.1)js
- undefined
- null
- Symbol
4.2)py
- tuple
- Complex
五、类型转换
5.1)js
- js 使用分文显示类型转换和隐式类型转换
- js 使用
String/Boolean/Number
等包装类型进行显示类型转换。 - 使用
toString
转向字符串。 - 一些其他的显示的api
5.2)py
- str(): 值 => 字符串
- int(): 值 => 整数
- float(): 值 => 浮点数
- bool(): 值 => 浮点数
- list(): 值 => 列表
- tuple(): 值 => 元组
- set(): 值 => 集合
六、print 与 console.log 对比
6.1)基础用法
- ts
ts
console.log("Hello, World!");
console.log("Hello, World!", "the second hello world!");
let p = 'Li';
console.log(`${p} hello!`);
- py
py
print("Hello, World!") # Python 3
print "Hello, World!" # Python 2
基础用法基本一致,但是分为 py2 和 py3 两种不同的版本。
6.2)格式化输出(占位符与格式函数)
- %s 用于字符串
- %d 用于整数
- %f 输出浮点数
ts
let str = "str";
let num = 5;
console.log("Str: %s, Num: %d", str, num);
在 py2 中也支持占位符号,此处关注 py3, py3 使用 format 函数格式化
py
f_name = "Li"
l_name = "Lei"
age = 5
print("Name: {} {}, Age: {2}".format(f_name, l_name, age))
format 函数与 {}
结合,更加函数式,在 js 中输出字符串,有多个变量时可以使用模板字符串
6.3)输出对象
js 中 console.log 能直接输出一个对象,但是 print 不能,如果想要实现相容的效果,需要在 class 中定义 __str__
方法。
- js
ts
let p = {
name: "Li",
age: 5,
};
console.log(person);
- py
py
class P:
def __init__(self, name, age, city):
self.name = name
self.age = age
def __str__(self):
return f"Name: {self.name}, Age: {self.age}"
p = P("Li", 5)
print(p)
七、小结
文本主要关注 js
和 py
的变量和类型,以及常用的输出技巧。 js 和 py 都是脚本语言,从变量定义来看 py 更加简单,因为它不需要声明关键字,从数据类型来看 js 的数据类型没有 py 丰富,js 没有自己的 tuple 类型,但是这些 js 完全可以模拟实现类似的效果, 同时关注了 console 与 print 的使用, print 分为 py2 和 py3 版本,都能使用占位符,py3 支持 format 函数格式化数据,而 console 支持模板字符串。