一、第一个 Python 程序

1
print("Hello, Python!")

与 Java 不同,Python 不需要声明类、定义 main 方法——一行代码就能执行。Python 是解释型语言,逐行执行,简洁直观。

几个与 Java 的关键区别:

特性 Java Python
编译方式 先编译为字节码,再执行 解释执行(实际上也有 .pyc 缓存)
类型系统 静态强类型 动态强类型
代码块 { } 大括号 缩进(4 个空格)
语句结尾 ; 分号 换行即可

二、缩进 —— Python 的灵魂

Python 用缩进表示代码块,没有大括号。缩进必须一致:

1
2
3
4
5
6
7
8
9
if True:
print("正确缩进") # 4 个空格
print("仍在 if 块内")
print("if 块已结束") # 回退缩进

# 错误示范:
if True:
print("OK")
print("缩进不一致会报 IndentationError")

官方推荐 4 个空格,不要混用 Tab 和空格。

三、变量

Python 是动态类型语言,变量不需要声明类型:

1
2
3
4
5
6
7
8
name = "ChiefNing"      # str
age = 22 # int
height = 1.75 # float
is_student = True # bool

# 变量类型可以随时改变
x = 10
x = "hello" # 完全合法,x 现在是 str

变量命名规范(PEP 8):

  • 变量名:snake_case 小写下划线 —— user_name, total_count
  • 常量:UPPER_CASE 全大写 —— MAX_SIZE, PI
  • 类名:PascalCase 大驼峰 —— MyClass, StudentManager

四、基本数据类型

Python 有 6 种标准数据类型

4.1 数字(Number)

1
2
3
4
5
6
7
8
9
10
11
age = 25                # int(整数,自动扩展,无溢出)
price = 19.99 # float(浮点数,相当于 Java 的 double)
complex_num = 3 + 4j # complex(复数,Java 没有)

# 类型转换
x = int("123") # 字符串 → 整数 123
y = float("3.14") # 字符串 → 浮点数 3.14
z = str(100) # 整数 → 字符串 "100"

# 大整数
big = 2 ** 100 # 1267650600228229401496703205376(Python 自动处理)

4.2 字符串(str)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
name = 'Hello'          # 单引号
msg = "World" # 双引号(等价)
desc = '''多行
字符串''' # 三引号,保留换行

# 字符串操作
s = "Hello, Python"
print(len(s)) # 13,获取长度
print(s[0]) # 'H',索引从 0 开始
print(s[-1]) # 'n',负数索引从末尾倒数
print(s[0:5]) # 'Hello',切片 [start:end),左闭右开
print(s[7:]) # 'Python',省略 end 表示到末尾
print(s.upper()) # 'HELLO, PYTHON'
print(s.replace("Python", "World")) # 'Hello, World'
print("Python" in s) # True,成员判断

# f-string 格式化(Python 3.6+)
name = "小明"
age = 22
print(f"{name} 今年 {age} 岁") # 小明 今年 22 岁

4.3 布尔(bool)

1
2
3
4
5
6
7
8
9
10
11
12
flag = True
done = False

# 布尔值可以参与算术运算
print(True + 1) # 2(True = 1, False = 0)

# 以下值在布尔上下文中为 False
bool(None) # False
bool(0) # False
bool("") # False
bool([]) # False
bool({}) # False

4.4 None

None 是 Python 的空值,类似 Java 的 null

1
2
3
4
5
result = None
if result is None:
print("还没有数据")

# 判断 None 用 is,不要用 ==

五、类型检查与转换

1
2
3
4
5
6
7
8
# 检查类型
print(type(42)) # <class 'int'>
print(type("hello")) # <class 'str'>
print(isinstance(42, int)) # True

# 类型暗示(Python 3.5+,仅提示,不强制检查)
def greet(name: str) -> str:
return f"Hello, {name}"

六、列表(list)初探

列表是 Python 最常用的容器,类似 Java 的 ArrayList

1
2
3
4
5
6
7
8
9
10
fruits = ["apple", "banana", "orange"]
print(fruits[0]) # 'apple'
print(fruits[-1]) # 'orange',最后一个
print(len(fruits)) # 3

fruits.append("grape") # 追加
fruits.insert(1, "mango") # 在索引 1 插入
fruits.remove("banana") # 按值删除
popped = fruits.pop() # 弹出最后一个
print(fruits) # ['apple', 'mango', 'orange']

七、字典(dict)初探

字典是键值对容器,类似 Java 的 HashMap

1
2
3
4
5
6
7
8
9
10
11
12
student = {
"name": "小明",
"age": 22,
"scores": [95, 87, 92]
}

print(student["name"]) # '小明'
print(student.get("phone", "N/A")) # 'N/A',键不存在时的默认值

student["email"] = "xiaoming@qq.com" # 添加
del student["age"] # 删除
print("name" in student) # True,检查键是否存在

本系列导航

  • (一)变量与数据类型 ← 当前
  • (二)流程控制
  • (三)函数与面向对象