Python——入门... ...

目录

Python初识

一、Python的核心优势

二、Python的核心特性

三、Python的主要应用领域

四、典型应用案例扩展

Linux环境中安装Python

Python的语法基础

一、标识符(Identifier)

1.1 定义与命名规则

1.2 命名约定(PEP8)

二、保留字(Keywords)

2.1 保留字列表与作用

2.2 扩展:保留字的设计哲学

三、注释(Comments)

3.1 单行与多行注释

3.2 文档字符串(Docstring)

四、语句与缩进(Statements & Indentation)

4.1 缩进规则

4.2 复合语句与多行书写

五、pass语句

5.1 作用与使用场景

5.2 扩展:与其他语言的对比

Python常用的数据类型

一、数字类型(Numeric Types)

1.1 基础类型

1.2 数值运算

1.3 扩展应用

二、字符串(String)

2.1 不可变序列

2.2 字符串操作

2.3 高级特性

三、元组(Tuple)

3.1 不可变序列

3.2 特性与应用

3.3 性能优势

四、列表(List)

4.1 可变序列

4.2 核心操作

4.3 高级技巧

五、字典(Dictionary)

5.1 哈希映射

5.2 核心操作

5.3 扩展应用

六、扩展数据类型

6.1 字节类型

6.2 集合(Set)

6.3 高级结构

总结与对比

选择原则:

最佳实践:


Python初识

一、Python的核心优势
  1. 简洁易读的语法
    Python采用‌缩进强制代码结构‌,避免了其他语言中常见的括号和分号,使代码更接近自然语言。例如,用5行Python代码即可实现其他语言10行的功能。这种设计降低了学习门槛,尤其适合编程新手和非计算机专业人士。

  2. 跨平台兼容性
    Python支持Windows、Linux、macOS等主流操作系统,其解释器(如CPython、PyPy)能在不同平台上无缝运行。开发者只需维护一套代码,即可实现跨平台部署。

  3. 丰富的第三方库
    Python拥有超过30万个第三方库(PyPI数据),覆盖从科学计算到Web开发的各个领域。例如:

    • NumPy/Pandas‌:数据分析和处理;
    • TensorFlow/PyTorch‌:深度学习;
    • Django/Flask‌:全栈Web开发;
    • Requests‌:HTTP请求处理。
      这种“电池内置”(Batteries Included)的理念显著提升了开发效率。
  4. 活跃的社区支持
    Python拥有全球第二大开发者社区(Stack Overflow数据),任何问题都能快速获得解答。官方文档完善,且开源项目贡献者数量庞大,持续推动语言进化。

  5. 高扩展性与集成能力
    通过‌Cython‌或‌C/C++扩展‌,Python可调用高性能代码弥补解释型语言的性能短板。同时,它与Java(Jython)、.NET(IronPython)等平台的互操作性极强。


二、Python的核心特性
  1. 动态类型与强类型
    Python在运行时确定变量类型(动态类型),但禁止不合理的类型操作(如数字与字符串相加),兼具灵活性与安全性。

  2. 多范式编程支持
    支持‌面向对象‌(类与继承)、‌函数式编程‌(lambda、map/reduce)、‌过程式编程‌等多种范式,适应不同场景需求。

  3. 解释型与交互式执行
    通过REPL(交互式解释器)实现即时调试,结合Jupyter Notebook等工具,成为数据科学领域的标准工作流。

  4. 自动内存管理
    采用‌引用计数‌与‌垃圾回收‌机制,开发者无需手动释放内存,减少内存泄漏风险。

  5. 元编程能力
    通过装饰器、元类等特性,允许在运行时修改类或函数的行为,为框架开发(如Django ORM)提供强大支持。


三、Python的主要应用领域
领域典型应用场景核心工具/库
Web开发全栈网站、API服务、微服务架构Django, Flask, FastAPI
数据科学数据清洗、统计分析、可视化Pandas, Matplotlib, Seaborn
人工智能机器学习、深度学习、自然语言处理TensorFlow, PyTorch, spaCy
自动化运维系统监控、日志分析、批量任务Ansible, Paramiko, Fabric
科学计算数值模拟、工程计算、物理建模SciPy, SymPy, OpenCV
游戏开发独立游戏原型、2D/3D游戏逻辑Pygame, Godot Engine
金融科技量化交易、风险分析、区块链开发QuantLib, Backtrader, Web3.py
物联网(IoT)设备控制、传感器数据处理MicroPython, Raspberry Pi库
网络爬虫数据采集、内容聚合Scrapy, BeautifulSoup, Selenium
教育与科研编程入门教学、算法验证Turtle, Jupyter Lab

四、典型应用案例扩展
  1. 人工智能与深度学习
    Python在AI领域占据主导地位。例如,‌OpenAI的GPT系列模型‌基于PyTorch开发,而TensorFlow则被Google用于AlphaGo的核心算法。Keras等高层API进一步降低了模型构建门槛。

  2. Web开发框架对比

    • Django‌:提供ORM、Admin后台等全功能支持,适合中大型项目(如Instagram);
    • Flask‌:轻量级框架,灵活定制(如Pinterest早期版本);
    • FastAPI‌:异步支持和高性能API开发新星(被Netflix采用)。
  3. 数据科学工作流
    典型流程包括:

    • 使用Pandas清洗数据;
    • 通过Scikit-learn训练机器学习模型;
    • 用Matplotlib生成可视化报告;
    • 最终部署为Flask API或Streamlit交互应用。
  4. 自动化与DevOps
    Python脚本可自动化执行服务器配置(Ansible)、监控(Prometheus+Python exporter)、CI/CD流程(Jenkins插件),提升运维效率。

Linux环境中安装Python

1:下载 Python3.11.6
可以在 Python 的官方网站下载,网址是 http://www.python,org
2:安装依赖包
(1)设置yum 仓库
设置好 centos 基础和 epel 扩源,本案例使用阿里的更新源。
(2)安装依赖包

[root@localhost ~]# yum y install gcc zlib zlib-devel libffi libffi-devel
#安装源码编译需要的编译环境
Iroot@localhost ~]# yum -y install readline-devel
#可以解决后期出现的方向键、删除键乱码问题,这里提前避免。
[root@localhost ~]# yum y install openssl-devel openssl11 openssl11-devel
[root@localhost ~]# export CFLAGS=$(pkg-config --cflags openssl11)
[root@localhost ~]# export LDFLAG5=$(pkg-config .libs openssl11)
#设置编译FLAG,以便使用最新的 openss1 库

3:解压 Python 压缩包
解压 python-3.11.6.tgz,命令如下:

[root@localhost ~]# tar xvf python-3.11.6.tar.xz

4:安装Python

[root@master home]# cd Python.3.11.6/
[root@master python-3.11.6]#./configure --prefix=/usr/local/python3

    此处有可造配置项。含义如下:

  • --enable-optinizationS:用 PROFILE TASK 启用以配置文件主导的优化(PGO)
  • --mith-lto:在编译过程中启用链接时间优化(LTO)
  • --enab1e-shared:启用共享Python 库libpython 的译
  • --mlth-ssl:编译安装 ss1 模块到 python3 中(默认)

5:编译及安装
编译安装 Python-3,11.6。命令如下:

[root@master python-3.11.6]# make
[root@master Python-3.11.6]# make install

    如果主机上已经安装有其他版本的python3,注意是3的版本,要使用 altinstall 而不是insta11 。二者的一个重要区别在于,后者会创建符号链接,将 python3 等命令链接到正在安装的新版本 Python 3 上,这可能会破坏系统。如果是 python2 的版本,不会有此影响。
6:建立软连接
建立相关软连接,命令如下:

[root@master Python-3.11.6]# ln-s /usr/local/python3/bin/python3 /usr/bin/python3
[root@master python-3.11.6]# ln-s /usr/local/python3/bin/pip3 /usr/bin/pip3


7:测试 Python3 运行
安装设置完毕,测试 Python3 的运行情况。命令如下:

[roat@master pythan.3.11.6]# python3
Python 3.11.6(default,Apr 22 2020,17:24:20)
[6Cc 4,8.5 28158623(ned Hat 4.8,5-16)] on 1inux
Type "help","copyright","credits"or "license" for more information.
>>> print('hello world')
>>> hello world

备注;
ctr1+0 或exit()退出
8:设置国内 pip 更新源
本案例使用阿里的更新源,

[roat@localhast ~]# cat <<E0F> /root/.config/pip/pip.conf
[global]
index-url.http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

备注:
使用如下命令也可以

pip3 config set global,index url http://nirrors.aliyun.con/pypi/simple
pip3 config set install.trusted-host mirrors.aliyun.com

9:更新pip 版本(必须更新)

[rootelocalhost ~l# pip3 install --uperade pip

Python的语法基础

一、标识符(Identifier)

1.1 定义与命名规则

标识符是用于命名变量、函数、类等程序元素的字符序列。Python标识符遵循严格规则:

  • 首字符‌:字母(a-z, A-Z)或下划线(_),不能以数字开头。
  • 后续字符‌:可包含字母、数字和下划线。
  • 区分大小写‌:myVarmyvar是两个不同的标识符。
  • 禁止使用保留字‌:如classdef等(详见第二部分)。

示例‌:

_valid_name = 10 # 合法
2invalid = 20 # 非法(数字开头) 
my-variable = 30 # 非法(连字符不允许) 
1.2 命名约定(PEP8)

Python社区通过PEP8风格指南约定命名规范:

  • 变量/函数‌:小写字母+下划线(snake_case),如calculate_sum()
  • 类名‌:驼峰式(CamelCase),如DataProcessor
  • 常量‌:全大写+下划线(UPPER_CASE),如MAX_SIZE
  • 私有成员‌:单下划线开头(_internal_var),双下划线表示名称改写(__private_var)。

扩展‌:

  • Unicode支持‌:Python 3允许使用Unicode字符命名,如Δ = 0.001(数学符号)。
  • 描述性命名‌:避免使用xtmp等无意义名称,推荐user_countfile_path等自解释性命名。

二、保留字(Keywords)

2.1 保留字列表与作用

保留字是Python语言预定义的、具有特定功能的单词,不可作为标识符。Python 3.11共有36个保留字:

保留字列表
FalseNoneTrueandasassertasyncawaitbreak,
classcontinuedefdelelifelseexceptfinally,
forfromglobalifimportinislambdanonlocal,
notorpassraisereturntrywhilewithyield

作用示例‌:

  • 流程控制‌:ifelseforwhile
  • 逻辑运算‌:andornot
  • 异步编程‌:asyncawait(Python 3.5+)

查看方法‌:

import keyword print(keyword.kwlist) # 输出当前版本所有保留字 
2.2 扩展:保留字的设计哲学
  • 动态语言特性‌:保留字数量较少,反映Python的动态性。例如,没有interface关键字,因接口可通过抽象类实现。
  • 版本演进‌:asyncawait在Python 3.5引入以支持协程;nonlocal在Python 3.0加入用于闭包变量修改。

三、注释(Comments)

3.1 单行与多行注释
  • 单行注释‌:以#开头,作用到行尾。
    # 计算平均值 avg = sum / count 
  • 多行注释‌:使用三引号包裹,虽本质是字符串,但常被用作多行注释。
    """ 函数功能:计算阶乘 参数n:整数输入 返回值:n的阶乘 """ 
3.2 文档字符串(Docstring)

通过三引号编写函数、模块或类的文档,可用__doc__属性访问,并被工具(如Sphinx)生成API文档。

def add(a, b):
 """返回两个数的和"""
 return a + b

 print(add.__doc__) # 输出:返回两个数的和 

扩展‌:

  • 注释最佳实践‌:避免冗余(如i += 1 # 将i加1),应解释复杂逻辑背后的意图。
  • 类型提示‌:Python 3.5+支持类型注释,增强代码可读性。
    def greet(name: str) -> str: return f"Hello, {name}" 

四、语句与缩进(Statements & Indentation)

4.1 缩进规则

Python使用缩进(通常4个空格)定义代码块,替代其他语言的{}。同一代码块必须严格对齐。

if True:
 print("Hello") # 属于if块
 print("World") # 属于if块
print("Done") # 不属于if块 

常见错误‌:

if True: print("Error") # IndentationError: expected an indented block 
4.2 复合语句与多行书写
  • 分号分隔‌:一行写多个语句用分号分隔(不推荐)。
    x = 5; y = 10; print(x + y) 
  • 行连接符‌:使用\或括号实现多行书写。
    total = (x + y + z) 

扩展‌:

  • 与其他语言对比‌:C/Java使用大括号,Python缩进强制代码可读性。
  • 工具支持‌:使用autopep8black自动格式化代码,确保缩进一致。

五、pass语句

5.1 作用与使用场景

pass是空操作语句,用于语法需要但无实际操作的场景:

  • 占位符‌:定义空函数、类或条件块。
    class MyClass: pass # 待实现 if x < 0: pass # 后续处理 
  • 避免语法错误‌:确保代码结构完整。
5.2 扩展:与其他语言的对比
  • JavaScript‌:使用空对象{}或分号;作为占位。
  • C/C++‌:空语句用分号;表示。
  • Python替代方案‌:可用...(Ellipsis)作为占位,但通常推荐pass

示例对比‌:

def my_function(): pass # Python function myFunction() {} // JavaScript

Python常用的数据类型

    python内置的数据类型有数字、字符串、元组、列表和字典 。


一、数字类型(Numeric Types)

1.1 基础类型

Python支持三种基础数字类型:

  • 整型(int)‌:无限精度整数,如 42-30x1A(十六进制)
  • 浮点型(float)‌:双精度浮点数,如 3.14-2.5e3
  • 复数(complex)‌:实部+虚部,如 1+2j

特殊值‌:

  • 布尔型(bool)‌:True(1)False(0)是int的子类
  • NaN/Infinity‌:使用float('nan')math.inf表示
1.2 数值运算
# 算术运算 print(7 // 3) # 整除 → 2 
print(2 ** 10) # 幂运算 → 1024 
print(divmod(10,3)) # 返回商和余数 → (3,1) 
# 类型转换 
int(3.9) # 截断 → 3 
round(2.675, 2) # 四舍五入 → 2.67(注意浮点精度问题) 
# 数学模块 
import math 
math.sqrt(16) # 开平方 → 4.0 
math.gcd(12,15) # 最大公约数 → 3 
1.3 扩展应用
  • 高精度计算‌:使用decimal模块避免浮点误差
    from decimal import Decimal 
    print(Decimal('0.1') + Decimal('0.2') == Decimal('0.3')) # True 
  • 科学计算‌:numpy库支持数组运算与高效数值处理
  • 位运算‌:处理二进制数据
    x = 0b1010 # 二进制 
    x << 2 # 左移 → 0b101000 (40) 

二、字符串(String)

2.1 不可变序列

字符串由Unicode字符组成,使用单引号、双引号或三引号定义:

s1 = 'Hello' 
s2 = "World" 
s3 = '''多行 
字符串''' 
2.2 字符串操作
  • 索引与切片‌:
    s = 'Python' 
    print(s[2]) # 't'(正向索引) 
    print(s[-3:]) # 'hon'(反向切片) 
  • 常用方法‌:
    'Abc'.lower() # → 'abc' 
    ' hello '.strip() # → 'hello' 
    'a,b,c'.split(',') # → ['a','b','c'] 
    'Py' in 'Python' # → True 
  • 格式化‌:
    f"{3.14159:.2f}" # → '3.14'(f-string,Python 3.6+) 
    "{1} {0}".format("A", 5) # → '5 A' 
2.3 高级特性
  • 编码处理‌:
    '中文'.encode('utf-8') # → b'\xe4\xb8\xad\xe6\x96\x87' 
    bytes_data.decode('gbk') 
  • 正则表达式‌:re模块实现模式匹配
    import re 
    re.findall(r'\d+', 'ID: 123, Phone: 456') # → ['123','456'] 
  • 字符串驻留‌:小字符串被缓存复用(intern机制)

三、元组(Tuple)

3.1 不可变序列

元组用逗号创建,通常用圆括号包裹:

t1 = (1, 'a') # 标准定义 
t2 = 10, 20 # 无括号形式 
single = (42,) # 单元素元组必须加逗号 
3.2 特性与应用
  • 不可变性‌:元素不可修改,适合存储常量数据
  • 拆包与交换‌:
    x, y = (5, 10) # 拆包 → x=5, y=10 
    x, y = y, x # 交换变量值 
  • 命名元组‌:collections.namedtuple创建带字段名的元组
    from collections import namedtuple 
    Point = namedtuple('Point', ['x', 'y']) 
    p = Point(3, 4) 
    print(p.x, p.y) # → 3 4 
3.3 性能优势
  • 内存占用‌:元组比列表更节省内存(无动态扩容机制)
  • 哈希化‌:可作为字典的键(列表不可)
  • 函数返回值‌:多值返回默认使用元组封装

四、列表(List)

4.1 可变序列

列表用方括号定义,元素可修改:

lst = [1, 'two', 3.0] 
lst[1] = 2 # 修改元素 → [1,2,3.0] 
lst.append(4) # 追加 → [1,2,3.0,4] 
4.2 核心操作
  • 切片修改‌:
    lst[1:3] = ['a','b','c'] # 替换子序列 
  • 列表推导式‌:
    squares = [x**2 for x in range(10) if x%2==0] # → [0,4,16,36,64] 
  • 深拷贝与浅拷贝‌:
    import copy 
    a = [[1,2],3] 
    b = copy.deepcopy(a) # 深拷贝独立对象 
4.3 高级技巧
  • 多维列表‌:嵌套结构实现矩阵
    matrix = [[1,2,3], [4,5,6], [7,8,9]] \
    matrix[1][2] # → 6 
  • 栈与队列‌:
    stack = [] 
    stack.append('A') # 入栈 
    stack.pop() # 出栈 
    
    from collections import deque 
    queue = deque(['A','B']) 
    queue.appendleft('C') # 队首插入 

五、字典(Dictionary)

5.1 哈希映射

字典通过键值对存储数据,用花括号定义:

d = {'name': 'Alice', 'age': 30} 
d['email'] = 'alice@example.com' # 添加键值对 
5.2 核心操作
  • 键的要求‌:键必须是不可变类型(如字符串、数字、元组)
  • 常用方法‌:
    d.get('phone', 'N/A') # 安全获取 → 'N/A'(默认值) 
    d.setdefault('gender', 'unknown') # 键不存在时设置默认值 
    for key, value in d.items(): # 遍历键值对 
  • 字典推导式‌:
    {x: x**2 for x in range(5)} # → {0:0, 1:1, 2:4, ...} 
5.3 扩展应用
  • 默认字典‌:collections.defaultdict
    from collections import defaultdict 
    word_count = defaultdict(int) 
    for word in words:
     word_count[word] += 1 
  • 有序字典‌:collections.OrderedDict(Python 3.7+普通字典已有序)
  • 合并操作‌:
    d1 = {'a':1} 
    d2 = {'b':2} 
    merged = {&zwnj;**d1, **&zwnj;d2} # → {'a':1, 'b':2} 

六、扩展数据类型

6.1 字节类型
  • bytes‌:不可变字节序列
    b = b'ABC' # 只能包含ASCII字符 
  • bytearray‌:可变字节序列
    ba = bytearray(b'hello') 
    ba[0] = 72 # → bytearray(b'Hello') 
6.2 集合(Set)
  • 无序不重复‌元素集:
    s = {1,2,3} 
    s.add(4) # 添加元素 
    s1 | s2 # 并集 
6.3 高级结构
  • 枚举‌:enum模块创建具名常量
    from enum import Enum 
    class Color(Enum):
     RED = 1
     GREEN = 2 

总结与对比

数据类型可变性有序性存储方式典型应用场景
数字不可变-单值计算、计数器、数学运算
字符串不可变字符序列文本处理、日志、格式化输出
元组不可变元素集合常量数据、函数多返回值、字典键
列表可变元素集合动态数据集合、栈/队列、迭代处理
字典可变无序键值对哈希表快速查找、配置信息、JSON数据处理
选择原则:
  1. 数据可变性‌:需要修改用列表/字典,不可变用元组/字符串
  2. 访问模式‌:按位置访问选列表/元组,按键访问用字典
  3. 性能要求‌:频繁增删用列表,只读数据用元组,快速查找用字典
  4. 内存优化‌:大量静态数据优先考虑元组而非列表
最佳实践:
  • 优先使用‌列表推导式‌和‌字典推导式‌简化代码
  • 使用‌类型提示‌增强可读性(Python 3.5+)
    def process(data: list[tuple[str, int]]) -> dict[str, float]: 
  • 复杂场景选择‌collections模块‌(如defaultdictCounter
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值