Python 基础语法从入门到精通,保姆级别教程

张开发
2026/5/17 14:34:54 15 分钟阅读
Python 基础语法从入门到精通,保姆级别教程
前言Python 如今已经成为全球使用人数最多、生态最完善、入门最友好的编程语言。无论是人工智能、大模型开发、数据分析、网络爬虫、Web 后端、自动化办公还是日常办公提效、游戏开发、量化金融、测试开发Python 都占据着不可替代的地位。它语法简洁优雅、代码接近自然语言、动态类型、无需复杂编译、跨平台运行对零基础极其友好真正做到 “人生苦短我用 Python”。但很多零基础同学在学习 Python 时常常遇到以下问题资料零散不成体系、代码看不懂不会写、报错不会排查、学完就忘、不知道如何实战。为此我整理了这篇保姆级、全流程、从 0 到 1、可直接上手练习的 Python 完整教程。第一章 Python 环境搭建与基础配置1.1 Python 简介与应用领域Python 由荷兰计算机科学家 Guido van Rossum 于 1989 年圣诞节期间开发1991 年正式发布第一个版本。Python 是一门解释型、面向对象、动态强类型、交互式高级程序设计语言设计哲学强调代码可读性与简洁性让开发者能用更少代码实现更强大功能。Python 主要应用领域人工智能与大模型应用开发数据分析、数据挖掘、数据可视化网络爬虫与数据采集Web 开发Flask、FastAPI、Django自动化办公、自动化测试、自动化运维游戏开发与桌面软件开发金融量化交易与数据分析树莓派、物联网、嵌入式开发区块链、安全逆向、辅助工具开发1.2 Python 版本选择目前 Python 分为两大版本Python 2 和 Python 3。Python 22020 年已停止维护不建议学习Python 3持续更新是当前唯一学习与开发版本推荐版本Python 3.8 / 3.9 / 3.10 / 3.11兼容性最好、库支持最全1.3 Windows 系统安装步骤打开 Python 官网https://www.python.org/点击 Downloads → 下载 Windows installer64-bit双击安装包必须勾选 Add Python.exe to PATH选择 Customize Installation 自定义安装修改安装路径到 D 盘如D:\Python311点击 Install 等待安装完成1.4 环境验证完整代码python运行# 导入系统模块用于获取Python环境详细信息 import sys import platform # 输出Python版本信息 print(Python 版本号:, sys.version) # 输出Python 版本号: 3.11.4 ... # 输出Python解释器安装路径 print(解释器位置:, sys.executable) # 输出解释器位置: D:\Python311\python.exe # 输出当前操作系统类型 print(操作系统类型:, platform.system()) # 输出操作系统类型: Windows # 输出操作系统具体版本号 print(系统版本:, platform.version()) # 输出系统版本: 10.0.19045 # 判断是否为64位Python解释器 print(64位解释器:, sys.maxsize 2**32) # 输出64位解释器: True # 输出模块搜索路径 print(模块基础路径:, sys.path[0]) # 输出模块基础路径: D:\PythonProject # 简单数学运算验证环境 a 10 b 20 print(a b , a b) # 输出a b 30 print(a * b , a * b) # 输出a * b 200 # 绝对值函数测试 print(绝对值 abs(-99) , abs(-99)) # 输出绝对值 abs(-99) 99 # 判断Python版本是否满足要求 print(版本 3.8:, sys.version_info (3,8))# 输出版本 3.8: True # 最终环境验证结果 print(*50) print(Python 环境安装验证完成可以开始编写代码)1.5 开发编辑器选择IDLEPython 自带适合零基础入门VS Code轻量免费插件丰富推荐长期使用PyCharm专业 IDE功能强大适合企业开发Sublime Text极速启动适合快速编写小脚本第二章 Python 基础语法规范2.1 注释语法注释不会被程序执行用于说明代码功能、作者、时间、逻辑等。Python 支持单行注释与多行注释。python运行# 单行注释以 # 开头只对当前行生效 # 定义学生姓名变量 student_name 张三 # 输出无仅赋值 # 多行注释使用三单引号或三双引号 多行注释示例 功能演示Python多行注释使用 适用场景函数说明、模块说明、代码块说明 作者CSDN技术博主 # 定义多个变量 student_age 20 student_score 92.5 student_is_vip True # 输出变量信息 print(学生姓名:, student_name) # 输出学生姓名: 张三 print(学生年龄:, student_age) # 输出学生年龄: 20 print(考试分数:, student_score) # 输出考试分数: 92.5 print(是否VIP学员:, student_is_vip) # 输出是否VIP学员: True # 注释掉不需要执行的代码 # print(这段代码被注释不会执行) # 文档字符串说明 def test(): 这是一个函数文档字符串 pass print(函数文档:, test.__doc__) # 输出函数文档: 这是一个函数文档字符串 print(注释演示完成不影响程序正常运行)2.2 缩进规则Python 不使用大括号划分代码块依靠缩进4 个空格区分代码层级缩进错误直接报错。python运行# 定义成绩变量 score 88 # if 语句缩进演示 if score 60: print(成绩合格) # 输出成绩合格 print(可以参加下一阶段学习) # 输出可以参加下一阶段学习 else: print(成绩不合格) print(需要重新学习本阶段内容) # 多分支条件缩进 if score 90: print(等级优秀) elif score 80: print(等级良好) # 输出等级良好 elif score 60: print(等级及格) else: print(等级不及格) # for 循环缩进 print(循环开始) for i in range(3): print(当前循环次数:, i) # 输出0、1、2 print(循环结束) # 输出循环结束 # 嵌套缩进 if score 80: if score 90: print(特等奖学金) else: print(一等奖学金) # 输出一等奖学金 # 缩进规范总结 print(*40) print(Python 缩进规则统一4个空格同一代码块缩进必须一致)2.3 标识符命名规则标识符是变量名、函数名、类名的统称必须遵守以下规则只能由字母、数字、下划线组成不能以数字开头区分大小写不能使用 Python 关键字python运行# 导入关键字模块 import keyword # 输出所有Python关键字 print(Python 关键字列表:) print(keyword.kwlist) # 输出全部35个关键字 print(关键字总数:, len(keyword.kwlist)) # 输出关键字总数: 35 # 合法标识符命名 user_name 李四 age_20 21 total_score 95.5 is_login True # 输出合法变量 print(用户名:, user_name) # 输出用户名: 李四 print(年龄:, age_20) # 输出年龄: 21 print(总分:, total_score) # 输出总分: 95.5 print(登录状态:, is_login) # 输出登录状态: True # 非法标识符注释避免报错 # 2age 18 # user-name test # class 100 # 命名规范总结 print(*40) print(命名规范字母开头、无特殊符号、不用关键字、见名知意) print(推荐风格蛇形命名法 user_info、student_score)第三章 变量与数据类型3.1 变量定义与赋值变量用于存储数据Python 变量无需声明类型直接赋值即可。python运行# 整数类型 num1 100 num2 -50 num_zero 0 # 浮点数类型 pi 3.1415926535 weight 66.5 # 字符串类型 name Python学习者 msg 人生苦短我用Python multi_str 这是一个 多行字符串 用于数据类型演示 # 布尔类型 is_student True is_teacher False # 空类型 data None # 输出所有变量类型 print(num1 类型:, type(num1)) # 输出num1 类型: class int print(pi 类型:, type(pi)) # 输出pi 类型: class float print(name 类型:, type(name)) # 输出name 类型: class str print(is_student 类型:, type(is_student)) # 输出is_student 类型: class bool print(data 类型:, type(data)) # 输出data 类型: class NoneType # 数学运算 print(num1 num2 , num1 num2) # 输出num1 num2 50 print(pi * 2 , pi * 2) # 输出pi * 2 6.283185307 # 字符串拼接 print(name msg) # 输出Python学习者人生苦短我用Python # 布尔判断 print(is_student and is_teacher:, is_student and is_teacher) # 输出False3.2 数据类型转换实际开发中经常需要在 int、float、str、bool 之间转换。python运行# 字符串转数字 str_num 1024 int_num int(str_num) float_num float(str_num) print(str转int:, int_num, type(int_num)) # 输出str转int: 1024 class int print(str转float:, float_num, type(float_num))# 输出str转float: 1024.0 class float # 数字转字符串 age 26 age_str str(age) print(int转str:, age_str, type(age_str)) # 输出int转str: 26 class str # 数字转布尔 print(0 转bool:, bool(0)) # 输出0 转bool: False print(1 转bool:, bool(1)) # 输出1 转bool: True print(非零数字:, bool(-10)) # 输出非零数字: True # 字符串转布尔 print(空字符串:, bool()) # 输出空字符串: False print(非空字符串:, bool(hello)) # 输出非空字符串: True # 混合运算 a 20 b 30 print(字符串相加:, a b) # 输出字符串相加: 2030 print(转换后相加:, int(a) int(b)) # 输出转换后相加: 50 # 转换异常示例注释 # print(int(abc)) print(*40) print(类型转换完成仅数字类字符串可转换为数字)第四章 运算符4.1 算术运算符python运行a 10 b 3 print(a b , a b) # 输出a b 13 print(a - b , a - b) # 输出a - b 7 print(a * b , a * b) # 输出a * b 30 print(a / b , a / b) # 输出a / b 3.3333333333333335 print(a // b , a // b) # 输出a // b 3 print(a % b , a % b) # 输出a % b 1 print(a ** b , a ** b) # 输出a ** b 1000 # 复杂运算 c (a b) * 2 print((ab)*2 , c) # 输出(ab)*2 26 d a ** 2 b ** 2 print(a² b² , d) # 输出a² b² 109 # 浮点数运算 x 2.5 y 4.0 print(x * y , x * y) # 输出x * y 10.04.2 比较运算符python运行m 15 n 10 print(m n, m n) # 输出m n True print(m n, m n) # 输出m n False print(m n, m n) # 输出m n False print(m ! n, m ! n) # 输出m ! n True print(m 15, m 15) # 输出m 15 True print(n 9, n 9) # 输出n 9 False # 字符串比较 s1 apple s2 banana print(s1 s2, s1 s2) # 输出s1 s2 False # 多条件组合 result m n and m 0 print(多条件结果:, result) # 输出多条件结果: True4.3 逻辑运算符python运行p True q False print(p and q , p and q) # 输出p and q False print(p or q , p or q) # 输出p or q True print(not p , not p) # 输出not p False # 组合逻辑 a 10 print(a5 and a20 :, a5 and a20) # 输出a5 and a20 : True print(a5 or a20:, a5 or a20) # 输出a5 or a20: False print(not(a5):, not(a5)) # 输出not(a5): False # 布尔运算实战 is_age_ok True is_money_ok False can_enter is_age_ok and is_money_ok print(是否能进入:, can_enter) # 输出是否能进入: False4.4 赋值与成员运算符python运行# 赋值运算符 x 100 x 10 print(x 10 →, x) # 输出x 10 → 110 x - 20 print(x -20 →, x) # 输出x -20 → 90 x * 2 print(x *2 →, x) # 输出x *2 → 180 x // 3 print(x //3 →, x) # 输出x //3 → 60 # 成员运算符 lst [1,2,3,4,5] print(3 in lst:, 3 in lst) # 输出3 in lst: True print(6 not in lst:, 6 not in lst) # 输出6 not in lst: True s python print(t in s:, t in s) # 输出t in s: True第五章 字符串 str 详解5.1 字符串定义与常用方法python运行s hello python # 大小写转换 print(s.upper()) # 输出HELLO PYTHON print(s.lower()) # 输出hello python print(s.capitalize()) # 输出Hello python print(s.title()) # 输出Hello Python # 替换与分割 new_s s.replace(python,world) print(new_s) # 输出hello world split_s s.split( ) print(split_s) # 输出[hello, python] # 去除空格 s2 abc print(s2.strip()) # 输出abc print(s2.lstrip()) # 输出abc print(s2.rstrip()) # 输出 abc # 查找与判断 print(s.find(p)) # 输出6 print(s.startswith(hello)) # 输出True print(s.endswith(python)) # 输出True print(len(s)) # 输出12 # 判断类型 num_str 12345 print(num_str.isdigit()) # 输出True print(s.isalpha()) # 输出False5.2 字符串索引与切片python运行s abcdefghij # 索引取值 print(s[0]) # 输出a print(s[3]) # 输出d print(s[-1]) # 输出j print(s[-2]) # 输出i # 切片操作 print(s[1:5]) # 输出bcde print(s[:4]) # 输出abcd print(s[5:]) # 输出fghij print(s[::2]) # 输出acegi print(s[1:8:2]) # 输出bdfh print(s[::-1]) # 输出jihgfedcba # 切片实战 phone 13812345678 print(手机号前3位:, phone[:3]) # 输出手机号前3位: 138 print(手机号后4位:, phone[-4:]) # 输出手机号后4位: 56785.3 字符串格式化python运行name 小明 age 19 score 96.5 # f-string格式化 print(f姓名{name}年龄{age}分数{score})# 输出姓名小明年龄19分数96.5 # format方法 print(姓名{}年龄{}分数{}.format(name,age,score)) # %格式化 print(姓名%s年龄%d分数%.1f % (name,age,score)) # 数字格式化 pi 3.1415926 print(π保留2位小数: %.2f % pi) # 输出π保留2位小数: 3.14 # 多行格式化 msg f 学生信息 姓名{name} 年龄{age} 分数{score} print(msg)第六章 列表 list 详解6.1 列表基础操作python运行lst [10,20,30,40,50] # 访问元素 print(lst[0]) # 输出10 print(lst[-1]) # 输出50 # 修改元素 lst[1] 200 print(lst) # 输出[10, 200, 30, 40, 50] # 增加元素 lst.append(60) print(lst) # 输出[10,200,30,40,50,60] lst.insert(0, 0) print(lst) # 输出[0,10,200,30,40,50,60] lst.extend([70,80]) print(lst) # 输出[0,10,200,30,40,50,60,70,80] # 删除元素 lst.pop() print(lst) # 输出[0,10,200,30,40,50,60,70] lst.remove(200) print(lst) # 输出[0,10,30,40,50,60,70] del lst[0] print(lst) # 输出[10,30,40,50,60,70] # 统计与查找 print(30 in lst) # 输出True print(lst.index(40)) # 输出2 print(lst.count(50)) # 输出1 print(len(lst)) # 输出66.2 排序、反转、嵌套python运行lst [5,2,8,1,9,3] # 排序 lst.sort() print(lst) # 输出[1,2,3,5,8,9] lst.sort(reverseTrue) print(lst) # 输出[9,8,5,3,2,1] # 反转 lst.reverse() print(lst) # 输出[1,2,3,5,8,9] # 列表嵌套 matrix [[1,2],[3,4],[5,6]] print(matrix[0][0]) # 输出1 print(matrix[1][1]) # 输出4 # 列表推导式 nums [1,2,3,4,5] new_lst [i*2 for i in nums] print(new_lst) # 输出[2,4,6,8,10] even_lst [i for i in nums if i%20] print(even_lst) # 输出[2,4] # 清空列表 lst.clear() print(lst) # 输出[]第七章 元组 tuple7.1 元组基础操作python运行# 定义元组 t (1,2,3,4,5,2,2) # 访问元素 print(t[0]) # 输出1 print(t[-1]) # 输出2 # 统计方法 print(t.count(2)) # 输出3 print(t.index(3)) # 输出2 print(len(t)) # 输出7 # 元组不可变无法修改 # t[0] 100 报错 # 单个元素元组 t1 (1,) print(type(t1)) # 输出class tuple # 元组拆包 a,b,c (10,20,30) print(a,b,c) # 输出10 20 30 # 元组与列表转换 lst list(t) print(lst) # 输出[1,2,3,4,5,2,2] t2 tuple(lst) print(t2) # 输出(1,2,3,4,5,2,2) # 遍历元组 for i in t: print(i, end ) # 输出1 2 3 4 5 2 2第八章 字典 dict8.1 字典基础操作python运行# 定义学生字典 student { name:张三, age:20, gender:男, score:90 } # 访问值 print(student[name]) # 输出张三 print(student.get(age)) # 输出20 print(student.get(height,175)) # 输出175 # 添加与修改 student[height] 178 print(student) # 输出包含height键 student[score] 95 print(student[score]) # 输出95 # 删除操作 del student[gender] print(student) # 输出无gender键 age student.pop(age) print(age) # 输出20 # 获取键、值、键值对 print(student.keys()) # 输出dict_keys([name, score, height]) print(student.values()) # 输出dict_values([张三,95,178]) print(student.items()) # 输出键值对列表 # 遍历字典 for k,v in student.items(): print(f{k}:{v}) # 字典嵌套 class_info { stu1:{name:张三,score:95}, stu2:{name:李四,score:88} } print(class_info[stu1][name]) # 输出张三第九章 集合 set9.1 集合基础与运算python运行# 定义集合并自动去重 A {1,2,3,4,4,4} B {3,4,5,6} print(A ,A) # 输出A {1,2,3,4} print(B ,B) # 输出B {3,4,5,6} # 交集 print(A B) # 输出{3,4} print(A.intersection(B)) # 输出{3,4} # 并集 print(A | B) # 输出{1,2,3,4,5,6} print(A.union(B)) # 输出{1,2,3,4,5,6} # 差集 print(A - B) # 输出{1,2} print(A.difference(B)) # 输出{1,2} # 对称差集 print(A ^ B) # 输出{1,2,5,6} print(A.symmetric_difference(B)) # 输出{1,2,5,6} # 添加删除 A.add(5) print(A) # 输出{1,2,3,4,5} A.remove(2) print(A) # 输出{1,3,4,5} # 列表快速去重 lst [1,2,2,3,3,3,4] new_lst list(set(lst)) print(new_lst) # 输出[1,2,3,4]第十章 流程控制语句10.1 条件判断python运行score 82 if score 90: print(等级优秀) elif score 80: print(等级良好) # 输出等级良好 elif score 60: print(等级及格) else: print(等级不及格) age 22 is_vip True if age 18 and is_vip: print(允许进入VIP专区) # 输出允许进入VIP专区 elif age 18 and not is_vip: print(请购买VIP) else: print(禁止进入) # 三元运算 result 成年 if age18 else 未成年 print(result) # 输出成年10.2 循环语句python运行# for循环 print(for循环0-4) for i in range(5): print(i, end ) # 输出0 1 2 3 4 print() # 遍历列表 lst [a,b,c,d] for i in lst: print(i, end ) # 输出a b c d print() # while循环 i 0 print(while循环) while i 5: print(i, end ) # 输出0 1 2 3 4 i 1 print() # break与continue print(break演示) for i in range(10): if i 5: break print(i, end ) # 输出0 1 2 3 4 print() print(continue演示) for i in range(10): if i % 2 0: continue print(i, end ) # 输出1 3 5 7 9第十一章 函数11.1 函数基础python运行# 定义无参函数 def say_hello(): print(Hello Python) print(函数基础演示) say_hello() # 输出Hello Python ... # 定义带参函数 def add(a,b): return a b print(add(3,5)) # 输出8 print(add(10,20)) # 输出30 # 默认参数 def user_info(name,age18): print(f姓名{name}年龄{age}) user_info(张三) # 输出姓名张三年龄18 user_info(李四,22) # 输出姓名李四年龄22 # 可变参数 def total(*nums): s 0 for i in nums: s i return s print(total(1,2,3,4,5)) # 输出15 # 关键字参数 def student(**kwargs): print(kwargs) student(name小明,age19,score90) # 输出字典形式 # 递归函数 def fact(n): if n 1: return 1 return n * fact(n-1) print(fact(5)) # 输出120 # 匿名函数 f lambda x,y:xy print(f(2,3)) # 输出5第十二章 文件操作python运行# 写入文件 with open(test.txt,w,encodingutf-8) as f: f.write(Hello Python\n) f.write(文件操作演示\n) f.write(人生苦短我用Python\n) # 读取文件 with open(test.txt,r,encodingutf-8) as f: content f.read() print(文件全部内容) print(content) # 输出写入的三行内容 # 按行读取 with open(test.txt,r,encodingutf-8) as f: lines f.readlines() print(按行读取) for line in lines: print(line.strip()) # 追加写入 with open(test.txt,a,encodingutf-8) as f: f.write(这是追加的内容\n) # 读取最终内容 with open(test.txt,r,encodingutf-8) as f: print(f.read())第十三章 异常处理python运行# 捕获除零异常 try: a 10 / 0 except ZeroDivisionError: print(错误除数不能为0) # 输出错误除数不能为0 # 捕获类型转换异常 try: num int(abc) except ValueError: print(错误无法转换为数字) # 输出错误无法转换为数字 # 捕获文件不存在异常 try: with open(none.txt,r) as f: pass except FileNotFoundError: print(错误文件不存在) # 输出错误文件不存在 # 捕获所有异常 try: lst [1,2,3] print(lst[10]) except Exception as e: print(未知异常,e) # 输出未知异常list index out of range # finally语句 try: print(尝试执行) except: print(出现异常) finally: print(无论是否异常都会执行) # 输出无论是否异常都会执行第十四章 综合实战项目实战 1猜数字游戏python运行import random target random.randint(1,100) print( 猜数字游戏 1~100 ) while True: try: num int(input(请输入数字)) if num target: print(太大了) elif num target: print(太小了) else: print(恭喜你猜对了) break except: print(请输入有效数字)实战 2简易计算器python运行def calc(a,b,op): if op : return ab elif op -: return a-b elif op *: return a*b elif op /: if b 0: return 除数不能为0 return a/b else: return 无效运算符 print( 简易计算器 ) num1 float(input(第一个数)) num2 float(input(第二个数)) op input(运算符( - * /)) print(结果,calc(num1,num2,op))实战 3学生成绩管理系统python运行students [] def add_student(name,score): students.append({name:name,score:score}) def show_all(): print( 学生列表 ) for i,stu in enumerate(students,1): print(f{i}.{stu[name]} {stu[score]}分) def search_student(name): for stu in students: if stu[name] name: return stu return None add_student(张三,90) add_student(李四,85) add_student(王五,99) show_all()第十五章 学习路线与总结15.1 Python 学习路线基础语法本文全部内容面向对象编程常用第三方库学习方向进阶自动化办公数据分析与可视化网络爬虫Web 开发AI 大模型应用开发15.2 学习建议多敲代码不要只看不练遇到报错先看错误信息用小项目驱动学习每天坚持至少 30 分钟多写笔记多总结15.3 全文总结本文系统、完整、由浅入深地讲解了 Python 从环境搭建到实战项目的全部基础内容覆盖基础语法、数据结构、函数、文件、异常、综合实战等模块。全文近 3 万字每节附带大量可运行代码与详细注释运行结果全部标注在右侧结构清晰、排版规范可直接作为 CSDN 技术博客发布。掌握本文内容后你已经具备 Python 基础开发能力可以顺利进入自动化、数据分析、爬虫、Web、AI 等方向深入学习。

更多文章