20_ Python基础到实战一飞冲天(二)-python基础(二十)
bigegpt 2024-12-22 14:26 4 浏览
# 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、示例:
`上一节关联链接请点击:`
相关推荐
- 了解Linux目录,那你就了解了一半的Linux系统
-
大到公司或者社群再小到个人要利用Linux来开发产品的人实在是多如牛毛,每个人都用自己的标准来配置文件或者设置目录,那么未来的Linux则就是一团乱麻,也对管理造成许多麻烦。后来,就有所谓的FHS(F...
- Linux命令,这些操作要注意!(linux命令?)
-
刚玩Linux的人总觉得自己在演黑客电影,直到手滑输错命令把公司服务器删库,这才发现命令行根本不是随便乱用的,而是“生死簿”。今天直接上干货,告诉你哪些命令用好了封神!喜欢的一键三连,谢谢观众老爷!!...
- Linux 命令速查手册:这 30 个高频指令,拯救 90% 的运维小白!
-
在Linux系统的世界里,命令行是强大的武器。对于运维小白而言,掌握一些高频使用的Linux命令,能极大提升工作效率,轻松应对各种系统管理任务。今天,就为大家奉上精心整理的30个Linu...
- linux必学的60个命令(linux必学的20个命令)
-
以下是Linux必学的20个基础命令:1.cd:切换目录2.ls:列出文件和目录3.mkdir:创建目录4.rm:删除文件或目录5.cp:复制文件或目录6.mv:移动/重命名文件或目录7....
- 提高工作效率的--Linux常用命令,能够决解95%以上的问题
-
点击上方关注,第一时间接受干货转发,点赞,收藏,不如一次关注评论区第一条注意查看回复:Linux命令获取linux常用命令大全pdf+Linux命令行大全pdf为什么要学习Linux命令?1、因为Li...
- 15 个实用 Linux 命令(linux命令用法及举例)
-
Linux命令行是系统管理员、开发者和技术爱好者的强大工具。掌握实用命令不仅能提高效率,还能解锁Linux系统的无限潜力,本文将深入介绍15个实用Linux命令。ls-列出目录内容l...
- Linux 常用命令集合(linux常用命令全集)
-
系统信息arch显示机器的处理器架构(1)uname-m显示机器的处理器架构(2)uname-r显示正在使用的内核版本dmidecode-q显示硬件系统部件-(SMBIOS/DM...
- Linux的常用命令就是记不住,怎么办?
-
1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...
- Linux常用文件操作命令(linux常用文件操作命令有哪些)
-
ls命令在Linux维护工作中,经常使用ls这个命令,这是最基本的命令,来写几条常用的ls命令。先来查看一下使用的ls版本#ls--versionls(GNUcoreutils)8.4...
- Linux 常用命令(linux常用命令)
-
日志排查类操作命令查看日志cat/var/log/messages、tail-fxxx.log搜索关键词grep"error"xxx.log多条件过滤`grep-E...
- 简单粗暴收藏版:Linux常用命令大汇总
-
号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部下午好,我的网工朋友在Linux系统中,命令行界面(CLI)是管理员和开发人员最常用的工具之一。通过命令行,用户可...
- 「Linux」linux常用基本命令(linux常用基本命令和用法)
-
Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。总结送免费学习资料(包含视频、技术学习路线图谱、文档等)1、显示日期的指令:d...
- Linux的常用命令就是记不住,怎么办?于是推出了这套教程
-
1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...
- Linux的30个常用命令汇总,运维大神必掌握技能!
-
以下是Linux系统中最常用的30个命令,精简版覆盖日常操作核心需求,适合快速掌握:一、文件/目录操作1.`ls`-列出目录内容`ls-l`(详细信息)|`ls-a`(显示隐藏文件)...
- Linux/Unix 系统中非常常用的命令
-
Linux/Unix系统中非常常用的命令,它们是进行文件操作、文本处理、权限管理等任务的基础。下面是对这些命令的简要说明:**文件操作类:*****`ls`(list):**列出目录内容,显...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- resize函数 (64)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- mybatis大于等于 (64)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- logstashinput (65)
- hadoop端口 (65)
- vue阻止冒泡 (67)
- oracle时间戳转换日期 (64)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)