Python自学教程5-字符串有哪些常用操作
任何编程语言,不管是Python、Java 还是 Golang, 字符串都是最重要的一种数据类型。 但是字符串的操作又很多,初学者经常毫无头绪,不知道从哪儿学起,也不知道哪些操作用得多,今天九柄就和你来扒一扒Python当中,怎么使用字符串比较合适。
字符串是什么
可以说,你在世界上看到的任意文字都将以字符串的形式展示,任何数据和内容也都可以用字符串表示,为了方便,我们就把字符串称为文字吧。
在 Python 中表示字符串有很多形式。在数据左右两边加一对引号,可以是单引号,双引号和三引号。引号是英文半角,全角会报错。
# 双引号
a = "jiubing"
# 单引号
a = 'jiubing'
# 三引号
a = '''jiubing'''
a = """jiubing"""
# 全角 Error
a = ‘jiubing’
三引号既可以表示字符串,又可以表示注释。它们的区别在于是否使用变量存储,没有存储的字符串,无法复用,就是注释。
字符串如何获取某个字符
从字面上看,字符串是用字符串起来的,和羊肉串、牛肉串差不多,在吃羊肉串的时候,有的人习惯一口一串,从签子底部用嘴一划,所有的肉都被收进嘴里, 而我看到一些女生,吃羊肉串非常斯文, 她会先用筷子把一块肉挑到碗里再吃。
字符串也可以一个个字符的取,大多数情况下,都可以使用索引方式得到某个单一字符。索引的作用是取出一个字符,索引从0开始
man = "kang li"
print(man[1]) #a
print(man[0]) #k
索引可以是负数,表示倒数第几个,也就是从字符串的右边数到左边。索引为 -1 表示获取倒数第一个字符,索引为 -2 表示获取倒数第二个字符。为什么正序数的索引从 0 开始,倒序就不能从 0 开始呢?因为索引为 0 不能同时表示两个字符,会造成指令的冲突。
print(man[-1]) #i
超出索引范围报 IndexError 错误
print(man[8])
字符串截取
索引一次只能获取一个字符,切片可以一次获取多个。如果想获取字符串的某些子串,可以通过切片实现。切片的表示方法是:var[start: end]。 start 表示开始位置的索引号,end 表示结束位置的索引号, 但是不包含 end。
girl = "Smile沫沫"
part_of_girl = girl[0:1]
print(part_of_girl) # S
切片的索引号也可以是负数,但是在使用的时候要确保 end 是在 start 的右边,end - start > 0 。
girl = "Smile沫沫"
print(girl[0: -2]) # Smile
print(girl[-2: -4]) # 空字符串,取不到字符
切片的索引号超出范围是不会报错的,取到尽头为止。
girl = "Smile沫沫"
print(girl[0:100000000000])
切片的 start 和 end 都可以省略。
girl[1:]
girl[:-1]
girl[:]
切片可以加第三个参数, girl[start:end:step], 其实使用切片时,默认的步长是为 1。
girl[0:3:2]
字符串逆序输出
步长为 -1,表示从后面往前面数,girl[::-1], 反转字符串。
girl[::-1]
获取字符串长度
len(girl)
字符串格式化
格式化相当于一个模板,模板中有些空位需要动态的填入数据。

from_name = '张三'
title = '学费'
money = 500
to_name = '李四'
info = f"""
今天收到 {from_name}
交 来 {title}
人民币 {money} 元
收款人 {to_name}
"""
更高级的字符串模板可以使用 template, 它主要防止用户输入对程序安全造成影响。 一般我们在web开发中的模板渲染就是基于这种技术。
字符串分割
split 通过某个分隔符分割字符串,分割后得到一个列表。 如果没有指定分隔符,则把整个字符串作为唯一的元素存放到列表中。
girls = 'Lucy-Monic-Jessy'
girl_list = girls.split('-')
print(girl_list) # ['Lucy', 'Monic', 'Jessy']
girl_list = girls.split()
print(girl_list) # ['Lucy-Monic-Jessy']
字符串拼接
join 方法是 split 的反向应用,它可以把一个列表通过特定的连接符组成一个字符串。
a = ['hello', 'world']
b = "".join(a)
print(b)
字符串查找
通常,可以使用 find 或者 index 来查找简单的字符:
a = "hello world"
a.find("he")
但是如果涉及到复杂的匹配规则,一般会用正则表达式。
字符串匹配
正则表达式非常枯燥,在没有具体的实战场景前,建议不用花太多时间提前了解,不然时间花了,没几天又忘得一干二净。这里简单写一个匹配规则, 表示匹配一个数字。
import re
string = "ayu7o99"
re.search("\d", string)
字符串替换
replace 替换某个子串。但是原来的数据是不会发生变化的,而是把替换后的字符串用新的变量表示。
a = "Soul 小芳"
b = a.replace("Soul", "灵魂歌手")
print(b) # 灵魂歌手 小芳
print(a) # Soul 小芳
字符串删除某个字符
字符串是不可变的数据类型,并不能真的把某个字符删除,但是我们可以使用 replace 方法间接实现,把指定的字符串替换成空字符串。
a = "Soul 小芳"
# 去掉 ou
b = a.replace('ou', '')
自动化测试场景
1、使用 string 表示测试用例
username = 'jiubing1'
password = '123456'
age = 18
print("用户名", username)
print("密码", username)
print("年龄", username)
2、去掉 username 的空格
username = 'jiubing1'
first, last= username.split(' ')
username = ''.join([first, last])
3、格式化输出
user = f"""
-------------------------
用户名:{username}
密码:{password}
年龄:{age}
-------------------------
"""
4、通过 input 打印出测试用例(模拟前端页面)
5、访问网址拼接
url = '<http://xxx.com/register>'
full_url = f'{url}?username={username}&password={password}&age={age}'
6、通过网址获取所有参数(后面的内容)
url, params = full_url.split('?')
info = dict()
for param in params.split('&'):
key, value = param.split('=')
info.update({key:value})
print(info)
Python自学教程5-字符串有哪些常用操作的更多相关文章
- Python自学笔记6-列表有哪些常用操作
列表是Python中最重要的数据类型,它使用的频率非常非常的高,最大程度的发挥Python的灵活性. 和字符串一样,列表的操作方法也有很多.如果说一头钻进去,可能会导致学习没有重点.在这篇文章当中,首 ...
- Python自学教程8-数据类型有哪些注意事项
不知不觉,python自学教程已经更新到第八篇了,再有几篇,基本的语法就介绍完了. 今天来总结一下数据类型有哪些需要注意的地方. 元组注意事项 元组是另一种经常使用到的数据类型,看上去和列表差不多.它 ...
- Python中字符串有哪些常用操作?纯干货超详细
- Python自学教程1-安装pycharm和执行环境
Python虽然简单,但是很多没有接触过的学起来还是比较困难的.因此很多人会报班去学,我觉得不需要花那个钱,只要方向正确,加上核心知识点的提炼,自学一个月左右就能上手. 我尝试写下这个自学教程,只讨论 ...
- Python自学教程7:字典类型有什么用
字典是Python中的一个重要操作,如果字典玩得顺,很多其他的数据类型就可以一通百通. Python字典的定义 字典使用一对大括号进行定义,键值对之间使用逗号隔开,键和值使用冒号分隔. 键必须是不可变 ...
- Python自学笔记之字符串的操作
1.将字符串全部变为小写:lower() casefold() 范围更广 2.将字符串全部变为大写:upper() 3.判断是否大小写:isupper() islower() 4.居中:center( ...
- python字符串、元组常用操作
常用字符串操作函数: #Author:CGQ name="I \tam ChenGuoQiang" print(name.capitalize())#首字母大写,其他都小写 pri ...
- python文件(概念、基本操作、常用操作、文本文件的编码方式)
文件 目标 文件的概念 文件的基本操作 文件/文件夹的常用操作 文本文件的编码方式 01. 文件的概念 1.1 文件的概念和作用 计算机的 文件,就是存储在某种 长期储存设备 上的一段 数据 长期存储 ...
- day02 Python列表的增删查改及常用操作
列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li = [‘alex’,12 ...
- Python元组类型、字典类型及常用操作
一.元组类型 1.用途 记录多个值,当多个值没有改的需求,此时用元组更合适,Python的元组与列表类似,不同之处在于元组的元素不能修改. 2.定义方式 在()内用逗号分隔开多个任意类型的值 t=(1 ...
随机推荐
- MyBatis - SqlSessionFactory 与 SqlSession
SqlSessionFactory SqlSessionFactory是创建SqlSession的工厂,一般使用单例模式,不需要重复创建. SqlSession SqlSession是直接与数据库直接 ...
- Jmeter接口参数化<自动化>(csv文件)管理测试用例以及断言
1.创建相关线程组(不解释) 2.创建相应的请求(在请求中设置变量) 下面截图中①②③④⑤⑥⑦皆可以设置为变量 3.新建CSV文件 将请求中设置的变量为明确了解每个字段的含义(皆可以将变量填写到列表的 ...
- java基础内存分配介绍
java内存分配介绍 栈 堆 方法区 本地方法栈 寄存器 方法区:字节码文件加载时进入的内存. 栈内存:方法运行时所进入的内存,变量也在这里. 堆内存:new出来的东西在这块内存中开辟空间并且 ...
- 开源项目 PM 浅谈如何设计官网
有用户反馈进入官网首页光秃秃的一片,大家忙着做产品,忽略了官网的建设,惭愧惭愧. 确实,极简风格和极其简单还是有很大区别的. 旧的 Web 端 除了极其简单之外,它还有一个小问题, ...
- ubuntu使用postfix和AWS-SES发送邮件
在日常开发中,邮件发送是个比较常见的场景.因此出现了很多相关的软件和服务,各大云厂商也推出自己的邮件服务.今天笔者就像大家介绍一种常见的组合,AWS的邮件服务 SES 与邮件服务器 postfix 的 ...
- Colab教程(超级详细版)及Colab Pro/Colab Pro+使用评测
在下半年选修了机器学习的关键课程Machine learning and deep learning,但由于Macbook Pro显卡不支持cuda,因此无法使用GPU来训练网络.教授推荐使用Goog ...
- php为图片添加水印
<?php /** * 图片加水印(适用于png/jpg/gif格式) * * @author flynetcn * * @param $srcImg 原图片 * @param $waterIm ...
- 《Java基础——IO流》
Java基础--IO流 一.字节流: 1.输入流 (InputStream) 规则: 此处用于读取txt文件中的内容. 代码: import java.io.*; public c ...
- 过年了,基于Vue做一个消息通知组件
前言 今天除夕,在这里祝大家新年快乐!!!今天在这个特别的日子里我们做一个消息通知组件,好,我们开始行动起来吧!!!项目一览 效果很简单,就是这种的小卡片似的效果. 我们先开始写UI页面,可自定义消息 ...
- ms10_002 IE浏览器漏洞
一.环境说明 kali linux 靶机:xp 二.ms10_002漏洞利用 msf5 exploit(windows/smb/ms08_067_netapi) > search ms10_00 ...