JS 与 Py 变量

一、简介

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)

七、小结

文本主要关注 jspy 的变量和类型,以及常用的输出技巧。 js 和 py 都是脚本语言,从变量定义来看 py 更加简单,因为它不需要声明关键字,从数据类型来看 js 的数据类型没有 py 丰富,js 没有自己的 tuple 类型,但是这些 js 完全可以模拟实现类似的效果, 同时关注了 console 与 print 的使用, print 分为 py2 和 py3 版本,都能使用占位符,py3 支持 format 函数格式化数据,而 console 支持模板字符串。

相关推荐
Estar.Lee1 小时前
查手机号归属地免费API接口教程
android·网络·后端·网络协议·tcp/ip·oneapi
y先森1 小时前
CSS3中的伸缩盒模型(弹性盒子、弹性布局)之伸缩容器、伸缩项目、主轴方向、主轴换行方式、复合属性flex-flow
前端·css·css3
前端Hardy1 小时前
纯HTML&CSS实现3D旋转地球
前端·javascript·css·3d·html
susu10830189111 小时前
vue3中父div设置display flex,2个子div重叠
前端·javascript·vue.js
湫ccc2 小时前
《Python基础》之字符串格式化输出
开发语言·python
mqiqe2 小时前
Python MySQL通过Binlog 获取变更记录 恢复数据
开发语言·python·mysql
AttackingLin2 小时前
2024强网杯--babyheap house of apple2解法
linux·开发语言·python
IT女孩儿2 小时前
CSS查缺补漏(补充上一条)
前端·css
2401_857610032 小时前
SpringBoot社团管理:安全与维护
spring boot·后端·安全
哭泣的眼泪4083 小时前
解析粗糙度仪在工业制造及材料科学和建筑工程领域的重要性
python·算法·django·virtualenv·pygame