Python入门:从零开始的完整学习指南

前言

Python 是一门简洁、优雅且功能强大的编程语言,被广泛应用于数据分析、人工智能、Web开发、自动化脚本、爬虫、游戏开发等多个领域。根据 TIOBE 指数,Python 近年来稳居编程语言排行榜前列。

本篇博文将带你从零开始,系统学习 Python 的基础语法,并通过大量代码示例帮助你快速上手。无论你是完全的编程小白,还是有其他语言经验的开发者,都能在这里找到你需要的内容。


1. 标识符 (Identifiers)

标识符是变量、函数、类、模块等的名称。

命名规则:

  • 只能包含字母、数字、下划线 _
  • 不能以数字开头
  • 区分大小写
  • 不能使用关键字
python 复制代码
# 正确的标识符
user_name = "Alice"
age = 25
_total_score = 100
PI = 3.14159

# 错误的标识符(会报错)
# 2user = "Bob"      # 以数字开头
# user-name = "Tom"  # 包含非法字符 -
# class = "Python"   # class 是关键字

2. 关键字 (Keywords)

Python 有 35 个保留关键字,不能用作标识符。

python 复制代码
import keyword
print(keyword.kwlist)

输出:

XML 复制代码
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', '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', 'yield']

3. 引号 (Quotes)

Python 使用单引号 '、双引号 "、三引号 '''""" 表示字符串。

python 复制代码
# 单引号
name = 'Alice'

# 双引号
greeting = "Hello, World!"

# 三引号(支持多行)
poem = """
春风又绿江南岸,
明月何时照我还?
"""

# 引号嵌套
sentence = 'He said, "Hello!"'
sentence2 = "It's a beautiful day."

print(name, greeting)
print(poem)

4. 编码 (Encoding)

Python 3 默认使用 UTF-8 编码,支持中文等字符。

python 复制代码
# 文件开头通常不需要指定编码(Python 3 默认 UTF-8)
# 但如果你的编辑器有问题,可以加上:
# -*- coding: utf-8 -*-

chinese = "你好,Python!"
print(chinese)  # 输出:你好,Python!

5. 输入输出 (I/O)

输出:print()

python 复制代码
print("Hello, World!")
print(123)
print(3.14)
print(True)

# 多个值输出(用空格分隔)
print("姓名:", "张三", "年龄:", 20)

# 格式化输出
name = "李四"
age = 25
print(f"我的名字是 {name},今年 {age} 岁。")  # f-string(推荐)
print("我的名字是 %s,今年 %d 岁。" % (name, age))  # 旧式格式化
print("我的名字是 {},今年 {} 岁。".format(name, age))  # format 方法

输入:input()

python 复制代码
name = input("请输入你的名字:")
age = int(input("请输入你的年龄:"))  # 注意:input 返回字符串,需要转换

print(f"你好,{name}!你今年 {age} 岁。")

6. 缩进 (Indentation)

Python 使用缩进来表示代码块,必须使用一致的缩进(通常4个空格)。

python 复制代码
if True:
    print("这是缩进的代码块")
    if 5 > 3:
        print("嵌套缩进")
else:
    print("否则执行这里")

⚠️ 警告:不要混用 Tab 和空格!建议在编辑器中设置为"显示空白字符"。


7. 多行 (Multi-line)

多行语句

python 复制代码
# 方法1:反斜杠 \
total = 1 + 2 + 3 + \
        4 + 5 + 6

# 方法2:括号内自动续行
total = (1 + 2 + 3 +
         4 + 5 + 6)

# 多行字符串
long_string = """
这是一个
很长的
字符串
"""

8. 注释 (Comments)

python 复制代码
# 这是单行注释

"""
这是多行注释(实际上是一个多行字符串)
通常用于函数或模块的说明
"""

'''
也可以使用三个单引号
'''

def add(a, b):
    """
    这是一个函数的文档字符串(docstring)
    返回两个数的和
    """
    return a + b

9. 数据类型 (Data Types)

常见数据类型

python 复制代码
# 整数 int
a = 10
print(type(a))  # <class 'int'>

# 浮点数 float
b = 3.14
print(type(b))  # <class 'float'>

# 布尔值 bool
c = True
d = False
print(type(c))  # <class 'bool'>

# 字符串 str
e = "Python"
print(type(e))  # <class 'str'>

# 列表 list
f = [1, 2, 3, "hello"]
print(type(f))  # <class 'list'>

# 元组 tuple
g = (1, 2, 3)
print(type(g))  # <class 'tuple'>

# 字典 dict
h = {"name": "Alice", "age": 25}
print(type(h))  # <class 'dict'>

# 集合 set
i = {1, 2, 3}
print(type(i))  # <class 'set'>

类型转换

python 复制代码
# 转换为整数
num_str = "123"
num_int = int(num_str)

# 转换为浮点数
num_float = float("3.14")

# 转换为字符串
str_num = str(100)

# 转换为布尔值
bool_val = bool(0)  # False
bool_val2 = bool(1)  # True

print(num_int, num_float, str_num, bool_val)

10. 运算符 (Operators)

10.1 常用运算符

python 复制代码
# 算术运算符
a = 10
b = 3
print(a + b)  # 13
print(a - b)  # 7
print(a * b)  # 30
print(a / b)  # 3.333...
print(a // b) # 3 (整除)
print(a % b)  # 1 (取余)
print(a ** b) # 1000 (幂)

# 比较运算符
print(a > b)   # True
print(a == b)  # False
print(a != b)  # True

# 逻辑运算符
x = True
y = False
print(x and y)  # False
print(x or y)   # True
print(not x)    # False

# 赋值运算符
c = 5
c += 3  # 等价于 c = c + 3
print(c)  # 8

# 成员运算符
my_list = [1, 2, 3, 4]
print(3 in my_list)     # True
print(5 not in my_list) # True

# 身份运算符
a = [1, 2]
b = [1, 2]
print(a is b)     # False (不是同一个对象)
print(a == b)     # True  (值相等)

10.2 运算符优先级

优先级从高到低:

  • () 括号
  • **
  • *, /, //, % 乘除
  • +, - 加减
  • ==, !=, <, <=, >, >= 比较
  • not 逻辑非
  • and 逻辑与
  • or 逻辑或
python 复制代码
result = 2 + 3 * 4  # 先乘后加,结果为 14
result2 = (2 + 3) * 4  # 先加后乘,结果为 20
print(result, result2)

基础:控制结构

条件语句

python 复制代码
age = 18

if age < 18:
    print("未成年人")
elif age >= 18 and age < 60:
    print("成年人")
else:
    print("老年人")

循环语句

for 循环
python 复制代码
# 遍历列表
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

# 遍历数字范围
for i in range(5):
    print(i)  # 输出 0,1,2,3,4

# 遍历字符串
for char in "Python":
    print(char)
while 循环
python 复制代码
count = 0
while count < 5:
    print(count)
    count += 1

进阶:函数与模块

定义函数

python 复制代码
def greet(name):
    """打招呼函数"""
    return f"Hello, {name}!"

# 调用函数
print(greet("Alice"))

# 带默认参数
def power(x, n=2):
    return x ** n

print(power(3))     # 9
print(power(3, 3))  # 27

导入模块

python 复制代码
import math
print(math.sqrt(16))  # 4.0

from random import randint
print(randint(1, 10))  # 随机生成 1-10 的整数

爬虫:使用 requestsBeautifulSoup

需要先安装:pip install requests beautifulsoup4

python 复制代码
import requests
from bs4 import BeautifulSoup

# 获取网页内容
url = "https://httpbin.org/get"
response = requests.get(url)
print(response.status_code)  # 200
print(response.json())       # JSON 响应

# 简单解析 HTML
html = """
<html>
  <body>
    <h1>欢迎</h1>
    <p>这是一段文本</p>
  </body>
</html>
"""

soup = BeautifulSoup(html, 'html.parser')
print(soup.h1.text)  # 欢迎
print(soup.p.text)   # 这是一段文本

自动化:文件操作与定时任务

文件读写

python 复制代码
# 写入文件
with open("test.txt", "w", encoding="utf-8") as f:
    f.write("你好,世界!\n")
    f.write("这是第二行。\n")

# 读取文件
with open("test.txt", "r", encoding="utf-8") as f:
    content = f.read()
    print(content)

# 逐行读取
with open("test.txt", "r", encoding="utf-8") as f:
    for line in f:
        print("行:", line.strip())

自动化脚本示例:批量重命名文件

python 复制代码
import os

def batch_rename(folder_path, prefix):
    """批量重命名文件"""
    for i, filename in enumerate(os.listdir(folder_path)):
        old_path = os.path.join(folder_path, filename)
        if os.path.isfile(old_path):
            new_name = f"{prefix}_{i+1}.txt"
            new_path = os.path.join(folder_path, new_name)
            os.rename(old_path, new_path)
            print(f"重命名: {filename} -> {new_name}")

# 使用示例(请确保目录存在)
# batch_rename("./test_files", "doc")

数据分析:使用 pandas

安装:pip install pandas

python 复制代码
import pandas as pd

# 创建 DataFrame
data = {
    '姓名': ['张三', '李四', '王五'],
    '年龄': [20, 25, 30],
    '城市': ['北京', '上海', '广州']
}

df = pd.DataFrame(data)
print(df)

# 基本操作
print(df.head())        # 前几行
print(df['年龄'].mean()) # 年龄平均值
print(df[df['年龄'] > 22]) # 筛选

编写小游戏:猜数字

python 复制代码
import random

def guess_number():
    number = random.randint(1, 100)
    attempts = 0
    print("我想了一个1到100之间的数字,你来猜猜看!")

    while True:
        try:
            guess = int(input("请输入你的猜测:"))
            attempts += 1

            if guess < number:
                print("太小了!")
            elif guess > number:
                print("太大了!")
            else:
                print(f"恭喜你,猜对了!数字是 {number}")
                print(f"你一共猜了 {attempts} 次。")
                break
        except ValueError:
            print("请输入一个有效的数字!")

# 运行游戏
# guess_number()

趣味 Python:有趣的代码片段

1. 一行代码实现斐波那契数列

复制代码
fib = lambda n: n if n <= 1 else fib(n-1) + fib(n-2) print([fib(i) for i in range(10)]) # [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

python

  • 只能包含字母、数字、下划线 _
  • 不能以数字开头
  • 区分大小
  • 不能使用关键字
python 复制代码
# 正确的标识符
user_name = "Alice"
age = 25
_total_score = 100
PI = 3.14159

# 错误的标识符(会报错)
# 2user = "Bob"      # 以数字开头
# user-name = "Tom"  # 包含非法字符 -
# class = "Python"   # class 是关键字

2. 彩色输出(ANSI 转义码)

python 复制代码
print("\033[91m这是红色文字\033[0m")
print("\033[92m这是绿色文字\033[0m")
print("\033[94m这是蓝色文字\033[0m")
相关推荐
骑着小黑马几秒前
从 Electron 到 Tauri 2:我用 3.5MB 做了个音乐播放器
前端·vue.js·typescript
aykon1 分钟前
DataSource详解以及优势
前端
Mintopia1 分钟前
戴了 30 天智能手环后,我才发现自己一直低估了“睡眠”
前端
leolee181 分钟前
react redux 简单使用
前端·react.js·redux
仰望星空的小猴子3 分钟前
常用的Hooks
前端
天才熊猫君3 分钟前
Vue Fragment 锚点机制
前端
米丘4 分钟前
Git 常用操作命令
前端
星_离6 分钟前
SSE—实时信息推送
前端
wuhen_n27 分钟前
响应式探秘:ref vs reactive,我该选谁?
前端·javascript·vue.js
wuhen_n28 分钟前
setup 的艺术:如何组织我们的组合式函数?
前端·javascript·vue.js