如何设置网站标题,如果使用自己电脑做网站,中国手机网站建设公司,江苏建筑业网《前端的 Python 入门指南》系列文章#xff1a;
#xff08;一#xff09;#xff1a;常用语法和关键字对比#xff08;二#xff09;#xff1a;函数的定义、参数、作用域对比#xff08;三#xff09;#xff1a;数据类型对比 - 彻底的一切皆对象实现和包装对象异…《前端的 Python 入门指南》系列文章
一常用语法和关键字对比二函数的定义、参数、作用域对比三数据类型对比 - 彻底的一切皆对象实现和包装对象异同四参数传递方式对比 - 值与引用传递 vs 可变不可变数据五面向对象特性之继承实现的方式对比 - 基于原型链和基于类各有什么优缺点六调试方式和技巧对比七异步场景的实现方案对比 - 内置显示事件循环 asyncawait
JavaScript 和 Python 都是动态类型的编程语言之前简单介绍了下语法和关键字以及如何定义函数虽然可以使用函数式编程函数也可以作为值但它们还都有点“一切皆对象”的思想设计。对于熟悉前端开发的程序员来说理解两者在数据类型上的实现方式和差异是快速上手 Python 的关键。本篇文章将通过数据类型的对比帮助你理清 JavaScript 和 Python 的相同点与不同点。
1. 数据类型的分类
JavaScript 的数据类型
JavaScript 的数据类型分为两类
原始类型Primitive Types undefined, null, boolean, number, bigint, string, symbol 引用类型Reference Types Object包括 Array、Function、Date、RegExp 等
let num 42; // 原始类型
let obj { key: value };// 引用类型Python 的数据类型
Python 没有明确的“原始类型”和“引用类型”的区分因为 所有数据类型都是对象。Python 提供了一组常见的内置数据类型
数字类型int, float, complex布尔类型bool序列类型list, tuple, range文本类型str集合类型set, frozenset映射类型dict特殊类型NoneType
num 42 # 数字类型
obj {key: value} # 字典映射类型主要区别
JavaScript 将数据分为“原始类型”和“引用类型”只有引用类型是对象。Python 中 所有类型都是对象包括整数、布尔值和 None。 2. 数字类型的实现
JavaScript
JavaScript 的数字类型主要是 number它使用 64 位浮点数表示整数和小数。BigInt 提供对任意大小整数的支持。
let intNum 42; // 整数
let floatNum 3.14; // 浮点数
let bigIntNum 123n; // BigIntPython
Python 的数字类型更加多样化
整数类型int支持任意大小的整数。浮点数类型float64 位双精度浮点数。复数类型complex支持复数计算。
int_num 42 # 整数
float_num 3.14 # 浮点数
complex_num 1 2j # 复数主要区别
Python 的整数没有范围限制而 JavaScript 的 number 类型可能出现精度丢失。console.log(9999999999999999); // 输出 10000000000000000JavaScript 的 BigInt 和 Python 的 int 都支持大整数但语法略有不同。let bigInt 123456789012345678901234567890n; // JavaScriptbig_int 123456789012345678901234567890 # Python3. 字符串类型
JavaScript
JavaScript 的字符串是不可变的可以通过双引号、单引号或模板字符串定义。
let str1 Hello;
let str2 World;
let str3 ${str1}, ${str2}!; // 模板字符串Python
Python 的字符串同样是不可变的定义方式包括单引号、双引号和三引号支持多行。
str1 Hello
str2 World
str3 f{str1}, {str2}! # 格式化字符串主要区别
两者的字符串本质上都不可变Python 提供了 f{} 格式化字符串与 JavaScript 的模板字符串类似。Python 使用三引号支持多行字符串multi_line This is
a multi-line string.4. 布尔类型
JavaScript
JavaScript 中的布尔值只有两个true 和 false并且有一组常见的“假值”
false, 0, NaN, (空字符串), null, undefined
console.log(Boolean(0)); // false
console.log(Boolean()); // falsePython
Python 中的布尔值是 True 和 False并且同样有“假值”
False, 0, 0.0, , [], {}, None
print(bool(0)) # False
print(bool()) # False主要区别
Python 使用 True 和 False首字母大写。两者的“假值”定义接近但 JavaScript 的 null 和 undefined 没有直接对应的 Python 类型它们相当于 Python 的 None。 5. 列表和数组
JavaScript
JavaScript 的数组是动态的可以存储任何类型的值。
let arr [1, hello, true];
arr.push(4); // 添加元素
console.log(arr); // [1, hello, true, 4]Python
Python 使用 list 表示动态数组也支持存储不同类型的元素。
arr [1, hello, True]
arr.append(4) # 添加元素
print(arr) # [1, hello, True, 4]主要区别
两者的数组操作非常相似但 Python 的 list 提供了更多内置方法如 reverse、sort。JavaScript 使用 Array 提供动态数组功能而 Python 的 list 是内置类型。 6. 字典和对象
JavaScript
JavaScript 使用对象Object存储键值对键必须是字符串或符号。
let obj { key: value };
console.log(obj.key); // valuePython
Python 使用 dict 存储键值对键可以是任意不可变类型如字符串、数字、元组。
obj {key: value}
print(obj[key]) # value主要区别
Python 的字典支持更多类型的键而 JavaScript 的对象键通常是字符串。Python 提供了 collections.defaultdict 等高级功能而 JavaScript 可以通过 Map 提供更灵活的键值存储。 7. 集合
JavaScript
JavaScript 的集合通过 Set 实现集合中的元素是唯一的。
let set new Set([1, 2, 2, 3]);
console.log(set); // Set {1, 2, 3}Python
Python 使用 set 表示集合同样保证元素唯一性。
set_obj set([1, 2, 2, 3])
print(set_obj) # {1, 2, 3}主要区别
两者的集合操作类似但 Python 提供了更多数学集合操作如 union, intersection。 8. 特殊值
JavaScript
null表示空值。undefined表示未定义的值。
Python
None表示空值。Python 没有 undefined未定义变量会抛出 NameError。
let x null; // 空值
let y; // undefinedx None # 空值9. 总结
特性JavaScriptPython数字类型number, BigIntint, float, complex字符串不可变支持模板字符串不可变支持格式化字符串布尔类型true, falseTrue, False数组/列表Array动态类型list动态类型字典/对象Object键为字符串或符号dict键可为任意不可变类型集合Setset, frozenset