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")
相关推荐
柯南二号3 小时前
【大前端】 TypeScript vs JavaScript:全面对比与实践指南
前端·javascript·typescript
岁月宁静3 小时前
AI 语音合成技术实践:实现文本转语音实时流式播放
前端·vue.js·node.js
用户1908722824783 小时前
多段进度条解决方案
前端
閞杺哋笨小孩3 小时前
Vue3 可拖动指令(draggable)
前端·vue.js
鱼前带猫刺猬3 小时前
leafer-js实现简单图片裁剪(react)
前端
ye_1233 小时前
前端性能优化之Gzip压缩
前端
用户904706683573 小时前
uniapp Vue3版本,用pinia存储持久化插件pinia-plugin-persistedstate对微信小程序的配置
前端·uni-app
文心快码BaiduComate3 小时前
弟弟想看恐龙,用文心快码3.5S快速打造恐龙乐园
前端·后端·程序员
Mintimate3 小时前
Vue项目接口防刷加固:接入腾讯云天御验证码实现人机验证、恶意请求拦截
前端·vue.js·安全