Skip to content

数字、字符串、列表及相关操作方法。

安装

常规安装:https://www.python.org/downloads/macos/

使用 pyenv 安装:https://github.com/pyenv/pyenv?tab=readme-ov-file#a-getting-pyenv

常用指令说明
pyenv install -l列出所有版本
pyenv versions列出已经安装的版本
pyenv install 3.12.4安装指定版本
pyenv global 3.12.4设置为全局版本
pyenv local 3.12.4设置为当前项目版本
pyenv uninstall 3.12.4删除指定版本

常识

  • .py 文件中的字符编码,默认为 utf-8 编码;如果需要修改可以在文件头部指定 # -*- coding: utf-8 -*-
  • 如果需要在 Linux 中让 .py 文件像 shell 一样执行,则需要在文件头部添加 #!/usr/bin/env python3 来指定解释器 注意同时出现时,此条优先级更高
  • # 表示注释,# 后的内容不会被解释器执行。 # print('hello')
  • """ 或者 ''' 表示多行字符串,"""...""" 或者 '''...""" 可以包含多行内容,"""..."""'''...""" 可以互相嵌套。

数字 int, float

数字之间可以直接进行运算,表达式语法很直观:运算符 +, -, */ 以及 //, **, % 可被用来执行算术运算;圆括号 () 可被用来进行分组。

需要注意混合运算和整除运算的结果始终是 float 类型

python
# 基础运算
print(2 + 2)  # 4
print(50 - 5 * 6)  # 20
print((50 - 5) * 6)  # 270
print(8 / 5)  # 1.6

# 整除运算 // 会向下取整
print(17 / 3)  # 5.666666666666667
print(17 // 3)  # 5

# 取余运算 %
print(17 % 3)  # 2

# 乘方运算 **
print(5 ** 2)  # 25
print(2 ** 7)  # 128

# 变量赋值
width = 20
height = 5 * 9
print(width * height)  # 900

除了 intfloat,Python 还支持其他数字类型,例如 DecimalFraction。Python 还内置支持 复数,后缀 jJ 用于表示虚数(例如 3+5j )。

字符串 str

""'' 包裹的内容被视为字符串。如果要表示引号本身,则需要使用转义字符 \。此外还有一些常见的转义字符:

转义字符说明
\n换行
\t制表符
\\反斜杠

r 包裹的字符串被视为原始字符串,其中的转义字符不会被解释为转义字符,而是被视为普通字符。

python
# 单引号和双引号
print('spam eggs')  # spam eggs
print('doesn\'t')  # doesn't
print("doesn't")  # doesn't
print('"Yes," they said.')  # "Yes," they said.
print("\"Yes,\" they said.")  # "Yes," they said.
print('"Isn\'t," they said.')  # "Isn't," they said.

# 转义字符
print('C:\some\name')  # C:\some\name
print('C:\\some\\name')  # C:\some\name
print(r'C:\some\name')  # C:\some\name (raw string)

同时,字符串可以被 + 拼接,也可以被 * 重复。也可以多行书写。

python
print("""\
Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname               Hostname to connect to
""")
print(3 * 'un' + 'ium')  # unununium

字符串也可以被索引,索引从 0 开始,-1 表示最后一个元素,-2 表示倒数第二个元素,以此类推。

python
print("Hello, World!"[0])  # H
print("Hello, World!"[-1])  # !

str 的方法

方法参数说明
capitalize()将字符串首字母大写,其余字母小写
upper()将字符串全部转为大写
lower()将字符串全部转为小写
strip()[chars]移除字符串两端的空白字符或指定字符
split()[sep[, maxsplit]]按分隔符分割字符串为列表,可指定分割次数
join()iterable用字符串连接可迭代对象中的元素
replace()old, new[, count]替换字符串中的子串,可指定替换次数
find()sub[, start[, end]]查找子串位置,返回索引,未找到返回-1
startswith()prefix[, start[, end]]判断字符串是否以指定前缀开头
endswith()suffix[, start[, end]]判断字符串是否以指定后缀结尾
python
s = "  Hello, World!  "
print(s.capitalize())  # Hello, world!
print(s.upper())      # HELLO, WORLD!
print(s.lower())      # hello, world!
print(s.strip())      # Hello, World!

# split 和 join
words = "python is awesome".split()  
print(words)  # ['python', 'is', 'awesome']
print("-".join(words))  # python-is-awesome

# replace
text = "I love python, python is great"
print(text.replace("python", "JavaScript", 1))  # I love JavaScript, python is great

# find
sentence = "Python is easy to learn"
print(sentence.find("easy"))  # 10
print(sentence.find("hard"))  # -1

# startswith 和 endswith
filename = "document.txt"
print(filename.startswith("doc"))  # True
print(filename.endswith(".txt"))   # True

列表 list

支持多种数据类型,支持嵌套。用方括号标注,逗号分隔的一组值。列表中的元素可以被修改。支持下标索引和拼接。

注意:列表的索引从 0 开始,-1 表示最后一个元素,-2 表示倒数第二个元素,以此类推。

python
# 创建列表
fruits = ["apple", "banana", "cherry"]

# 下标索引
print(fruits[0])  # apple

# 拼接
print(fruits + ["orange", "pear"])  # ['apple', 'banana', 'cherry', 'orange', 'pear']

str、list 的切片

切片接受三个参数:起始索引、结束索引和步长。返回一个新的列表或字符串,包含从起始索引到结束索引之间的元素。

如果省略起始索引,则从第一个元素开始;如果省略结束索引,则到列表末尾结束。

步长为正数时,从左到右切片;步长为负数时,从右到左切片。

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
 0   1   2   3   4   5   6
-6  -5  -4  -3  -2  -1
python
# 字符串切片
text = "Hello, World!"
print(text[0:5])    # Hello
print(text[:5])     # Hello
print(text[7:])     # World!
print(text[::2])    # Hlo ol!
print(text[::-1])   # !dlroW ,olleH

# 列表切片 
numbers = [0, 1, 2, 3, 4, 5]
print(numbers[2:4])     # [2, 3]
print(numbers[:3])      # [0, 1, 2]
print(numbers[3:])      # [3, 4, 5]
print(numbers[::2])     # [0, 2, 4]
print(numbers[::-1])    # [5, 4, 3, 2, 1, 0]