JS 与 Py 变量

一、简介

JavaScript 在浏览器范畴和服务端范畴都有大量的应用,可是 python 在数据处理方面有自己的的优势,编程言语无所谓好坏,趁手的言语使得作业能高效的完成。

二、声明变量与关键字

2.1)js

var v = 123;
let vl = 123
const VC = 123;

2.2)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

// 数字
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

# 整数
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
console.log("Hello, World!");
console.log("Hello, World!", "the second hello world!");
let p = 'Li';
console.log(`${p} hello!`);
  • py
print("Hello, World!")  # Python 3
print "Hello, World!"    # Python 2

基础用法根本一致,可是分为 py2 和 py3 两种不同的版别。

6.2)格局化输出(占位符与格局函数)

  • %s 用于字符串
  • %d 用于整数
  • %f 输出浮点数
let str = "str";
let num = 5;
console.log("Str: %s, Num: %d", str, num);

在 py2 中也支持占位符号,此处重视 py3, py3 运用 format 函数格局化

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
let p = {
  name: "Li",
  age: 5,
};
console.log(person);
  • 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 支持模板字符串。