Python编程:集合、字符串与数值计算的深度解析
立即解锁
发布时间: 2025-08-15 03:07:45 阅读量: 7 订阅数: 20 


Python编程与量子计算入门
# Python 编程:集合、字符串与数值计算全解析
## 1. 集合推导式
在 Python 中,我们可以使用推导式创建集合,这与创建列表的方式类似,只不过集合使用花括号 `{}` 而非方括号 `[]`。Python 会自动去除集合中的重复元素。以下是示例代码:
```python
# 列表推导式
list_result = [i * j for i in range(1, 5) for j in range(2, 5)]
print(list_result)
# 集合推导式
set_result = {i * j for i in range(1, 5) for j in range(2, 5)}
print(set_result)
```
输出结果如下:
```
[2, 3, 4, 4, 6, 8, 6, 9, 12, 8, 12, 16]
{2, 3, 4, 6, 8, 9, 12, 16}
```
从结果可以看出,列表中存在重复元素,而集合会自动去除这些重复元素。
## 2. 字符串操作
### 2.1 引号的使用
在 Python 中,我们可以使用单引号、双引号或三引号来界定字符串。Python 通常会使用单引号打印字符串。以下是一些示例:
```python
print("Franz")
print('Franz')
print('Ferdinand')
```
如果字符串中包含某种引号,可以使用另一种引号作为界定符,或者对引号进行转义。例如:
```python
print("That is Franz's cat toy.")
print('The ball is Ferdinand\'s.')
```
对于较长的字符串,可以使用 `+` 运算符进行拼接,或者使用三引号。三引号可以是三个单引号或三个双引号,Python 代码风格指南推荐使用三个双引号。示例如下:
```python
long_string = """
I've broken
this string
over several lines.
"""
print(long_string)
```
如果需要在字符串中嵌入换行符,可以使用 `\n` 字符。例如:
```python
print("You can see the\nnewline character here.")
```
另外,如果要在字符串中包含反斜杠,可以使用另一个反斜杠进行转义,或者使用原始字符串(在引号前加 `r`)。示例如下:
```python
print("C:\\src\\code\\chapter-01")
print(r"C:\src\code\chapter-01")
```
### 2.2 子字符串测试
可以使用 `in` 和 `not in` 来检查一个字符串是否包含另一个字符串。示例如下:
```python
print("Quantum" in "Quantum computing")
print("QUANTUM" not in "Quantum computing")
```
如果不考虑大小写进行比较,可以先对每个字符串使用 `casefold()` 方法。示例如下:
```python
print("QUANTUM".casefold() in "Quantum computing".casefold())
```
Python 还提供了 `upper()`、`lower()` 和 `capitalize()` 方法来改变字符串的大小写。示例如下:
```python
print("Charles Darwin".upper())
print("CAUTION: HELMETS MUST BE WORN".lower())
print("this NEEDS to look like A Sentence!".capitalize())
```
### 2.3 访问字符
字符串的有效索引范围是从负的字符串长度到字符串长度减 1。可以使用索引来访问字符串中的单个字符,也可以使用 `find()` 方法来定位子字符串在字符串中的位置。示例如下:
```python
guitars = "Fender Gibson Taylor"
print(guitars[0])
print(guitars[-1])
print(guitars.find("o"))
print(guitars.find("o", 12))
print(guitars.find("o", 2, 9))
```
如果 `find()` 方法没有找到子字符串,会返回 -1。另外,还可以使用 `index()` 方法,但如果子字符串不存在,`index()` 方法会抛出异常。
### 2.4 创建字符串
除了使用引号直接创建字符串外,还可以使用 `+` 运算符拼接字符串,或者使用 `join()` 方法将字符串列表拼接成一个字符串。示例如下:
```python
letters = "abcd"
new_letters = letters + "efg"
print(new_letters)
words = ['If', 'you', 'have', 'a', 'list']
print("".join(words))
print(' '.join(words))
print('\n'.join(words))
```
还可以使用 `replace()` 方法替换字符串中的子字符串。示例如下:
```python
print("My favorite guitar is a Fender.".replace("Fender", "Gibson"))
print("My favorite guitar is a Fender.".replace("e", "E"))
print("My favorite guitar is a Fender.".replace("e", "E", 1))
print("My favorite guitar is a Fender.".replace(" guitar", ""))
```
### 2.5 字符串迭代
可以使用 `for` 循环遍历字符串中的每个字符。示例如下:
```python
characters = []
for c in "Fender":
characters.append(c)
print(characters)
guitars = "Fender Gibson Taylor"
for c in guitars:
if c.isupper():
print(c)
```
虽然 Python 中没有字符串推导式,但可以创建一个字符串列表,然后使用 `join()` 方法将它们拼接成一个字符串。示例如下:
```python
result = "".join([c for c in "OX63 5WC - SL46 3AP - BN96 0VU" if c.isdigit()])
print(result)
```
字符串还可以与列表等支持迭代的集合一起使用 `zip()` 函数进行并行遍历。示例如下:
```python
for a, b in zip("123", [1, 2, 3]):
print(f"{a = } {b = }")
```
### 2.6 字符串切片
字符串的切片规则与列表类似,但不能将字符串切片放在赋值语句的左侧,因为字符串是不可变的。示例如下:
```python
word = "sesquipedalianism"
print(word[3:9])
print(word[:7])
print(word[7:])
print(word[::3])
print(word[::-1])
```
尝试修改字符串中的字符会引发 `TypeError` 异常。示例如下:
`
0
0
复制全文
相关推荐










