变量
变量的定义和赋值
基本概念
在 Python 中,变量是存储数据的容器。与 JavaScript 不同,Python 的变量不需要声明类型。
变量赋值
python
# Python - 直接赋值
name = "Alice"
age = 25
is_student = True
height = 1.75javascript
// JavaScript - 需要声明关键字
const name = "Alice";
let age = 25;
const isStudent = true;
const height = 1.75;多重赋值
Python 支持同时给多个变量赋值:
python
# Python - 多重赋值
x, y, z = 1, 2, 3
a = b = c = 0javascript
// JavaScript - 需要分别赋值
const x = 1,
y = 2,
z = 3;
const a = (b = c = 0);变量交换
Python 可以优雅地交换变量值:
python
# Python - 优雅的交换
a, b = 1, 2
a, b = b, a # 交换值
print(a, b) # 输出: 2 1javascript
// JavaScript - 需要临时变量
let a = 1,
b = 2;
[a, b] = [b, a]; // 使用解构赋值
console.log(a, b); // 输出: 2 1变量命名规则
Python 命名规范
- 只能包含:字母、数字、下划线
- 必须以字母或下划线开头
- 区分大小写
- 不能使用关键字
python
# 正确的命名
user_name = "Alice"
age2 = 25
_private_var = "private"
MAX_SIZE = 100
# 错误的命名
2name = "Bob" # 不能以数字开头
user-name = "Bob" # 不能包含连字符
class = "Python" # 不能使用关键字JavaScript 命名规范
javascript
// JavaScript 命名规则类似
const userName = "Alice";
const age2 = 25;
const _privateVar = "private";
const MAX_SIZE = 100;命名约定对比
| 约定 | Python | JavaScript |
|---|---|---|
| 变量名 | snake_case | camelCase |
| 常量 | UPPER_SNAKE_CASE | UPPER_SNAKE_CASE |
| 类名 | PascalCase | PascalCase |
| 私有变量 | _leading_underscore | _leadingUnderscore |
关键字对比
Python 关键字
python
# Python 关键字(部分)
False, None, True, and, as, assert, break, class,
continue, def, del, elif, else, except, finally,
for, from, global, if, import, in, is, lambda,
nonlocal, not, or, pass, raise, return, try,
while, with, yieldJavaScript 关键字
javascript
// JavaScript 关键字(部分)
break, case, catch, class, const, continue, debugger,
default, delete, do, else, export, extends, finally,
for, function, if, import, in, instanceof, let, new,
return, switch, this, throw, try, typeof, var, void,
while, with, yield变量作用域
Python 作用域
python
# Python - 作用域规则
global_var = "I'm global"
def my_function():
local_var = "I'm local"
print(global_var) # 可以访问全局变量
print(local_var) # 可以访问局部变量
def another_function():
global global_var # 声明使用全局变量
global_var = "Modified global"JavaScript 作用域
javascript
// JavaScript - 作用域规则
const globalVar = "I'm global";
function myFunction() {
const localVar = "I'm local";
console.log(globalVar); // 可以访问全局变量
console.log(localVar); // 可以访问局部变量
}
function anotherFunction() {
globalVar = "Modified global"; // 直接修改全局变量
}动态类型
Python 动态类型
python
# Python - 变量类型可以改变
x = 10 # 整数
print(type(x)) # <class 'int'>
x = "Hello" # 字符串
print(type(x)) # <class 'str'>
x = [1, 2, 3] # 列表
print(type(x)) # <class 'list'>JavaScript 动态类型
javascript
// JavaScript - 变量类型也可以改变
let x = 10; // 数字
console.log(typeof x); // "number"
x = "Hello"; // 字符串
console.log(typeof x); // "string"
x = [1, 2, 3]; // 数组
console.log(typeof x); // "object"练习
- 创建不同类型的变量并打印它们的类型
参考答案:
python
# Python
num = 10
flt = 3.14
text = "hello"
b = True
print(type(num), type(flt), type(text), type(b))javascript
// JavaScript
let num = 10;
let flt = 3.14;
let text = "hello";
let b = true;
console.log(typeof num, typeof flt, typeof text, typeof b);- 练习多重赋值和变量交换
参考答案:
python
# Python
a, b = 1, 2
a, b = b, a
print(a, b)javascript
// JavaScript
let a = 1,
b = 2;
[a, b] = [b, a];
console.log(a, b);- 比较 Python 和 JavaScript 的变量命名约定
参考答案:
- Python 推荐使用小写字母和下划线(snake_case),如 my_variable。
- JavaScript 推荐使用小驼峰(camelCase),如 myVariable。
- 常量:Python 用全大写,JS 也常用全大写。
- 测试变量作用域规则
参考答案:
python
# Python
def foo():
x = 10 # 局部变量
print(x)
x = 5 # 全局变量
foo()
print(x)javascript
// JavaScript
let x = 5; // 全局变量
function foo() {
let x = 10; // 局部变量
console.log(x);
}
foo();
console.log(x);下一步
现在你已经了解了 Python 的变量系统,接下来我们将深入学习 Python 的数据类型。