NipGeihou's blog NipGeihou's blog
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档

NipGeihou

我见青山多妩媚,料青山见我应如是
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档
  • 教程

    • 安装
      • 安装
        • macOS
        • Ubuntu
      • Python 的解释器
        • 启动(交互模式)
        • 执行
        • 退出
        • 示例 - 计算器
        • 四则运算
        • 浮点数操作
        • 乘方
        • 上次输出变量
        • 示例 - 文本操作
        • 定义
        • 打印
        • 原始字符串
        • 多行文本
        • 拼接
        • 字符数组
        • 示例 - 列表(数组)
        • 基本操作
        • 浅拷贝
        • 局部赋值
    • 流程控制与定义函数
    • 数据结构(类型)
    • 模块
    • 输入与输出
    • 错误与异常
    • 类
    • 标准库
    • 虚拟环境和包
    • 开发环境
    • ORM - SQLAlchemy
  • Python
  • 教程
NipGeihou
2024-10-09
目录

安装

# 安装

# macOS

macOS 默认已经安装了 python3

python3 --version
# Python 3.12.6

# 安装其他版本
brew install [email protected]
brew link --overwrite [email protected]
python3 --version

# Ubuntu

sudo apt install python3

sudo apt install python3-pip

# Python 的解释器

# 启动(交互模式)

python3
# or
python3.12

提示

Unix 系统中,为了不与同时安装的 Python 2.x 冲突,Python 3.x 解释器默认安装的执行文件名不是 python 。

# 执行

>>> the_world_is_flat = True
>>> if the_world_is_flat:
...     print("Be careful not to fall off!")
... 
Be careful not to fall off!
  • 主提示符,提示输入下一条指令,主提示符通常用三个大于号( >>> )表示;
  • 输入连续行时,显示 次要提示符,默认是三个点( ... )。

# 退出

  • 快捷键:Unix 里是 Control-D ,Windows 里是 Control-Z
  • 命令: quit()

# 示例 - 计算器

# 四则运算

>>> 2 + 2
4
>>> 50 - 5 * 6
20
>>> (50 - 5 * 6) / 4
5.0
>>> 8 / 5  # 除法运算总是返回一个浮点数
1.6

# 浮点数操作

>>> 17 / 3  # 经典除法运算返回一个浮点数
5.666666666666667

>>> 17 // 3  # 向下取整除法运算会丢弃小数部分
5
>>> 17 % 3  # % 运算返回相除的余数
2
>>> 5 * 3 + 2  # 向下取整的商 * 除数 + 余数
17

# 乘方

>>> 5 ** 2  # 5 的平方
25
>>> 2 ** 7  # 2 的 7 次方
128

# 上次输出变量

交互模式下,上次输出的表达式会赋给变量 _

>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06

# 示例 - 文本操作

# 定义

有别于其他语言,Python 的单引号和双引号下的字符串效果完全相同,同样支持转移字符

>>> 'doesn\'t'  # 使用 \' 来转义单引号...
"doesn't"
>>> "doesn't"  # ...或者改用双引号
"doesn't"

# 打印

print() 函数

>>> s = 'First line.\nSecond line.'  # \n 表示换行符
>>> s  # 不用 print(),特殊字符将包括在字符串中
'First line.\nSecond line.'
>>> print(s)  # 用 print(),特殊字符会被转写,因此 \n 将产生一个新行
First line.
Second line.

# 原始字符串

如果不希望前置 \ 的字符转义成特殊字符,可以使用 原始字符串,在引号前添加 r 即可:

>>> print('C:\some\name')  # 这里 \n 表示换行符!
C:\some
ame
>>> print(r'C:\some\name')  # 请注意引号前的 r
C:\some\name

字符串中的反斜杠数量不能是奇数

参考:编程常见问题 — Python 3.13.0 文档 (opens new window)

# 多行文本

多行文本,在文本的头尾使用三个双引号 """ 或单引号 ''' 包裹

>>> print("""\
... Usage: thingy [OPTIONS]
...      -h                        Display this usage message
...      -H hostname               Hostname to connect to
... """)
Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname               Hostname to connect to

# 拼接

+ 拼接字符串, * 重复

>>> 3 * 'un' + 'ium'
'unununium'

相邻的两个或多个 字符串字面值 (引号标注的字符)会自动合并:

>>> 'Py' 'thon'
'Python'

# 拼接分隔开的长字符串时,这个功能特别实用:
>>> text = ('Put several strings within parentheses '
...         'to have them joined together.')
>>> text
'Put several strings within parentheses to have them joined together.'

# 这项功能只能用于两个字面值,不能用于变量或表达式:
>>> prefix = 'Py'
>>> prefix 'thon'  # 不能拼接变量和字符串字面值
# 合并多个变量,或合并变量与字面值,要用 +:

# 字符数组

字符 = 长度为 1 的字符串

字符串支持 索引 (下标访问),第一个字符的索引是 0。单字符没有专用的类型,就是长度为一的字符串:

>>> word = 'Python'
>>> word[0]  # 0 号位的字符
'P'

# 负数索引
>>> word[-1]  # 最后一个字符
'n'

# 注意,-0 和 0 一样,因此,负数索引从 -1 开始。

# 切片(裁切)
>>> word[0:2]  # 从 0 号位 (含) 到 2 号位 (不含) 的字符
'Py'

# 切片(裁切)省略写法
>>> word[:2]   # 从开头到 2 号位 (不含) 的字符
'Py'
>>> word[4:]   # 从 4 号位 (含) 到末尾
'on'
>>> word[-2:]  # 从倒数第二个 (含) 到末尾
'on'

# 字符串索引操作为【只读】
>>> word[0] = 'J' # 报错

# 示例 - 列表(数组)

在 python 中把数组叫做列表

# 基本操作

>>> squares = [1, 4, 9, 16, 25]
>>> squares
[1, 4, 9, 16, 25]

# 索引、切片,与字符串同理
>>> squares[0]  # 索引操作将返回条目
1
>>> squares[-1]
25
>>> squares[-3:]  # 切片操作将返回一个新列表
[9, 16, 25]

# 合并
>>> squares + [36, 49, 64, 81, 100]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

# 修改元素,与字符串只读不同,列表可以修改
>>> cubes = [1, 8, 27, 65, 125]  # 这里有点问题
>>> cubes[3] = 64  

# 追加
>>> cubes.append(216)  # 添加 6 的立方

# 赋值 = 引用传递
>>> rgb = ["Red", "Green", "Blue"]
>>> rgba = rgb
>>> id(rgb) == id(rgba)  # 它们指向同一个对象
True
>>> rgba.append("Alph")
>>> rgb
["Red", "Green", "Blue", "Alph"]

# 浅拷贝

>>> correct_rgba = rgba[:] # 相当于遍历rgba每个元素push到correct_rgba
>>> correct_rgba[-1] = "Alpha"
>>> correct_rgba
["Red", "Green", "Blue", "Alpha"]
>>> rgba
["Red", "Green", "Blue", "Alph"]

# 局部赋值

>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g']

>>> # 替换一些值
>>> letters[2:5] = ['C', 'D', 'E']
>>> letters
['a', 'b', 'C', 'D', 'E', 'f', 'g']

>>> # 现在移除它们
>>> letters[2:5] = []
>>> letters
['a', 'b', 'f', 'g']

>>> # 通过用一个空列表替代所有元素来清空列表
>>> letters[:] = []
>>> letters
[]
上次更新: 2024/11/08, 02:29:38
流程控制与定义函数

流程控制与定义函数→

最近更新
01
iSCSI服务搭建
05-10
02
磁盘管理与文件系统
05-02
03
网络测试 - iperf3
05-02
更多文章>
Theme by Vdoing | Copyright © 2018-2025 NipGeihou | 友情链接
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式