Python速览入门:10分钟快速掌握核心语法,零基础新手友好教程
01 - 快速上手:10分钟搭起Python基础
本节目标: 用一道LeetCode真题带出Python最常用的语法结构,上手即用
核心知识点拆解
为什么选Python刷算法?
在算法刷题圈里,Python能快速成为主流,靠的是几点硬实力:
- ✅ 语法极简: 同样逻辑,代码量相比Java/C++至少少一半,写起来省时,调起来舒服。
- ✅ 内置数据结构直给: 字典、集合、列表推导式这些高频工具,Python都已原生集成,不用自己造轮子。
- ✅ 动态类型调试快: 变量声明免了,类型错误少一半,改代码几乎不用动声明行。
- ✅ 大厂面试全面开放: 现在各厂面试普遍支持Python,不必死啃Java那套模板。
Python的设计基调
“简洁优于复杂”贯穿Python整个语法体系。代码读起来像读英文,写起来像写伪代码,几乎没有理解成本。比如:
if x in my_list: # 直接检查x是否在列表里
for item in items: # 遍历items中的每一项
实战代码演示
示例1:完整解法 - 两数之和(LeetCode 1)
用这道经典题把Python核心语法串起来,看看实际怎么用:
def twoSum(nums, target):
"""
找出数组中两个数,使它们的和等于target
"""
# 创建一个空字典,用来存储已经见过的数
seen = {}
# 遍历数组,enumerate同时获取索引和值
for i, num in enumerate(nums):
# 计算需要配对的数
complement = target - num
# 检查配对数是否在字典中
if complement in seen:
# 找到答案,返回两个索引
return [seen[complement], i]
# 把当前数存入字典
seen[num] = i
# 如果没找到,返回空列表
return []
# 测试代码
nums = [2, 7, 11, 15]
target = 9
result = twoSum(nums, target)
print(f"输入: nums = {nums}, target = {target}")
print(f"输出: {result}") # [0, 1]
运行输出:
输入: nums = [2, 7, 11, 15]
输出: [0, 1]
逐行语法标注
def twoSum(nums, target): # def定义函数,参数nums和target
seen = {} # {}创建空字典(哈希表)
for i, num in enumerate(nums): # enumerate同时获取索引i和值num
complement = target - num # 简单减法
if complement in seen: # in检查字典中是否有该键
return [seen[complement], i] # []创建列表并返回
seen[num] = i # 字典赋值:键为num,值为i
print(f"输出: {result}") # f-string格式化输出
示例2:Python vs 其他语言
相同逻辑,Python代码量优势肉眼可见:
Java版本(需要15行):
public int[] twoSum(int[] nums, int target) {
Map seen = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
int complement = target - nums[i];
if (seen.containsKey(complement)) {
return new int[] { seen.get(complement), i };
}
seen.put(nums[i], i);
}
return new int[] {};
}
Python版本(只需8行):
def twoSum(nums, target):
seen = {}
for i, num in enumerate(nums):
if target - num in seen:
return [seen[target - num], i]
seen[num] = i
return []
示例3:核心语法速览
# 1. 变量赋值(无需声明类型)
x = 10 # 整数
name = "Alice" # 字符串
is_valid = True # 布尔值
# 2. 列表(数组)
nums = [1, 2, 3, 4, 5]
print(nums[0]) # 访问第一个元素 → 1
print(nums[-1]) # 访问最后一个元素 → 5
# 3. 字典(哈希表)
scores = {"Alice": 90, "Bob": 85}
print(scores["Alice"]) # → 90
# 4. 控制流
if x > 5:
print("x大于5")
elif x == 5:
print("x等于5")
else:
print("x小于5")
# 5. 循环
for num in [1, 2, 3]:
print(num) # 依次打印1, 2, 3
# 6. 函数
def add(a, b):
return a + b
result = add(3, 5) # 8
在算法题中怎么用
这些语法在刷题时几乎天天碰到,灵活套用就行:
| 语法 | 应用题目示例 | 使用频率 |
|---|---|---|
def 函数定义 | 所有题目 | 100% |
for 循环 | 所有需要遍历的题目 | 95% |
{} 字典 | 第1课:两数之和 第2课:字母异位词分组 | 80% |
[] 列表 | 所有需要存储结果的题目 | 90% |
if/else 条件判断 | 所有需要分支逻辑的题目 | 85% |
in 成员检测 | 第3课:最长连续序列 | 70% |
enumerate | 第1课:两数之和 | 60% |
实战代码片段
来自第1课:两数之和
for i, num in enumerate(nums): # ← enumerate同时取索引和值
if target - num in seen: # ← in判断键是否存在
return [seen[target - num], i] # ← return返回列表
来自第2课:字母异位词分组
groups = {} # ← 建空字典
for word in strs: # ← for循环遍历每个单词
key = "".join(sorted(word)) # ← 字符串join + 内置sorted
groups[key] = groups.get(key, []) + [word] # ← dict.get 安全取值
趁热练一练
练习1:改代码
下面的函数目前返回两数之和,请改成返回两数之积:
def calculate(a, b):
return a + b
print(calculate(3, 4)) # 当前输出: 7
展开看答案
def calculate(a, b):
return a * b # 把加号换成乘号
print(calculate(3, 4)) # 输出: 12
练习2:判断元素是否在列表中
补全代码,判断数字5是否在给定的列表里:
nums = [1, 2, 3, 4, 5]
# 在这里写代码,判断5是否在nums中
展开看答案
nums = [1, 2, 3, 4, 5]
# 推荐:直接用in关键字
if 5 in nums:
print("5在列表中")
# 也可手动遍历:
found = False
for num in nums:
if num == 5:
found = True
break
if found:
print("5在列表中")
说明: Python的in用起来就像读英语一样自然!
练习3:创建并访问字典
创建一个字典记录水果价格,然后取出苹果的价格:
# 创建字典: 苹果5元, 香蕉3元, 橙子4元
# 获取苹果的价格并打印
展开看答案
# 创建字典
prices = {"苹果": 5, "香蕉": 3, "橙子": 4}
# 取苹果价格
apple_price = prices["苹果"]
print(f"苹果的价格是: {apple_price}元") # 输出: 苹果的价格是: 5元
# 更安全的方式:用get方法(找不到返回默认值0)
apple_price = prices.get("苹果", 0)
print(apple_price)
本节要点
学完这一课,你已经基本摸清了Python的脉络:
✅ Python的核心优势: 简单、直观、功能强
✅ Python的基础语法: 变量、列表、字典、函数、循环、条件
✅ 如何看懂真实的算法代码
接下来:
- 想系统学透 → 进入02-变量与数据类型
- 想直接上题 → 跳到../001-two-sum/lesson.md
- 遇到陌生语法 → 回README查索引
Happy Coding!