数字、字符串、列表及相关操作方法。
安装
常规安装: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
除了 int
和 float
,Python 还支持其他数字类型,例如 Decimal
或 Fraction
。Python 还内置支持 复数,后缀 j
或 J
用于表示虚数(例如 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]