🐍 Python基础

学习Python编程语言的核心基础知识

难度等级 ⭐ 入门级
预计学习周期 2 周(每天 1-2 小时)
前置知识 无需编程基础
课程章节 4 章 · 20+ 知识点

课程亮点

🚀
从零开始
无需编程基础,手把手带你入门Python
📋
代码模板
每章配套可直接复用的代码片段和模板
🎯
实战项目
课后练手项目 + 详细解答,巩固所学
🗺️

学习路径

阶段 1:环境搭建与基础语法
安装Python,掌握变量、数据类型、输入输出
阶段 2:流程控制与逻辑
条件判断、循环结构、逻辑运算符
阶段 3:函数与模块化
函数定义、参数传递、模块导入、代码复用
阶段 4:综合实战
完成小型项目,具备独立编写脚本的能力
👥

适合人群

✅ 适合学习:
· 零基础想学习编程的同学
· 数据分析专业需要Python基础的同学
· 想提升自动化办公效率的同学
⚠️ 建议先补基础:
· 基本的电脑操作能力
· 如果完全没接触过电脑,建议先熟悉基本操作
🎓

学完能做什么

学完本课程,你将能够:

  • 独立编写Python脚本处理日常数据任务
  • 使用Python进行文件批量处理和自动化办公
  • 为后续数据分析、爬虫等进阶课程打下坚实基础
  • 理解编程思维,具备自学其他编程语言的能力
01

Python环境搭建与第一个程序

1.1 Python简介

Python 是由 Guido van Rossum 于 1991 年发布的高级编程语言,以简洁、易读的语法著称。它广泛应用于 Web 开发、数据分析、人工智能、自动化运维等领域。Python 的设计哲学强调代码的可读性和简洁性,使得初学者能够快速上手。

Python 的主要特点包括:

  • 简单易学:语法接近自然语言,适合编程入门
  • 开源免费:拥有庞大的社区和丰富的第三方库
  • 跨平台:支持 Windows、macOS、Linux 等操作系统
  • 解释型语言:无需编译,直接运行源代码
  • 丰富的标准库:内置大量常用模块,开箱即用
💡 提示:学习编程最重要的是动手实践。建议在学习过程中,将每一个代码示例都亲自输入并运行一遍,而不是直接复制粘贴。

1.2 安装Python

访问 Python 官方网站 https://www.python.org 下载最新版本的 Python 安装包。安装时请务必勾选 "Add Python to PATH" 选项,这样可以在命令行中直接使用 python 命令。

安装完成后,打开命令行(Windows 按 Win+R 输入 cmd,macOS/Linux 打开终端),输入以下命令验证安装是否成功:

Bash python --version

如果正确显示 Python 版本号(如 Python 3.12.0),说明安装成功。

✅ 小技巧:推荐安装 Python 3.10 及以上版本,以获得最新的语言特性和性能优化。生产环境中建议使用虚拟环境(venv)来隔离项目依赖。

1.3 IDLE的使用

IDLE 是 Python 自带的集成开发环境,安装 Python 时会自动安装。它提供了两种工作模式:

  • 交互模式(Shell):输入一行代码立即执行并返回结果,适合快速测试
  • 脚本模式(File):新建文件编写多行代码,保存后整体运行,适合编写完整程序

启动 IDLE 后,你会看到 >>> 提示符,这就是交互模式。在交互模式下可以直接输入 Python 表达式:

Python >>> 2 + 3 5 >>> "Hello" 'Hello'

1.4 第一个Hello World程序

按照编程界的传统,我们从最简单的 "Hello, World!" 程序开始。在 IDLE 中点击 File → New File,输入以下代码并保存为 hello.py,然后按 F5 运行:

Python # 我的第一个Python程序 print("Hello, World!") print("欢迎来到Python的世界!") print("I'm learning Python.")

运行结果:

Output Hello, World! 欢迎来到Python的世界! I'm learning Python.

1.5 print()函数详解

print() 是 Python 中最常用的输出函数,用于将内容显示到屏幕上。它支持多种用法:

Python # 输出字符串 print("你好,Python!") # 输出数字 print(100) print(3.14) # 输出多个内容(用逗号分隔,默认空格隔开) print("姓名:", "张三", "年龄:", 20) # 自定义分隔符 print("2024", "01", "01", sep="-") # 自定义结尾(默认换行) print("第一行", end=" ") print("第二行")

运行结果:

Output 你好,Python! 100 3.14 姓名: 张三 年龄: 20 2024-01-01 第一行 第二行

1.6 注释

注释是代码中不会被 Python 执行的说明性文字,用于提高代码的可读性。Python 支持两种注释方式:

Python # 这是单行注释,用井号开头 # 下面这行代码会输出一段文字 print("注释不会被执行") """ 这是多行注释(文档字符串) 可以写多行说明 常用于函数、类的说明文档 """ ''' 这也是多行注释 使用三个单引号 ''' print("多行注释同样不会被执行")
💡 提示:良好的注释习惯是编写高质量代码的基础。建议在代码的关键逻辑处添加注释,解释"为什么"这样做,而不是仅仅描述"做了什么"。
02

变量与数据类型

2.1 变量与命名规则

变量是程序中用来存储数据的"容器"。在 Python 中,不需要事先声明变量类型,直接赋值即可创建变量。Python 会根据赋值自动推断数据类型。

Python # 创建变量并赋值 name = "张三" age = 20 height = 1.75 is_student = True # 输出变量的值 print(name) print(age) print(height) print(is_student)

Python 变量命名需要遵循以下规则:

  • 只能包含字母、数字和下划线 _
  • 不能以数字开头
  • 不能使用 Python 关键字(如 ifforclass 等)
  • 区分大小写(nameName 是不同的变量)
  • 建议使用有意义的名称,遵循蛇形命名法(snake_case)
Python # 合法的变量名 user_name = "李四" score1 = 95 _private = "私有变量" # 不合法的变量名(会报错) # 2name = "错误" # 不能以数字开头 # user-name = "错误" # 不能包含连字符 # class = "错误" # 不能使用关键字
✅ 小技巧:使用 type() 函数可以随时查看变量的数据类型,这在调试时非常有用。

2.2 基本数据类型

Python 中有四种最常用的基本数据类型:

数据类型关键字说明示例
整数int没有小数部分的数10, -3, 0
浮点数float带小数部分的数3.14, -0.5, 2.0
字符串str文本数据"Hello", 'Python'
布尔值bool逻辑值True, False
Python # 整数 int a = 100 b = -20 c = 0 print(type(a)) # <class 'int'> # 浮点数 float pi = 3.14159 temperature = -5.5 print(type(pi)) # <class 'float'> # 字符串 str greeting = "你好" message = 'Python是一门优秀的语言' multi_line = """这是一段 多行字符串""" print(type(greeting)) # <class 'str'> # 布尔值 bool is_valid = True is_empty = False print(type(is_valid)) # <class 'bool'>

2.3 类型转换

不同数据类型之间可以相互转换。Python 提供了内置函数来实现类型转换:

转换函数作用示例
int()转换为整数int("123") → 123
float()转换为浮点数float("3.14") → 3.14
str()转换为字符串str(100) → "100"
bool()转换为布尔值bool(0) → False
Python # 字符串转整数 num_str = "42" num = int(num_str) print(num + 8) # 50 # 整数转字符串 age = 20 age_str = str(age) print("我今年" + age_str + "岁") # 我今年20岁 # 浮点数转整数(截断小数部分) price = 19.99 print(int(price)) # 19 # 字符串转浮点数 pi_str = "3.14" pi = float(pi_str) print(pi * 2) # 6.28
💡 提示:注意类型转换的失败情况。例如 int("abc") 会抛出 ValueError,因为 "abc" 无法转换为数字。在进行类型转换前,最好先确认数据的格式是否正确。

2.4 input()输入函数

input() 函数用于从键盘接收用户输入。需要注意的是,input() 返回的始终是字符串类型,如果需要数字运算,必须进行类型转换。

Python # 基本输入 name = input("请输入你的名字:") print("你好," + name + "!") # 输入数字(需要类型转换) age = int(input("请输入你的年龄:")) print("你明年" + str(age + 1) + "岁") # 输入浮点数 height = float(input("请输入你的身高(米):")) print("你的身高是:" + str(height) + "米") # 计算BMI示例 weight = float(input("请输入体重(公斤):")) bmi = weight / (height ** 2) print("你的BMI指数为:" + str(round(bmi, 2)))
✅ 小技巧:使用 f-string(格式化字符串)可以更方便地将变量嵌入字符串中,无需反复进行类型转换。语法为 f"...{变量}..."

2.5 字符串操作

字符串是 Python 中最常用的数据类型之一,提供了丰富的操作方法:

Python # 字符串拼接 first = "Hello" second = "World" print(first + " " + second) # Hello World # 字符串重复 print("Ha" * 3) # HaHaHa # 字符串索引(从0开始) s = "Python" print(s[0]) # P print(s[-1]) # n(负数从末尾开始) # 字符串切片 print(s[0:3]) # Pyt(包含起始,不包含结束) print(s[2:]) # thon(从索引2到末尾) print(s[:3]) # Pyt(从开头到索引3) # 常用字符串方法 text = " Hello, Python! " print(text.strip()) # "Hello, Python!"(去除首尾空格) print(text.lower()) # " hello, python! "(转小写) print(text.upper()) # " HELLO, PYTHON! "(转大写) print(text.replace("Hello", "Hi")) # " Hi, Python! " print(text.split(",")) # [' Hello', ' Python! '] print("Py" in "Python") # True(判断子串是否存在) print(len("Python")) # 6(字符串长度)
Python # f-string 格式化字符串(推荐方式) name = "张三" age = 20 score = 95.5 print(f"姓名:{name},年龄:{age},成绩:{score}") # 格式化输出(保留小数位) pi = 3.1415926 print(f"圆周率保留两位小数:{pi:.2f}") # 圆周率保留两位小数:3.14 print(f"金额:{10000:.2f}元") # 金额:10000.00元
💡 提示:Python 中的字符串是不可变的(immutable),所有字符串操作方法都会返回一个新的字符串,而不会修改原始字符串。例如 s.upper() 不会改变 s 本身,需要用 s = s.upper() 来接收结果。
03

流程控制

3.1 条件判断:if / elif / else

条件判断是程序根据不同条件执行不同代码块的机制。Python 使用 ifelifelse 关键字来实现条件判断,注意使用缩进(通常4个空格)来表示代码块的层次关系。

Python # 基本条件判断 age = 18 if age >= 18: print("你已成年") else: print("你未成年") # 多条件判断 score = 85 if score >= 90: print("优秀") elif score >= 80: print("良好") elif score >= 60: print("及格") else: print("不及格")
Python # 条件表达式(三元运算符) age = 20 status = "成年" if age >= 18 else "未成年" print(status) # 成年 # 多条件组合 temperature = 35 is_raining = False if temperature > 30 and not is_raining: print("天气炎热且没有下雨,注意防晒") elif temperature > 30 and is_raining: print("高温天气且有雨,闷热潮湿") elif temperature <= 30 and is_raining: print("下雨天,记得带伞") else: print("天气适宜,适合外出")

Python 中的比较运算符和逻辑运算符:

运算符说明示例
==等于5 == 5 → True
!=不等于5 != 3 → True
> < >= <=大于、小于、大于等于、小于等于3 > 2 → True
and逻辑与(两个都为True)True and False → False
or逻辑或(至少一个为True)True or False → True
not逻辑非(取反)not True → False
✅ 小技巧:Python 支持链式比较,可以像数学公式一样书写条件:if 0 < x < 100: 等价于 if x > 0 and x < 100:,更加简洁直观。

3.2 循环:for循环

for 循环用于遍历序列(如列表、字符串、范围等)中的每一个元素。

Python # 遍历字符串 for char in "Python": print(char, end=" ") # 输出:P y t h o n # 遍历列表 fruits = ["苹果", "香蕉", "橙子"] for fruit in fruits: print(f"我喜欢吃{fruit}") # 使用 range() 生成数字序列 for i in range(5): print(i, end=" ") # 0 1 2 3 4 # range(start, stop, step) for i in range(1, 10, 2): print(i, end=" ") # 1 3 5 7 9 # enumerate 同时获取索引和值 languages = ["Python", "Java", "C++"] for index, lang in enumerate(languages): print(f"第{index + 1}名:{lang}")

3.3 循环:while循环

while 循环在条件为 True 时反复执行代码块,适合循环次数不确定的场景。

Python # 基本 while 循环 count = 1 while count <= 5: print(f"第 {count} 次循环") count += 1 # 猜数字游戏示例 import random target = random.randint(1, 100) guess = 0 attempts = 0 while guess != target: guess = int(input("猜一个1-100之间的数字:")) attempts += 1 if guess < target: print("太小了,再大一点!") elif guess > target: print("太大了,再小一点!") else: print(f"恭喜你,猜对了!共猜了{attempts}次")
💡 提示:使用 while 循环时一定要确保循环条件最终会变为 False,否则会造成"死循环"(无限循环)。如果程序意外进入死循环,可以按 Ctrl+C 强制终止。

3.4 break 与 continue

break 用于立即跳出整个循环,continue 用于跳过当前轮次,直接进入下一轮循环。

Python # break:找到目标后立即退出循环 numbers = [3, 7, 2, 9, 4, 6] for num in numbers: if num == 9: print(f"找到数字 {num},循环结束") break print(f"检查数字 {num}") # continue:跳过不需要处理的元素 for i in range(1, 11): if i % 2 == 0: continue # 跳过偶数 print(i, end=" ") # 1 3 5 7 9 # break 与 continue 组合使用 while True: cmd = input("输入命令(quit退出,skip跳过):") if cmd == "quit": print("程序退出") break if cmd == "skip": print("跳过本轮") continue print(f"执行命令:{cmd}")

3.5 range()函数详解

range() 是 Python 中生成整数序列的内置函数,常与 for 循环配合使用。

Python # range(stop) —— 生成 0 到 stop-1 的序列 for i in range(5): print(i, end=" ") # 0 1 2 3 4 # range(start, stop) —— 生成 start 到 stop-1 的序列 for i in range(3, 8): print(i, end=" ") # 3 4 5 6 7 # range(start, stop, step) —— 指定步长 for i in range(0, 20, 3): print(i, end=" ") # 0 3 6 9 12 15 18 # 倒序 for i in range(10, 0, -1): print(i, end=" ") # 10 9 8 7 6 5 4 3 2 1 # range 转换为列表 nums = list(range(1, 6)) print(nums) # [1, 2, 3, 4, 5] # 实际应用:计算1到100的和 total = 0 for i in range(1, 101): total += i print(f"1到100的和为:{total}") # 1到100的和为:5050
✅ 小技巧:Python 提供了更简洁的求和方式——sum(range(1, 101)),一行代码即可完成。善用内置函数可以让代码更加简洁高效。
04

函数与模块

4.1 函数的定义与调用

函数是一段可以重复使用的代码块,用于完成特定的任务。通过定义函数,可以避免代码重复,提高程序的可读性和可维护性。

Python # 定义函数 def greet(): """向用户打招呼的函数""" print("你好,欢迎学习Python!") print("让我们一起开始编程之旅吧!") # 调用函数 greet() greet() # 可以多次调用
Python # 带参数的函数 def greet_user(name): print(f"你好,{name}!欢迎来到Python世界。") greet_user("张三") greet_user("李四") # 带返回值的函数 def add(a, b): result = a + b return result sum_result = add(3, 5) print(f"3 + 5 = {sum_result}") # 3 + 5 = 8 # 计算圆的面积 def circle_area(radius): return 3.14159 * radius ** 2 area = circle_area(5) print(f"半径为5的圆的面积为:{area:.2f}") # 半径为5的圆的面积为:78.54

4.2 参数类型

Python 函数支持多种参数类型,使得函数调用更加灵活。

Python # 1. 位置参数:按顺序传递 def person_info(name, age, city): print(f"姓名:{name},年龄:{age},城市:{city}") person_info("张三", 20, "广州") # 2. 默认参数:调用时可以省略 def person_info(name, age, city="广州"): print(f"姓名:{name},年龄:{age},城市:{city}") person_info("张三", 20) # 城市:广州(使用默认值) person_info("李四", 22, "深圳") # 城市:深圳(覆盖默认值) # 3. 关键字参数:指定参数名传递,不受顺序限制 person_info(age=25, name="王五", city="上海") # 4. 混合使用 def create_user(username, email, age=18, is_active=True): print(f"用户名:{username}") print(f"邮箱:{email}") print(f"年龄:{age}") print(f"状态:{'活跃' if is_active else '未激活'}") create_user("admin", "admin@example.com") create_user("test", "test@example.com", age=20, is_active=False)
💡 提示:定义函数时,默认参数必须放在非默认参数的后面,否则会引发语法错误。例如 def func(a, b=10) 是正确的,但 def func(a=10, b) 是错误的。

4.3 返回值

函数可以使用 return 语句返回一个或多个值。如果没有 return 语句,函数默认返回 None

Python # 返回单个值 def square(n): return n * n result = square(6) print(f"6的平方是:{result}") # 6的平方是:36 # 返回多个值(本质是返回元组) def min_max(numbers): return min(numbers), max(numbers) low, high = min_max([3, 1, 7, 2, 9, 4]) print(f"最小值:{low},最大值:{high}") # 最小值:1,最大值:9 # 返回值可以是任意类型 def analyze_score(score): if score >= 60: return "及格", True else: return "不及格", False grade, passed = analyze_score(75) print(f"成绩等级:{grade},是否通过:{passed}") # 成绩等级:及格,是否通过:True
✅ 小技巧:Python 函数可以返回多个值,这在需要同时计算多个结果时非常方便。接收多个返回值时可以使用多个变量,也可以使用一个元组变量来接收。

4.4 常用内置函数

Python 提供了大量内置函数,无需导入即可直接使用。以下是一些最常用的内置函数:

函数功能示例
len()返回对象长度len("abc") → 3
max() / min()返回最大值/最小值max(1, 5, 3) → 5
sum()求和sum([1, 2, 3]) → 6
round()四舍五入round(3.1416, 2) → 3.14
abs()绝对值abs(-10) → 10
sorted()排序sorted([3, 1, 2]) → [1, 2, 3]
type()查看类型type(42) → <class 'int'>
isinstance()判断类型isinstance(42, int) → True
Python # 内置函数综合示例 numbers = [23, 45, 12, 67, 34, 89, 5] print(f"列表:{numbers}") print(f"长度:{len(numbers)}") print(f"最大值:{max(numbers)}") print(f"最小值:{min(numbers)}") print(f"总和:{sum(numbers)}") print(f"平均值:{sum(numbers) / len(numbers):.1f}") print(f"排序后:{sorted(numbers)}") print(f"降序排列:{sorted(numbers, reverse=True)}") # 字符串相关 text = "Hello Python" print(f"字符串长度:{len(text)}") print(f"转为列表:{list(text)}") print(f"反转:{''.join(reversed(text))}") # 数学运算 print(f"绝对值:{abs(-15)}") print(f"四舍五入:{round(3.14159, 3)}") print(f"最大值:{max(10, 20, 30)}") print(f"最小值:{min(10, 20, 30)}")

4.5 import 导入模块

模块是包含 Python 函数和变量的文件,通过 import 语句可以导入模块并使用其中的功能。Python 拥有丰富的标准库和第三方库。

Python # 导入整个模块 import math print(math.pi) # 3.141592653589793 print(math.sqrt(16)) # 4.0 print(math.ceil(3.2)) # 4(向上取整) print(math.floor(3.8)) # 3(向下取整) # 导入模块中的特定函数 from random import randint, choice print(randint(1, 100)) # 生成1-100的随机整数 print(choice(["A", "B", "C"])) # 随机选择一个元素 # 给模块起别名 import datetime as dt now = dt.datetime.now() print(f"当前时间:{now.strftime('%Y-%m-%d %H:%M:%S')}") # 导入 time 模块 import time print("程序开始...") time.sleep(2) # 暂停2秒 print("2秒后继续执行")
Python # 实战:使用模块完成综合任务 import random import math # 1. 生成随机数列表 random_nums = [random.randint(1, 100) for _ in range(10)] print(f"随机数列表:{random_nums}") # 2. 统计分析 print(f"最大值:{max(random_nums)}") print(f"最小值:{min(random_nums)}") print(f"平均值:{sum(random_nums) / len(random_nums):.1f}") print(f"排序后:{sorted(random_nums)}") # 3. 数学计算 radius = random.uniform(1, 10) area = math.pi * radius ** 2 print(f"随机半径:{radius:.2f}") print(f"圆的面积:{area:.2f}")
💡 提示:使用第三方模块前需要先安装,可以使用 pip install 模块名 命令进行安装。例如安装 requests 库:pip install requests。建议使用虚拟环境来管理不同项目的依赖。
✅ 小技巧:在 Python 交互模式中,可以使用 dir(模块名) 查看模块中所有可用的函数和变量,使用 help(函数名) 查看函数的详细使用说明。