网站首页 > 基础教程 正文
# 20_ Python基础到实战一飞冲天(二)-python基础(二十)--字符串与公共方法
## 一、字符串-07-文本对齐方法演练
### 1、python字符串文本对齐 示例代码:dzs_18_字符串文本对齐.py
```python
# dzs_18_字符串文本对齐.py(05_高级数据类型)
# string.ljust(width) | 返回一个原字符串左对齐,
# 并使用空格填充至长度 width 的新字符串。
# string.rjust(width) | 返回一个原字符串右对齐,
# 并使用空格填充至长度 width 的新字符串。
# string.center(width) | 返回一个原字符串居中,
# 并使用空格填充至长度 width 的新字符串。
# 假设:以下内容是从网络上抓取的
# 要求:顺序并且居中对齐(右对齐、左对齐)输出以下内容。
poem = ["登鹳雀楼",
"王之涣",
"白日依山尽",
"黄河入海流",
"欲穷千里目",
"更上一层楼"]
# -默认遍历输出
for poem_str in poem:
print(poem_str)
print("=" * 30)
# 文本居中对齐--默认英文空格
for poem_str in poem:
# 默认是英文符号的10个空格
print("|%s|" % poem_str.center(10))
print("=" * 30)
# 文本居中对齐--增加中文空格
for poem_str in poem:
# 中文符号(全角)的10个空格
print("|%s|" % poem_str.center(10, " "))
print("=" * 30)
# 文本右对齐
for poem_str in poem:
# 中文符号(全角)的10个空格
print("|%s|" % poem_str.rjust(10, " "))
print("=" * 30)
# 文本左对齐
for poem_str in poem:
# 中文符号(全角)的10个空格
print("|%s|" % poem_str.ljust(10, " "))
print("=" * 30)
```
### 2、示例:
## 二、字符串-08-去除空白字符
### 1、python字符串文本去除空白字符 示例代码:dzs_19_字符串文本去除空白字符.py
```python
# dzs_19_字符串文本去除空白字符.py(05_高级数据类型)
# string.lstrip() : 截掉 string 左边(开始)的空白字符。
# string.rstrip() : 截掉 string 右边(末尾)的空白字符。
# string.strip() : 截掉 string 左右两边的空白字符。
# 假设:以下内容是从网络上抓取的
# 要求:顺序并且居中对齐(去除空白字符)输出以下内容。
poem = ["登鹳雀楼\n",
"王之涣\n",
"白日依山尽\t",
"黄河入海流\n\t",
"欲穷千里目",
"更上一层楼"]
# 文本居中对齐--增加中文空格
for poem_str in poem:
# 中文符号(全角)的10个空格
print("|%s|" % poem_str.center(10, " "))
print("=" * 30)
# 文本居中对齐--增加中文空格(除空白字符)
for poem_str in poem:
# 除空白字符
# 中文符号(全角)的10个空格
print("|%s|" % poem_str.strip().center(10, " "))
print("=" * 30)
```
### 2、示例:
## 三、字符串-09-拆分和拼接字符串
### 1、python拆分和拼接字符串示例代码:dzs_20_拆分和拼接字符串.py
```python
# dzs_20_拆分和拼接字符串.py(05_高级数据类型)
# 假设:以下内容是从网络上抓取的
# 要求:
# 1、将空白字符全部去掉。
# 2、再使用 " " 作为分隔符,拼接成一个整齐的字符串。
"""
string.split(str="", num) : 以 str 为分隔符拆分 string,
如果 num 有指定值,则仅分隔 num + 1 个子字符串,
str 默认包含 '\r', '\t', '\n' 和空格
string.join(seq) : 以 string 作为分隔符,将 seq 中所有的元素
(的字符串表示)合并为一个新的字符串
"""
poem_str = "登鹳雀楼\t 王之涣\t 白日依山尽\t\n 黄河入海流\t\t 欲穷千里目\n更上一层楼"
print(poem_str)
print("=" * 30)
# 1.拆分字符串
poem_list = poem_str.split()
print(poem_list)
print("=" * 30)
# 2.合并字符串
result = " ".join(poem_list)
print(result)
print("=" * 30)
```
### 2、示例:
## 四、字符串-10-切片概念和语法以及倒序索引
### 1、字符串的切片
1)**切片** 方法适用于 **字符串**、**列表**、**元组**。
2)**切片** 使用 **索引值** 来限定范围,从一个大的 **字符串** 中 **切出** 小的 **字符串**。
3)**列表** 和 **元组** 都是 **有序** 的集合,都能够 **通过索引值** 获取到对应的数据。
4)**字典** 是一个 **无序** 的集合,是使用 **键值对** 保存数据。
### 2、**切片注意事项**:
1)指定的区间属于 **左闭右开** 型 `[开始索引, 结束索引)` => `开始索引 >= 范围 < 结束索引`
* 从 `起始` 位开始,到 **`结束`位的前一位** 结束(**不包含结束位本身**)。
2)从头开始,**开始索引** **数字可以省略,冒号不能省略**。
3)到末尾结束,**结束索引** **数字可以省略,冒号不能省略**。
4)步长默认为 `1`,如果连续切片,**数字和冒号都可以省略**。
### 3、索引的顺序和倒序
1)在 Python 中不仅支持 **顺序索引**,同时还支持 **倒序索引**。
2)所谓倒序索引就是 **从右向左** 计算索引,最右边的索引值是 **-1**,依次递减。
### 4、字符串索引示意图
```python
字符串[开始索引:结束索引:步长]
```
## 五、字符串-11-字符串切片演练
### 1、**演练需求**
* 1. 截取从 2 ~ 5 位置 的字符串
* 2. 截取从 2 ~ `末尾` 的字符串
* 3. 截取从 `开始` ~ 5 位置 的字符串
* 4. 截取完整的字符串
* 5. 从开始位置,每隔一个字符截取字符串
* 6. 从索引 1 开始,每隔一个取一个
* 7. 截取从 2 ~ `末尾 - 1` 的字符串
* 8. 截取字符串末尾两个字符
* 9. 字符串的逆序(面试题)
### 2、演练**答案**
```python
num_str = "0123456789"
# 1. 截取从 2 ~ 5 位置 的字符串
print(num_str[2:6])
# 2. 截取从 2 ~ `末尾` 的字符串
print(num_str[2:])
# 3. 截取从 `开始` ~ 5 位置 的字符串
print(num_str[:6])
# 4. 截取完整的字符串
print(num_str[:])
# 5. 从开始位置,每隔一个字符截取字符串
print(num_str[::2])
# 6. 从索引 1 开始,每隔一个取一个
print(num_str[1::2])
# 倒序切片
# -1 表示倒数第一个字符
print(num_str[-1])
# 7. 截取从 2 ~ `末尾 - 1` 的字符串
print(num_str[2:-1])
# 8. 截取字符串末尾两个字符
print(num_str[-2:])
# 9. 字符串的逆序(面试题)
print(num_str[::-1])
```
### 3、演练示例
## 六、公共方法-01-内置函数长度、删除、最大、最小、比较
### 1、公共方法:Python 内置函数:
1)Python 包含了以下内置函数:
函数 | 描述 | 备注 |
len(item) | 计算容器中元素个数 | |
del(item) | 删除变量 | del 有两种方式 |
max(item) | 返回容器中元素最大值 | 如果是字典,只针对 key 比较 |
min(item) | 返回容器中元素最小值 | 如果是字典,只针对 key 比较 |
cmp(item1, item2) | 比较两个值,-1 小于/0 相等/1 大于 | Python 3.x 取消了 cmp 函数 |
2)**注意**
**字符串** 比较符合以下规则: "0" < "A" < "a"。
### 2、在 ipython3中对python内置函数(del, max, min, cmp)演练
```python
In [1]: a = [1, 3, 5, 7, 9]
In [2]: del a[1]
In [3]: a
Out[3]: [1, 5, 7, 9]
In [4]: del(a[1])
In [5]: a
Out[5]: [1, 7, 9]
In [6]: del(a)
In [7]: a
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-7-60b725f10c9c> in <module>()
----> 1 a
NameError: name 'a' is not defined
In [8]: t_str = "asdfghjklzxcvbnmqwertyuiop"
In [9]: max(t_str)
Out[9]: 'z'
In [10]: min(t
%%time %tb %timeit try type
%%timeit %time t_str tuple
In [10]: min(t_str)
Out[10]: 'a'
In [11]: t_list = [2, 5, 4, 8, 1, 3, 9]
In [12]: max(t_list)
Out[12]: 9
In [13]: min(t_list)
Out[13]: 1
In [14]: t_dict = {"a": "z", "b": "y", "c": "x"}
In [15]: max(t_dict)
Out[15]: 'c'
In [16]: min(t_dict)
Out[16]: 'a'
In [17]: cmp("1", "2")
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-17-1d257b89c242> in <module>()
----> 1 cmp("1", "2")
NameError: name 'cmp' is not defined
In [18]: "1" < "2"
Out[18]: True
In [19]: "1" > "2"
Out[19]: False
In [20]: "aaa" < "bbb"
Out[20]: True
In [21]: [1,2,3] < [1,2,4]
Out[21]: True
In [22]: (1,2,3) < (2,1,1)
Out[22]: True
In [23]: {"a":"z"} < {"b":"a"}
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-23-0109ec4e9c47> in <module>()
----> 1 {"a":"z"} < {"b":"a"}
TypeError: unorderable types: dict() < dict()
```
### 3、示例:
## 七、公共方法-02-切片
### 1、切片:
1)切片是使用 **索引值** 来限定范围,它适合于字符串、列表、元组,但不能用于字典。
2)因为**字符串**、**列表** 和 **元组** 都是 **有序** 的集合,都能够 **通过索引值** 获取到对应的数据。而**字典** 是一个 **无序** 的集合,是使用 **键值对** 保存数据。
### 2、切片示例代码:
```python
In [1]: [0,1,2,3,4][1:3]
Out[1]: [1, 2]
In [2]: (0,1,2,3,4)[1:3]
Out[2]: (1, 2)
In [3]: {"a":"a","b":"b"}[0:1]
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-3-64461804ba50> in <module>()
----> 1 {"a":"a","b":"b"}[0:1]
TypeError: unhashable type: 'slice'
```
### 3、示例:
## 八、公共方法-03-算数运算符及对比列表追加方法
### 1、运算符在字符串、列表、元组、字典中的应用
运算符 | Python 表达式 | 结果 | 描述 | 支持的数据类型 |
+ | [1, 2] + [3, 4] | [1, 2, 3, 4] | 合并 | 字符串、列表、元组 |
* | ["Hi!"] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 重复 | 字符串、列表、元组 |
in | 3 in (1, 2, 3) | True | 元素是否存在 | 字符串、列表、元组、字典 |
not in | 4 not in (1, 2, 3) | True | 元素是否不存在 | 字符串、列表、元组、字典 |
> >= == < <= | (1, 2, 3) < (2, 2, 3) | True | 元素比较 | 字符串、列表、元组 |
### 2、**注意**
* `in` 在对 **字典** 操作时,判断的是 **字典的键**
* `in` 和 `not in` 被称为 **成员运算符**
### 3、在 ipython3中 演示运算符在字符串、列表、元组、字典中的应用 示例代码
```python
In [1]: [1,2,3] * 5
Out[1]: [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
In [2]: (1,2,3) * 3
Out[2]: (1, 2, 3, 1, 2, 3, 1, 2, 3)
In [3]: {"a":"z"} * 3
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-3-db1c47d901b6> in <module>()
----> 1 {"a":"z"} * 3
TypeError: unsupported operand type(s) for *: 'dict' and 'int'
In [4]: "hello " + "python"
Out[4]: 'hello python'
In [5]: (1,2) + (3,4)
Out[5]: (1, 2, 3, 4)
In [6]: [1,2,3] + [4,5,6]
Out[6]: [1, 2, 3, 4, 5, 6]
In [7]: t_list = [1,2,3]
In [8]: t_list.extend([4,5,6])
In [9]: t_list
Out[9]: [1, 2, 3, 4, 5, 6]
In [10]: t_list.append(0)
In [11]: t_list
Out[11]: [1, 2, 3, 4, 5, 6, 0]
In [12]: t_list([8,9])
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-12-673229cd2fa1> in <module>()
----> 1 t_list([8,9])
TypeError: 'list' object is not callable
In [13]: t_list.append([8,9])
In [14]: t_list
Out[14]: [1, 2, 3, 4, 5, 6, 0, [8, 9]]
```
### 4、示例:
## 九、公共方法-04-成员运算符
### 1、成员运算符 in 和 not in
1)成员运算符用于 **测试** 序列中是否包含指定的 **成员**。
2)in :如果在指定的序列中找到值返回 True,否则返回 False。
如: `3 in (1, 2, 3)` 返回 `True` 。
3)not in :如果在指定的序列中没有找到值返回 True,否则返回 False。
如: `3 not in (1, 2, 3)` 返回 `False` 。
4)注意:在对 **字典** 操作时,判断的是 **字典的键**。
### 2、在 ipython3中演示 成员运算符 in 和 not in 示例代码:
```python
In [1]: "a" in "abcde"
Out[1]: True
In [2]: "a" not in "abcde"
Out[2]: False
In [3]: 1 in [0,1,3]
Out[3]: True
In [4]: 1 not in [0,1,3]
Out[4]: False
In [5]: 1 in (1,2,3)
Out[5]: True
In [6]: 1 not in (1,2,3)
Out[6]: False
In [7]: "a" in {"a": "laowang"}
Out[7]: True
In [8]: "laowang" in {"a": "laowang"}
Out[8]: False
```
### 3、示例
## 十、公共方法-05-完整的for循环-for else
### 1、完整的 for 循环语法
* 在 `Python` 中完整的 `for 循环` 的语法如下:
```python
for 变量 in 集合:
循环体代码
else:
没有通过 break 退出循环,循环结束后,会执行的代码
```
### 2、完整的 for 循环语法 示例代码:
```python
# dzs_21_完整的for循环语法演练.py(05_高级数据类型)
for num in [1,3,5,7,9]:
print(num)
if num == 5:
break
else:
# 如果循环体内使用break退出循环,else下方代码就不会执行
print("会执行此行代码吗?")
print("循环结束")
```
### 3、示例:
`上一节关联链接请点击:`
猜你喜欢
- 2024-12-12 Python绘制带有密度的散点图:matplotlib
- 2024-12-12 再见了,Python~
- 2024-12-12 一文带您理解Python生成器(generator):高效利用内存的奥秘
- 2024-12-12 Python中的线程
- 2024-12-12 Python元组介绍:10分钟掌握元组用法
- 2024-12-12 基于OpenCV 的车牌识别
- 2024-12-12 Python每日一练之判断101-200之间有多少个素数,并输出所有素数
- 2024-12-12 在 Python 字典中查找包含最小值的键
- 2024-12-12 是时候学习Web开发了,1小时用Python开发一个博客系统
- 2024-12-12 怎样用Python进行数据转换和归一化
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)