====== 第一章 Python基础 ====== ===== 本章概要 ===== 本章将带你走进Python的世界,从零开始学习Python编程。我们将涵盖环境搭建、基本语法、变量和数据类型等核心概念,为你打下坚实的编程基础。 ===== 1.1 Python简介 ===== ==== 1.1.1 什么是Python ==== Python是一种高级的、解释型的、通用的编程语言。它由Guido van Rossum于1991年创建,名称来源于英国喜剧团体Monty Python。 Python的设计哲学强调: * **可读性** - 代码应该容易被人类阅读 * **简洁性** - 用一种明显的方式来做一件事 * **明确性** - 面对歧义,拒绝猜测的诱惑 ==== 1.1.2 Python的特点 ==== - **解释型语言**:不需要编译,直接运行 - **动态类型**:变量类型在运行时确定 - **自动内存管理**:内置垃圾回收机制 - **丰富的标准库**:"内置电池"理念 - **跨平台**:Windows、macOS、Linux均可运行 ===== 1.2 环境搭建 ===== ==== 1.2.1 安装Python ==== === Windows系统 === 1. 访问 https://www.python.org/downloads/ 2. 下载最新版本的Python安装程序 3. 运行安装程序,**勾选"Add Python to PATH"** 4. 点击"Install Now" 5. 安装完成后,打开命令提示符,输入: python --version 应显示Python版本号,如"Python 3.10.0"。 === macOS系统 === macOS通常预装了Python 2.7。建议安装Python 3: 1. 使用Homebrew安装(推荐): /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install python 2. 或从官网下载安装程序 === Linux系统 === 大多数Linux发行版都预装了Python。检查版本: python3 --version 如未安装,使用包管理器安装: # Ubuntu/Debian sudo apt-get update sudo apt-get install python3 python3-pip # CentOS/RHEL/Fedora sudo dnf install python3 python3-pip # Arch Linux sudo pacman -S python python-pip ==== 1.2.2 验证安装 ==== 打开终端或命令提示符,输入: python3 --version # Linux/macOS python --version # Windows 然后启动Python交互式解释器: python3 # Linux/macOS python # Windows 看到">>>"提示符,表示进入了Python交互式环境: >>> print("Hello, Python!") Hello, Python! 输入 ``exit()`` 或按 ``Ctrl+D`` (Linux/macOS) / ``Ctrl+Z`` (Windows) 退出。 ==== 1.2.3 安装IDE ==== === PyCharm === PyCharm是JetBrains开发的专业Python IDE,分为社区版(免费)和专业版(付费)。 下载地址:https://www.jetbrains.com/pycharm/download/ === VS Code === Visual Studio Code是微软开发的轻量级代码编辑器,通过安装Python插件可获得良好的Python开发体验。 下载地址:https://code.visualstudio.com/ 安装Python插件: 1. 打开VS Code 2. 点击左侧扩展图标 3. 搜索"Python" 4. 安装Microsoft官方Python扩展 ===== 1.3 第一个Python程序 ===== ==== 1.3.1 交互式编程 ==== 打开Python解释器,直接输入代码: >>> print("Hello, World!") Hello, World! >>> 2 + 3 5 >>> name = "Alice" >>> print(f"Hello, {name}!") Hello, Alice! 交互式环境适合快速测试代码片段。 ==== 1.3.2 脚本式编程 ==== 将代码保存到文件中,然后执行。 创建文件 ``hello.py``: # hello.py print("Hello, World!") print("这是我的第一个Python程序") 运行程序: python hello.py ==== 1.3.3 程序结构 ==== 一个完整的Python程序通常包含: #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 程序的文档字符串(docstring) 说明程序的功能和用法 """ # 导入模块 import os import sys # 定义常量 MAX_COUNT = 100 # 定义函数 def greet(name): """打招呼函数""" return f"Hello, {name}!" # 主程序入口 if __name__ == "__main__": print(greet("Python")) ===== 1.4 Python基础语法 ===== ==== 1.4.1 缩进 ==== Python使用**缩进**来表示代码块,而不是大括号。这是Python最显著的特点之一。 # 正确示例 if True: print("条件为真") print("继续执行") # 错误示例 - 缩进不一致 if True: print("条件为真") print("缩进错误") # IndentationError 规范: * 使用**4个空格**作为一级缩进 * 不要使用Tab键 * 同一代码块的缩进必须一致 ==== 1.4.2 注释 ==== 注释用于解释代码,不会被程序执行。 === 单行注释 === 使用 ``#`` 符号: # 这是单行注释 x = 10 # 这也是注释 === 多行注释 === 使用三个引号: """ 这是多行注释 可以写多行文字 通常用于文档字符串 """ ''' 也可以用单引号 效果相同 ''' ==== 1.4.3 行与缩进 ==== Python语句通常一行写一条: print("第一行") print("第二行") 使用反斜杠 ``\`` 实现多行语句: total = item_one + \ item_two + \ item_three 在括号内可以直接换行: total = (item_one + item_two + item_three) 一行写多条语句(不推荐): import sys; x = 'foo'; sys.stdout.write(x + '\n') ==== 1.4.4 标识符 ==== 标识符是变量、函数、类、模块等的名称。 命名规则: * 只能包含字母、数字、下划线 * 不能以数字开头 * 区分大小写 * 不能使用Python关键字 # 有效的标识符 my_variable private_var MAX_SIZE ClassName function_name _var2 # 无效的标识符 2var # 以数字开头 my-var # 包含连字符 my var # 包含空格 class # 关键字 命名规范(PEP 8): * 变量名:小写,下划线分隔 ``my_variable`` * 常量名:大写,下划线分隔 ``MAX_SIZE`` * 类名:驼峰命名法 ``MyClass`` * 函数名:小写,下划线分隔 ``my_function`` * 私有变量:以下划线开头 ``_private`` * 强私有变量:以双下划线开头 ``__very_private`` ==== 1.4.5 关键字 ==== Python有35个关键字,不能用作标识符: import keyword print(keyword.kwlist) # ['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'] ===== 1.5 变量 ===== ==== 1.5.1 什么是变量 ==== 变量是存储数据的容器。在Python中,变量不需要声明类型,直接赋值即可创建。 # 创建变量 name = "Alice" age = 25 is_student = True # 使用变量 print(name) # Alice print(age) # 25 ==== 1.5.2 变量赋值 ==== === 基本赋值 === x = 10 y = 3.14 name = "Python" === 多重赋值 === # 同时为多个变量赋值 a = b = c = 0 # 序列解包 x, y, z = 1, 2, 3 # 交换变量 a, b = b, a === 动态类型 === Python是动态类型语言,变量类型可以随时改变: x = 10 # x是整数 x = "hello" # x变成字符串 x = [1, 2, 3] # x变成列表 ==== 1.5.3 变量的内存管理 ==== # 多个变量引用同一对象 a = [1, 2, 3] b = a b[0] = 100 print(a) # [100, 2, 3] - a也被修改了 # 使用id()查看内存地址 print(id(a)) print(id(b)) # 与a相同 ===== 1.6 数据类型 ===== Python有以下几个基本数据类型: ==== 1.6.1 数字(Numbers) ==== === 整数(int) === # 整数 x = 10 y = -5 z = 0 # 不同进制 binary = 0b1010 # 二进制,等于10 octal = 0o17 # 八进制,等于15 hexadecimal = 0xFF # 十六进制,等于255 # 大整数(Python 3自动支持) big_number = 12345678901234567890 === 浮点数(float) === pi = 3.14159 temperature = -20.5 scientific = 1.5e10 # 科学计数法,等于15000000000.0 === 复数(complex) === z = 3 + 4j print(z.real) # 3.0 print(z.imag) # 4.0 === 数字运算 === # 基本运算 print(10 + 3) # 加法: 13 print(10 - 3) # 减法: 7 print(10 * 3) # 乘法: 30 print(10 / 3) # 除法: 3.333... print(10 // 3) # 整除: 3 print(10 % 3) # 取模: 1 print(10 ** 3) # 幂运算: 1000 # 复合赋值 x = 10 x += 5 # x = x + 5 x -= 3 # x = x - 3 x *= 2 # x = x * 2 x /= 4 # x = x / 4 ==== 1.6.2 字符串(String) ==== 字符串是字符的序列,用单引号、双引号或三引号表示。 # 创建字符串 single = 'Hello' double = "World" multi_line = """ 这是一个 多行字符串 """ # 转义字符 path = "C:\\Users\\Name" # 反斜杠转义 quote = 'It\'s a book' # 单引号转义 === 字符串操作 === # 拼接 s1 = "Hello" s2 = "World" print(s1 + " " + s2) # Hello World # 重复 print("Hi! " * 3) # Hi! Hi! Hi! # 索引和切片 text = "Python" print(text[0]) # P print(text[-1]) # n print(text[0:3]) # Pyt print(text[::2]) # Pto # 字符串方法 print(text.upper()) # PYTHON print(text.lower()) # python print(text.replace('P', 'J')) # Jython print(len(text)) # 6 print(text.find('th')) # 2 === 字符串格式化 === name = "Alice" age = 25 # % 格式化(旧式) print("My name is %s, I'm %d years old." % (name, age)) # str.format() 方法 print("My name is {}, I'm {} years old.".format(name, age)) print("My name is {0}, I'm {1} years old.".format(name, age)) print("My name is {n}, I'm {a} years old.".format(n=name, a=age)) # f-string(推荐,Python 3.6+) print(f"My name is {name}, I'm {age} years old.") print(f"Next year I'll be {age + 1} years old.") ==== 1.6.3 布尔类型(Boolean) ==== t = True f = False # 布尔运算 print(True and False) # False print(True or False) # True print(not True) # False # 比较运算 print(5 > 3) # True print(5 == 5) # True print(5 != 3) # True ==== 1.6.4 空值(None) ==== value = None print(value) # None print(type(value)) # # 检查None if value is None: print("值为空") ==== 1.6.5 类型转换 ==== # 转整数 print(int("10")) # 10 print(int(3.14)) # 3 print(int("1010", 2)) # 10(二进制转十进制) # 转浮点数 print(float("3.14")) # 3.14 print(float(10)) # 10.0 # 转字符串 print(str(123)) # "123" print(str(3.14)) # "3.14" print(str(True)) # "True" # 转布尔 print(bool(1)) # True print(bool(0)) # False print(bool("")) # False print(bool("hello")) # True ===== 1.7 输入输出 ===== ==== 1.7.1 输出(print) ==== # 基本输出 print("Hello") # 输出多个值 print("Name:", "Alice", "Age:", 25) # 自定义分隔符 print("a", "b", "c", sep="-") # a-b-c # 自定义结束符 print("Hello", end=" ") print("World") # Hello World # 输出到文件 with open("output.txt", "w") as f: print("写入文件", file=f) ==== 1.7.2 输入(input) ==== # 基本输入(返回字符串) name = input("请输入你的名字: ") print(f"你好, {name}!") # 输入数字 age = int(input("请输入你的年龄: ")) print(f"你明年就 {age + 1} 岁了") # 输入多个值 x, y = input("请输入两个数字,用空格分隔: ").split() x, y = int(x), int(y) print(f"和: {x + y}") ===== 1.8 运算符 ===== ==== 1.8.1 算术运算符 ==== | 运算符 | 描述 | 示例 | |--------+------+------| | + | 加 | 5 + 3 = 8 | | - | 减 | 5 - 3 = 2 | | * | 乘 | 5 * 3 = 15 | | / | 除 | 5 / 3 = 1.666... | | // | 整除 | 5 // 3 = 1 | | % | 取模 | 5 % 3 = 2 | | ** | 幂 | 5 ** 3 = 125 | ==== 1.8.2 比较运算符 ==== | 运算符 | 描述 | 示例 | |--------+------+------| | == | 等于 | 5 == 5 → True | | != | 不等于 | 5 != 3 → True | | > | 大于 | 5 > 3 → True | | < | 小于 | 5 < 3 → False | | >= | 大于等于 | 5 >= 5 → True | | <= | 小于等于 | 5 <= 3 → False | ==== 1.8.3 赋值运算符 ==== | 运算符 | 描述 | 等效于 | |--------+------+--------| | = | 赋值 | x = 5 | | += | 加赋值 | x += 5 → x = x + 5 | | -= | 减赋值 | x -= 5 → x = x - 5 | | *= | 乘赋值 | x *= 5 → x = x * 5 | | /= | 除赋值 | x /= 5 → x = x / 5 | | //= | 整除赋值 | x //= 5 → x = x // 5 | | %= | 取模赋值 | x %= 5 → x = x % 5 | | **= | 幂赋值 | x **= 5 → x = x ** 5 | ==== 1.8.4 逻辑运算符 ==== | 运算符 | 描述 | 示例 | |--------+------+------| | and | 与 | True and False → False | | or | 或 | True or False → True | | not | 非 | not True → False | ==== 1.8.5 位运算符 ==== | 运算符 | 描述 | 示例 | |--------+------+------| | & | 按位与 | 5 & 3 = 1 | | \| | 按位或 | 5 \| 3 = 7 | | ^ | 按位异或 | 5 ^ 3 = 6 | | ~ | 按位取反 | ~5 = -6 | | << | 左移 | 5 << 1 = 10 | | >> | 右移 | 5 >> 1 = 2 | ==== 1.8.6 成员运算符 ==== # in 和 not in fruits = ["apple", "banana", "cherry"] print("apple" in fruits) # True print("orange" not in fruits) # True # 字符串 print("Py" in "Python") # True ==== 1.8.7 身份运算符 ==== # is 和 is not a = [1, 2, 3] b = a c = [1, 2, 3] print(a is b) # True(同一对象) print(a is c) # False(不同对象,值相同) print(a == c) # True(值相等) # 常用:检查None x = None print(x is None) # True ===== 1.9 代码示例 ===== ==== 示例1:温度转换器 ==== # 温度转换器 print("温度转换器") print("1. 摄氏度转华氏度") print("2. 华氏度转摄氏度") choice = input("请选择 (1/2): ") if choice == "1": celsius = float(input("请输入摄氏度: ")) fahrenheit = celsius * 9/5 + 32 print(f"{celsius}°C = {fahrenheit}°F") elif choice == "2": fahrenheit = float(input("请输入华氏度: ")) celsius = (fahrenheit - 32) * 5/9 print(f"{fahrenheit}°F = {celsius}°C") else: print("无效选择") ==== 示例2:简易计算器 ==== # 简易计算器 num1 = float(input("请输入第一个数字: ")) operator = input("请输入运算符 (+, -, *, /): ") num2 = float(input("请输入第二个数字: ")) if operator == "+": result = num1 + num2 elif operator == "-": result = num1 - num2 elif operator == "*": result = num1 * num2 elif operator == "/": if num2 != 0: result = num1 / num2 else: result = "错误:除数不能为零" else: result = "错误:无效的运算符" print(f"结果: {result}") ===== 1.10 练习题 ===== ==== 练习1:个人信息输出 ==== 编写程序,输入姓名、年龄、爱好,然后输出格式化的个人信息。 # 参考答案 name = input("请输入姓名: ") age = input("请输入年龄: ") hobby = input("请输入爱好: ") print("\n===== 个人信息 =====") print(f"姓名: {name}") print(f"年龄: {age}岁") print(f"爱好: {hobby}") print("===================") ==== 练习2:BMI计算器 ==== 编写程序,根据输入的身高(米)和体重(公斤),计算BMI指数。 BMI公式:体重(kg) / 身高(m)² # 参考答案 height = float(input("请输入身高(米): ")) weight = float(input("请输入体重(公斤): ")) bmi = weight / (height ** 2) print(f"您的BMI指数为: {bmi:.2f}") if bmi < 18.5: print("体重过轻") elif bmi < 24: print("体重正常") elif bmi < 28: print("超重") else: print("肥胖") ==== 练习3:秒数转换 ==== 编写程序,将输入的秒数转换为"小时:分钟:秒"格式。 # 参考答案 total_seconds = int(input("请输入秒数: ")) hours = total_seconds // 3600 minutes = (total_seconds % 3600) // 60 seconds = total_seconds % 60 print(f"{total_seconds}秒 = {hours}小时 {minutes}分钟 {seconds}秒") print(f"格式化输出: {hours:02d}:{minutes:02d}:{seconds:02d}") ===== 本章小结 ===== 本章学习了Python编程的基础知识: * **环境搭建** - 安装Python和IDE * **基本语法** - 缩进、注释、标识符 * **变量** - 动态类型、多重赋值 * **数据类型** - 数字、字符串、布尔值、None * **运算符** - 算术、比较、逻辑、位、成员、身份运算符 * **输入输出** - print()和input() 掌握这些基础知识后,你已经可以编写简单的Python程序了。继续学习下一章,了解Python的控制流语句。 ===== 进一步阅读 ===== * [[https://docs.python.org/zh-cn/3/tutorial/introduction.html|Python官方教程 - 简介]] * [[https://pep8.org/|PEP 8 - Python代码风格指南]] * [[https://www.python.org/dev/peps/pep-0020/|PEP 20 - Python之禅]]