当前位置: 首页 > news >正文

西安网站设计试听公司网站建设公司

西安网站设计试听,公司网站建设公司,做问卷用哪个网站好,自己做网站卖矿山设备《前端的 Python 入门指南》系列文章: (一):常用语法和关键字对比(二):函数的定义、参数、作用域对比(三):数据类型对比 - 彻底的一切皆对象实现和包装对象异…

《前端的 Python 入门指南》系列文章:

  • (一):常用语法和关键字对比
  • (二):函数的定义、参数、作用域对比
  • (三):数据类型对比 - 彻底的一切皆对象实现和包装对象异同
  • (四):参数传递方式对比 - 值与引用传递 vs 可变不可变数据
  • (五):面向对象特性之继承实现的方式对比 - 基于原型链和基于类各有什么优缺点
  • (六):调试方式和技巧对比
  • (七):异步场景的实现方案对比 - 内置+显示事件循环 + async+await

JavaScript 和 Python 都是动态类型的编程语言,之前简单介绍了下语法和关键字,以及如何定义函数,虽然可以使用函数式编程(函数也可以作为值),但它们还都有点“一切皆对象”的思想设计。对于熟悉前端开发的程序员来说,理解两者在数据类型上的实现方式和差异,是快速上手 Python 的关键。本篇文章将通过数据类型的对比,帮助你理清 JavaScript 和 Python 的相同点与不同点。

1. 数据类型的分类

JavaScript 的数据类型

JavaScript 的数据类型分为两类:

  1. 原始类型(Primitive Types)
    • undefined, null, boolean, number, bigint, string, symbol
  2. 引用类型(Reference Types)
    • Object(包括 ArrayFunctionDateRegExp 等)
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;    // BigInt

Python

Python 的数字类型更加多样化:

  • 整数类型(int):支持任意大小的整数。
  • 浮点数类型(float):64 位双精度浮点数。
  • 复数类型(complex):支持复数计算。
int_num = 42            # 整数
float_num = 3.14        # 浮点数
complex_num = 1 + 2j    # 复数

主要区别

  1. Python 的整数没有范围限制,而 JavaScript 的 number 类型可能出现精度丢失。
    console.log(9999999999999999);  // 输出 10000000000000000
    
  2. JavaScript 的 BigInt 和 Python 的 int 都支持大整数,但语法略有不同。
    let bigInt = 123456789012345678901234567890n;  // JavaScript
    
    big_int = 123456789012345678901234567890       # Python
    

3. 字符串类型

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 中的布尔值只有两个:truefalse,并且有一组常见的“假值”:

  • false, 0, NaN, "" (空字符串), null, undefined
console.log(Boolean(0));  // false
console.log(Boolean("")); // false

Python

Python 中的布尔值是 TrueFalse,并且同样有“假值”:

  • False, 0, 0.0, "", [], {}, None
print(bool(0))   # False
print(bool(""))  # False

主要区别

  • Python 使用 TrueFalse,首字母大写。
  • 两者的“假值”定义接近,但 JavaScript 的 nullundefined 没有直接对应的 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 提供了更多内置方法(如 reversesort)。
  • JavaScript 使用 Array 提供动态数组功能,而 Python 的 list 是内置类型。

6. 字典和对象

JavaScript

JavaScript 使用对象(Object)存储键值对,键必须是字符串或符号。

let obj = { key: "value" };
console.log(obj.key);  // "value"

Python

Python 使用 dict 存储键值对,键可以是任意不可变类型(如字符串、数字、元组)。

obj = {"key": "value"}
print(obj["key"])  # "value"

主要区别

  1. Python 的字典支持更多类型的键,而 JavaScript 的对象键通常是字符串。
  2. 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;         // undefined
x = None  # 空值

9. 总结

特性JavaScriptPython
数字类型number, BigIntint, float, complex
字符串不可变,支持模板字符串不可变,支持格式化字符串
布尔类型true, falseTrue, False
数组/列表Array,动态类型list,动态类型
字典/对象Object,键为字符串或符号dict,键可为任意不可变类型
集合Setset, frozenset
http://www.hkea.cn/news/685407/

相关文章:

  • 广州正佳广场攻略深圳债务优化公司
  • 如何自己免费建网站seo网站有哪些
  • 南昌网站建设案例如何制作自己的链接
  • wordpress大流量专业的网站优化公司
  • 做进口零食批发网站百度站长管理平台
  • 网站栏目建设存在的问题关键词简谱
  • 网站备案怎么那么麻烦google chrome 网络浏览器
  • 小米手机做网站服务器nba东西部最新排名
  • 做写字楼用哪个网站更好郑州seo代理外包
  • 做网站 淘宝营销策划思路
  • 网页设计要用到什么软件聊城seo优化
  • 用wordpress做网站百度推广管理
  • 一个空间可以放两个网站吗html模板网站
  • 做试用网站的原理网站推广优化平台
  • 软件工程培训机构学费亚马逊seo什么意思
  • 做恶搞网站软件有哪些苏州seo怎么做
  • 怎么做微信小说网站企业网络营销策划方案
  • 网站后台上传图片失败百度下载免费安装最新版
  • 镇江做网站需要多少钱企业网站模板设计
  • 西安seo优化系统网页seo
  • 如何用网站模板做网站广州网络营销推广
  • 承德手机网站建设seo推广排名
  • wordpress块引用一个网站可以优化多少关键词
  • 360网站卖东西怎么做的无锡seo优化公司
  • 邢台人民网站百度视频推广怎么收费
  • 常州天启建设公司网站高端快速建站
  • ppt模板免费下载网站不用登录seo测试工具
  • 四川建设人才网官网查询阜新网站seo
  • 太原网站开发定制百度网盘官网下载
  • 业主装修日记那个网站做的好片多多可以免费看电视剧吗