Skip to content

数据类型

基本数据类型

数字类型

Python 数字类型

python
# Python - 整数
age = 25
count = -10

# Python - 浮点数
height = 1.75
pi = 3.14159

# Python - 复数
complex_num = 3 + 4j

JavaScript 数字类型

javascript
// JavaScript - 只有一种数字类型
const age = 25;
const height = 1.75;
const count = -10;

字符串类型

Python 字符串

python
# Python - 字符串
name = "Alice"
message = 'Hello, World!'
multi_line = """
这是一个
多行字符串
"""

# 字符串方法
name.upper()      # 转大写
name.lower()      # 转小写
name.replace("A", "B")  # 替换
len(name)         # 长度

JavaScript 字符串

javascript
// JavaScript - 字符串
const name = "Alice";
const message = "Hello, World!";
const multiLine = `
这是一个
多行字符串
`;

// 字符串方法
name.toUpperCase(); // 转大写
name.toLowerCase(); // 转小写
name.replace("A", "B"); // 替换
name.length; // 长度

布尔类型

python
# Python - 布尔值
is_student = True
is_working = False

# 真值判断
bool(0)      # False
bool("")     # False
bool([])     # False
bool(1)      # True
bool("Hello") # True
javascript
// JavaScript - 布尔值
const isStudent = true;
const isWorking = false;

// 真值判断
Boolean(0); // false
Boolean(""); // false
Boolean([]); // true (注意:空数组在JS中是truthy)
Boolean(1); // true
Boolean("Hello"); // true

None vs null

python
# Python - None
value = None
if value is None:
    print("Value is None")
javascript
// JavaScript - null 和 undefined
const value = null;
const undefinedValue = undefined;

if (value === null) {
  console.log("Value is null");
}

基本数据类型的算术运算

数字运算

python
# Python - 算术运算
a, b = 10, 3

print(a + b)   # 13
print(a - b)   # 7
print(a * b)   # 30
print(a / b)   # 3.3333... (浮点除法)
print(a // b)  # 3 (整数除法)
print(a % b)   # 1 (取余)
print(a ** b)  # 1000 (幂运算)
javascript
// JavaScript - 算术运算
const a = 10,
  b = 3;

console.log(a + b); // 13
console.log(a - b); // 7
console.log(a * b); // 30
console.log(a / b); // 3.3333...
console.log(Math.floor(a / b)); // 3 (整数除法)
console.log(a % b); // 1 (取余)
console.log(a ** b); // 1000 (幂运算)

字符串运算

python
# Python - 字符串运算
first = "Hello"
second = "World"

print(first + " " + second)  # 字符串拼接
print(first * 3)             # 字符串重复
print("Hello" in first)      # 成员检查
javascript
// JavaScript - 字符串运算
const first = "Hello";
const second = "World";

console.log(first + " " + second); // 字符串拼接
console.log(first.repeat(3)); // 字符串重复
console.log(first.includes("Hello")); // 成员检查

类型转换

Python 类型转换

python
# Python - 类型转换
# 字符串转数字
age_str = "25"
age = int(age_str)
height_str = "1.75"
height = float(height_str)

# 数字转字符串
age_str = str(25)
height_str = str(1.75)

# 布尔转换
bool(0)      # False
bool(1)      # True
bool("")     # False
bool("Hello") # True

JavaScript 类型转换

javascript
// JavaScript - 类型转换
// 字符串转数字
const ageStr = "25";
const age = parseInt(ageStr);
const heightStr = "1.75";
const height = parseFloat(heightStr);

// 数字转字符串
const ageStr2 = String(25);
const heightStr2 = (1.75).toString();

// 布尔转换
Boolean(0); // false
Boolean(1); // true
Boolean(""); // false
Boolean("Hello"); // true

列表和元组

Python 列表(类似 JavaScript 数组)

python
# Python - 列表
fruits = ["apple", "banana", "orange"]
numbers = [1, 2, 3, 4, 5]

# 访问元素
print(fruits[0])      # apple
print(fruits[-1])     # orange (最后一个)

# 修改元素
fruits[1] = "grape"

# 添加元素
fruits.append("mango")
fruits.insert(1, "kiwi")

# 删除元素
fruits.remove("banana")
popped = fruits.pop()

# 列表方法
len(fruits)           # 长度
fruits.sort()         # 排序
fruits.reverse()      # 反转

JavaScript 数组

javascript
// JavaScript - 数组
const fruits = ["apple", "banana", "orange"];
const numbers = [1, 2, 3, 4, 5];

// 访问元素
console.log(fruits[0]); // apple
console.log(fruits[fruits.length - 1]); // orange

// 修改元素
fruits[1] = "grape";

// 添加元素
fruits.push("mango");
fruits.splice(1, 0, "kiwi");

// 删除元素
fruits.splice(fruits.indexOf("banana"), 1);
const popped = fruits.pop();

// 数组方法
fruits.length; // 长度
fruits.sort(); // 排序
fruits.reverse(); // 反转

Python 元组(不可变列表)

python
# Python - 元组
coordinates = (10, 20)
person = ("Alice", 25, "Engineer")

# 访问元素
print(coordinates[0])  # 10

# 元组不可修改
# coordinates[0] = 30  # 错误!

# 解包
x, y = coordinates
name, age, job = person

字典

Python 字典(类似 JavaScript 对象)

python
# Python - 字典
person = {
    "name": "Alice",
    "age": 25,
    "city": "New York"
}

# 访问值
print(person["name"])        # Alice
print(person.get("age"))     # 25
print(person.get("country", "Unknown"))  # 默认值

# 修改值
person["age"] = 26

# 添加键值对
person["job"] = "Engineer"

# 删除键值对
del person["city"]
removed = person.pop("age")

# 字典方法
person.keys()    # 所有键
person.values()  # 所有值
person.items()   # 所有键值对

JavaScript 对象

javascript
// JavaScript - 对象
const person = {
  name: "Alice",
  age: 25,
  city: "New York",
};

// 访问值
console.log(person.name); // Alice
console.log(person["age"]); // 25
console.log(person.country || "Unknown"); // 默认值

// 修改值
person.age = 26;

// 添加属性
person.job = "Engineer";

// 删除属性
delete person.city;

// 对象方法
Object.keys(person); // 所有键
Object.values(person); // 所有值
Object.entries(person); // 所有键值对

集合

Python 集合

python
# Python - 集合(无序、不重复)
fruits = {"apple", "banana", "orange"}
numbers = {1, 2, 3, 4, 5}

# 添加元素
fruits.add("mango")

# 删除元素
fruits.remove("banana")

# 集合运算
set1 = {1, 2, 3}
set2 = {3, 4, 5}

union = set1 | set2        # 并集
intersection = set1 & set2 # 交集
difference = set1 - set2   # 差集

JavaScript Set

javascript
// JavaScript - Set
const fruits = new Set(["apple", "banana", "orange"]);
const numbers = new Set([1, 2, 3, 4, 5]);

// 添加元素
fruits.add("mango");

// 删除元素
fruits.delete("banana");

// 集合运算(需要手动实现)
const set1 = new Set([1, 2, 3]);
const set2 = new Set([3, 4, 5]);

const union = new Set([...set1, ...set2]);
const intersection = new Set([...set1].filter((x) => set2.has(x)));
const difference = new Set([...set1].filter((x) => !set2.has(x)));

练习

  1. 创建不同类型的变量并测试它们的运算

参考答案:

python
# Python
num = 10
flt = 3.14
text = "hello"
print(num + flt)
print(text * 2)
javascript
// JavaScript
let num = 10;
let flt = 3.14;
let text = "hello";
console.log(num + flt);
console.log(text.repeat(2));
  1. 练习列表和字典的基本操作

参考答案:

python
# Python
lst = [1, 2, 3]
lst.append(4)
lst[0] = 10
print(lst)
dct = {"a": 1, "b": 2}
dct["c"] = 3
print(dct)
javascript
// JavaScript
let arr = [1, 2, 3];
arr.push(4);
arr[0] = 10;
console.log(arr);
let obj = { a: 1, b: 2 };
obj.c = 3;
console.log(obj);
  1. 比较 Python 和 JavaScript 的数据类型差异

参考答案:

  • Python 有 int、float、str、list、tuple、dict、set、bool、NoneType。
  • JavaScript 有 number、string、boolean、object、array、null、undefined、symbol、bigint。
  • Python 的 list/tuple/dict/set 分别对应 JS 的 array/object/set(无 tuple 直接对应)。
  1. 实现简单的类型转换

参考答案:

python
# Python
num = int("123")
flt = float("3.14")
text = str(456)
bool_val = bool(1)
javascript
// JavaScript
let num = parseInt("123");
let flt = parseFloat("3.14");
let text = String(456);
let boolVal = Boolean(1);

下一步

现在你已经了解了 Python 的基本数据类型,接下来我们将学习控制流语句。