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 支持模板字符串。

相关推荐
hlsd#26 分钟前
go mod 依赖管理
开发语言·后端·golang
哇咔咔哇咔26 分钟前
【科普】conda、virtualenv, venv分别是什么?它们之间有什么区别?
python·conda·virtualenv
四喜花露水29 分钟前
Vue 自定义icon组件封装SVG图标
前端·javascript·vue.js
陈大爷(有低保)31 分钟前
三层架构和MVC以及它们的融合
后端·mvc
亦世凡华、31 分钟前
【启程Golang之旅】从零开始构建可扩展的微服务架构
开发语言·经验分享·后端·golang
河西石头32 分钟前
一步一步从asp.net core mvc中访问asp.net core WebApi
后端·asp.net·mvc·.net core访问api·httpclient的使用
前端Hardy38 分钟前
HTML&CSS: 实现可爱的冰墩墩
前端·javascript·css·html·css3
2401_8574396943 分钟前
SpringBoot框架在资产管理中的应用
java·spring boot·后端
怀旧6661 小时前
spring boot 项目配置https服务
java·spring boot·后端·学习·个人开发·1024程序员节
CSXB991 小时前
三十四、Python基础语法(文件操作-上)
开发语言·python·功能测试·测试工具