文章标题:
Python:基础概览与入门指引
文章内容:
目录
一、Python 初识
1. Python 的优势
Python具备若干突出优势。其一,简洁易读,其语法贴近自然语言(类似英语),代码可读性强,极大降低了学习与维护成本。其二,拥有丰富的生态库,存在超二十万个第三方库,像NumPy
、Django
、TensorFlow
等,几乎覆盖所有开发场景。其三,跨平台兼容性佳,支持Windows、Linux、macOS等操作系统,编写的代码无需修改即可在不同平台运行。其四,开源免费,由Python软件基金会维护,社区活跃且持续更新。其五,适用领域广泛,既能编写脚本实现自动化小任务,也能开发大型企业级应用。
2. Python 的特性
Python是解释型语言,无需提前编译,通过解释器逐行执行代码,还支持交互式编程(例如Jupyter Notebook)。它是动态类型的,变量类型在运行时自动推断,无需显式声明,能提升编码速度。支持面向对象编程与函数式编程,可灵活应对不同开发场景。具备自动内存管理机制,垃圾回收器会自动释放未使用的内存,减少内存泄漏风险。具有可扩展性,可通过C/C++编写扩展模块来提升关键代码性能(如Cython
)。其优势还体现在高数据结构可让复杂操作在一条语句中表达,语句组可用缩进替代大括号来组织代码,变量或参数无需显式声明。
3. Python 的应用领域
领域 | 典型应用场景 | 常用库/框架 |
---|---|---|
Web开发 | 构建网站后端、API服务(如Instagram、豆瓣) | Django、Flask、FastAPI |
数据分析 | 数据清洗、统计分析、可视化(金融、科研领域) | Pandas、NumPy、Matplotlib |
人工智能 | 机器学习、深度学习、自然语言处理(如ChatGPT模型训练) | TensorFlow、PyTorch、scikit-learn |
自动化运维 | 批量部署、日志分析、监控告警 | Ansible、Paramiko、Fabric |
科学计算 | 物理模拟、工程计算(如NASA航天器轨迹分析) | SciPy、SymPy |
游戏开发 | 快速原型开发、游戏脚本(如《文明IV》AI逻辑) | Pygame、Panda3D |
网络爬虫 | 抓取网页数据(如电商价格监控) | Scrapy、BeautifulSoup、Requests |
教育领域 | 编程入门教学、算法演示 | Turtle、PySimpleGUI |
二、Linux 环境中安装 Python
1. 下载 Python 源码包
通过Python官方网站进行下载,网址为http://www.python.org。
2. 安装依赖包
1.设置yum仓库
2.安装依赖包
yum -y install gcc zlib zlib-devel libffi libffi-devel
#安装源码编译需要的编译环境
yum -y install readline-devel
#可避免后期出现方向键、删除键乱码问题
yum -y install openssl-devel openssl11 openssl11-devel
export CFLAGS=$(pkg-config --cflags openssl11)
export LDFLAGS=$(pkg-config --libs openssl11)
#设置编译FLAG,以便使用最新的openssl库
3. 解压安装 Python
tar xvf Python-3.11.6.tar.xz
cd Python-3.11.6/
./configure --prefix=/usr/local/python3
4. 编译安装 并 建立软链接
make && make install #编译安装
#软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
5. 测试运行
python3
6. 设置国内 pip 更新源
#案例为阿里的更新源
方法1:
cat <<EOF> /root/.config/pip/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
方法2:
pip3 config set global.index-url http://mirrors.aliyun.com/pypi/simple
pip3 config set install.trusted-host mirrors.aliyun.com
7. 更新 pip
pip3 install --upgrade pip
三、Windows 系统中安装 Python
1. 安装 Python 程序
双击进行Python的安装操作。
2. 安装 vscode 编译器
Python自带的IDLE编译器使用不便,需安装更便于使用的编译器,如vscode、pycharm等。
3. 安装 vscode 插件
描述安装vscode插件的相关步骤。
4. 设置国内更新源
pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
pip config set install.trusted-host mirrors.aliyun.com
pip install --upgrade pip (或python -m pip install --upgrade pip)
四、Python 的语法基础
1. 标识符
标识符是用于标识变量、函数、类、模块等对象的名称。其命名规则为:仅由字母(包括大写和小写)、数字以及下划线组成;不能以数字开头;区分大小写(例如Name和name是不同的标识符);不能使用Python的关键字(保留字)。例如合法标识符有age_3、_count、MyClass、PI等,非法标识符有3name(以数字开头)、if(保留字)、my-name(包含连字符)等。
2. Python 保留字
保留字(关键字)是Python语言中具有特殊功能的专用标识符,不可用作自定义标识符名称。可通过以下代码查看Python 3.11中的保留字:
import keyword
print(keyword.kwlist)
# 输出(Python 3.11):
['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']
常见关键字用途:if/elif/else用于条件分支;for/while用于循环控制;def/class用于定义函数或类;try/except用于异常处理等。
3. 注释
注释用于解释代码逻辑,不会被解释器执行。单行注释以#开头,例如#这是一个单行注释。多行注释可用三引号'''或"""包裹,例如:
'''
这是一个多行注释,
可跨越多行,
常用于函数或类的文档说明。
'''
4. 语句与缩进
(1)语句
一行代码即为一个独立操作,称为语句,例如赋值语句(name = "Alice")、条件判断语句(if age >= 18: print("成年人"))、循环语句(for i in range(5): print(i))等。
(2)代码块
代码块由一组逻辑相关的语句组成,通过缩进(而非大括号)定义范围。同一代码块内语句需保持相同缩进量(通常为4个空格或1个Tab键,推荐使用空格),缩进错误会导致语法错误(如IndentationError)。例如正确缩进:
if condition:
statement1 # 属于if代码块
statement2 # 属于if代码块
statement3 # 不属于if代码块(与if语句同缩进)
错误缩进示例:
if condition:
statement1
statement2 # 缩进不一致,会报错!
(3)多行语句
语句较长时可通过以下方式换行:一是使用反斜杠\,在行末加\表示语句延续到下一行,例如:
long_sentence = "这是一个非常长的句子," \
"需要分成多行书写。"
二是利用括号包裹,例如圆括号()、方括号[]、花括号{}内的内容可直接换行,例如:
numbers = [1, 2, 3, 4, 5,
6, 7, 8, 9, 10]
result = (x + y + z
for x in range(3)
for y in range(3)
for z in range(3))
5. pass 语句
pass是空操作语句,起占位作用,保持语法完整性。作用是作为占位符,保持代码结构完整,不执行任何操作。常见场景:定义空函数或空类时(后续补充代码);条件语句或循环中无需执行具体逻辑时。例如:
# 示例1:空函数
def empty_function():
pass # 不做任何事,但函数语法完整
# 示例2:条件语句占位
if age < 18:
pass # 暂不处理未成年人逻辑
else:
print("成年人")
# 示例3:空类
class EmptyClass:
pass # 类体为空,但语法正确
五、Python 常用的数据类型
1. 数字
数字用于表示数值,包括整数、浮点数、复数和布尔值。整数无小数部分,支持无限精度(受限于内存),例如a = 10,b = -5,c = 0b1010(二进制,对应十进制10),d = 0o12(八进制,对应十进制10),e = 0x0A(十六进制,对应十进制10)。浮点数带小数部分,支持科学计数法,例如f = 3.14,g = -2.5,h = 1e3(对应1000.0),i = 3.14e-2(对应0.0314)。复数由实部和虚部组成,形式为a + bj,例如j = 2 + 3j,k = complex(1, -4)(实部1,虚部-4)。布尔型表示逻辑真(True)或假(False),本质是int的子类(True=1,False=0),例如is_valid = True,is_empty = False。数字是不可变类型,修改数字变量会创建新对象,支持算术运算(+、-、、/、//、%、)和类型转换(如int(3.9)=3,float(5)=5.0)。Python运算符由+、-、、/(加、减、乘、除)和小括号组成,运算顺序为先乘除后加减,小括号优先。
2. 字符串
字符串是由字符(包括字母、数字、符号等)组成的有序序列,用单引号、双引号或三引号(多行字符串)表示。例如:
>>> name = 'aaa'
>>> address = 'sss'
>>> content = '''cccc'''
>>> print (name)
>>> print (address)
>>> print (content)
字符串不可变,修改会生成新字符串。支持索引和切片操作(如str[0]获取首个字符,str[2:5]截取子串),支持转义字符(如\n换行、\t制表符、\反斜杠、\ (行尾续行符)、\v纵向制表符、\r回车)。
3. 列表
列表是有序且可变的集合,用方括号[]表示,元素可任意数据类型,支持嵌套。特点:可变,可增删改元素;元素异构,混合不同类型;支持嵌套(列表中元素可为列表)。
(1)列表的定义
语法:列表名 = [元素1,元素2,...]
(2)列表的取值
通过索引取值(有序序列,索引从0开始,负数表示从末尾反向索引),例如:
fruits = ['apple', 'banana', 'orange', 'grape']
print(fruits[0]) # 'apple'(第一个元素)
print(fruits[-1]) # 'grape'(最后一个元素)
print(fruits[2]) # 'orange'(索引2的元素)
通过切片取值(语法:列表[start:end:step],左闭右开,返回新列表),例如:
print(fruits[1:3]) # ['banana', 'orange'](取索引1~2的元素)
print(fruits[:2]) # ['apple', 'banana'](从开头到索引1)
print(fruits[2:]) # ['orange', 'grape'](从索引2到末尾)
print(fruits[::2]) # ['apple', 'orange'](步长为2,隔一个取一个)
print(fruits[::-1]) # ['grape', 'orange', 'banana', 'apple'](反转列表)
(3)修改列表元素值
语法:列表名[索引位置] = 值,例如:
num = ['1','2','3']
num[0] = '4' #修改
print (num)
['4','2','3']
(4)添加列表元素
语法:列表名.append(元素值)会在列表末尾添加单个元素,例如:
fruits.append('grape') # 末尾添加 'grape'
print(fruits) # ['apple', 'mango', 'pear', 'kiwi', 'grape']
列表名.insert(索引位置,元素值)会在指定索引处插入元素,例如:
fruits.insert(1, 'banana') # 在索引1处插入 'banana'
print(fruits) # ['apple', 'banana', 'mango', 'pear', 'kiwi', 'grape']
(5)删除列表元素
语法:del 列表名[索引位置],例如:
del fruits[0] # 删除第一个元素 'apple'
print(fruits) # ['banana', 'mango', 'pear', 'kiwi', 'grape', 'orange', 'pineapple']
del fruits[2:4] # 删除索引2~3的元素('pear', 'kiwi')
print(fruits) # ['banana', 'mango', 'grape', 'orange', 'pineapple']
(6)查找列表元素
语法:元素值 in 列表名,返回布尔值,例如:
print('orange' in fruits) # True
print('apple' in fruits) # False
(7)合并列表
使用+运算符创建新列表,合并两个列表(原列表不变),例如:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
merged = list1 + list2 # [1, 2, 3, 4, 5, 6]
(8)重复列表
使用*运算符重复列表元素(生成新列表),例如:
zeros = [0] * 5 # [0, 0, 0, 0, 0]
words = ['hello'] * 3 # ['hello', 'hello', 'hello']
(9)列表常见问题
- 索引越界:使用超过列表长度的正索引或绝对值超过列表长度的负索引时,会抛出IndexError异常。例如:
numbers = [1, 2, 3, 4, 5]
print(numbers[5]) # 报错:IndexError: list index out of range(正索引越界,最大索引为4)
print(numbers[-6]) # 报错:IndexError: list index out of range(负索引越界,最小索引为-5)
解决方法:用len(列表)检查索引范围或使用try-except捕获异常。
- 负值索引:Python支持负值索引,-1表示最后一个元素,-2表示倒数第二个,依此类推(需满足abs(index) <= len(列表)),例如:
fruits = ['apple', 'banana', 'orange', 'grape']
print(fruits[-1]) # 'grape'(最后一个元素)
print(fruits[-2]) # 'orange'(倒数第二个元素)
- 切片无索引越界问题:切片操作即使start或end超出列表范围,也不报错,返回合理子集(空列表或部分元素),例如:
nums = [1, 2, 3]
print(nums[5:10]) # [](start超出列表长度,返回空列表)
print(nums[-10:5]) # [1, 2, 3](start为负且超出范围,默认从列表开头开始)
print(nums[1:100]) # [2, 3](end超出范围,取到列表末尾)
- 混合正负索引切片:切片的start和end可同时使用正数和负数索引,实现灵活范围选取,例如:
```
words = ['a', 'b', 'c', 'd', 'e']
# 正数start + 负数end:取索引1到倒数第一个元素(不包含end)
print(words[1:-
文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/12821.html