Python:基础概览与起步引导

文章标题:

Python:基础概览与入门指引

文章内容:

目录


一、Python 初识

1. Python 的优势

Python具备若干突出优势。其一,简洁易读,其语法贴近自然语言(类似英语),代码可读性强,极大降低了学习与维护成本。其二,拥有丰富的生态库,存在超二十万个第三方库,像NumPyDjangoTensorFlow等,几乎覆盖所有开发场景。其三,跨平台兼容性佳,支持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

(0)
LomuLomu
上一篇 6小时前
下一篇 4小时前

相关推荐

  • java: JDK isn‘t specified for module ‘product-service‘问题解决

    目录 问题 解决方法 1.打开File->Project Structure… 2.将Project SDK修改为17 Oracle OpenJDK 17.0.12,并Apply,OK 问题 添加module后报错:java: JDK isn’t specified for module ‘product-service’ 查看pom.xml文件也添加了…

    2025 年 1 月 9 日
    29200
  • 2024 WebStorm最新激活码,WebStorm永久免费激活码2025-01-10 更新

    WebStorm 2024最新激活码 以下是最新的WebStorm激活码,更新时间:2025-01-10 🔑 激活码使用说明 1️⃣ 复制下方激活码 2️⃣ 打开 WebStorm 软件 3️⃣ 在菜单栏中选择 Help -> Register 4️⃣ 选择 Activation Code 5️⃣ 粘贴激活码,点击 Activate ⚠️ 必看!必看! 🔥 …

    2025 年 1 月 10 日
    38800
  • 2025最新PyCharm永久破解教程 | 亲测可用激活码分享 🚀

    本教程适用于Jetbrains全家桶,包括IDEA、PyCharm、DataGrip、Goland等所有产品!💯 先给大家看看最新版PyCharm破解成功的截图,有效期直接到2099年,简直不要太爽!😎 下面我就用详细的图文教程,手把手教你如何激活PyCharm到2099年。这个方法适用于所有版本和所有操作系统,Windows、Mac还是Linux统统都能搞…

    2025 年 6 月 12 日
    1.9K00
  • 比想象中更复杂一点的MySQL Slow Query Log

    1. 问题概述 在分析 Slow Query Log 时,记录下的SQL语句,明明会对一张表执行全表扫描,可为什么慢日志中的 Rows_sent 、Rows_examined 和表的真实记录数也是不一样,甚至相差N多倍。还有一个细节就是上述的SQL语句,执行多次,在慢日志中记录下多条记录,记录之间Rows_sent 、Rows_examined也差别明显。 …

    未分类 2025 年 1 月 16 日
    19700
  • 2024 WebStorm最新激活码,WebStorm永久免费激活码2025-01-04 更新

    WebStorm 2024最新激活码 以下是最新的WebStorm激活码,更新时间:2025-01-04 🔑 激活码使用说明 1️⃣ 复制下方激活码 2️⃣ 打开 WebStorm 软件 3️⃣ 在菜单栏中选择 Help -> Register 4️⃣ 选择 Activation Code 5️⃣ 粘贴激活码,点击 Activate ⚠️ 必看!必看! 🔥 …

    2025 年 1 月 4 日
    52700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信