python基础学习(十)字符串
字符串的定义
- 字符串 就是 一串字符,是编程语言中表示文本的数据类型
- 在 Python 中可以使用 一对双引号 " 或者 一对单引号 ' 定义一个字符串
- 虽然可以使用
\"
或者\'
做字符串的转义,但是在实际开发中:- 如果字符串内部需要使用 ":,可以使用 ' 定义字符串,例如:'zhangsan "hello" '
- 如果字符串内部需要使用 ',可以使用 " 定义字符串
- 虽然可以使用
- 可以使用 索引 获取一个字符串中 指定位置的字符,索引计数从 0 开始
- 也可以使用
for
循环遍历 字符串中每一个字符str1 = "Hello world"
print(str1) for char in str1: print(char) - 一般情况下,使用双引号"来定义字符串(大多数的编程语言都是使用的双引号")
字符串的常用操作
- 在ipython3中,定义一个字符串,例如:my_str = ""
- 输入 my_str. 并按下Tab键,ipython3会提示字符串能使用的方法如下:
可以看到字符串中的方法还是很多的。
- 先看一下字符串中的统计和求索引的相关操作:len(str)、 str.count(str2)、str.index(str2)
my_str = "hello world, hello" # 1. 统计字符串长度 print(len(my_str)) # 2. 统计某一子串出现的次数 print(my_str.count("ell"))
print(my_str.count("cda")) # 3. 求某一子字符串的索引
print(my_str.index("wor"))
# 注意,如果子字符串没有找到,程序会报错
print(my_str.index("cba")) - 判断类型的方法如下:
涉及到的方法比较多,对其中的一部分方法进行练习:
# 1. 判断空白字符
space_str = " \t\r\n"
print(space_str.isspace()) # 2. 判断是否为数字 num_str1 = "12"
print(num_str1)
print(num_str1.isdecimal())
print(num_str1.isdigit())
print(num_str1.isnumeric()) num_str2 = "1.2"
print(num_str2)
print(num_str2.isdecimal())
print(num_str2.isdigit())
print(num_str2.isnumeric()) num_str3 = "\u00b2"
print(num_str3)
print(num_str3.isdecimal())
print(num_str3.isdigit())
print(num_str3.isnumeric()) num_str4 = "一零零二"
print(num_str4)
print(num_str4.isdecimal())
print(num_str4.isdigit())
print(num_str4.isnumeric()) # 3. 大小写判断
print("abc".islower())
print("ABC".isupper()) - 查找和替换
my_str = "hello world" # 1. 判断字符串是否以指定字符串开始
print(my_str.startswith("hell")) # 2. 判断字符串是否以指定字符串结尾
print(my_str.endswith("orld")) # 3. 查找指定字符串 print(my_str.find("llo"))
# 查找的字符串不存在,则返回-1
# index方法查找的字符串不存在会报错
print(my_str.find("abc")) # 4.字符串替换
print(my_str.replace("world", "zfx")) - 大小写转换
# 1. 转大写 print("abc".lower()) # 2. 转小写 print("ABC".upper())
- 文本对齐
my_str = "hello world" # 1. 左对齐
print("|%s|" % my_str.ljust(20, " ")) # 2. 右对齐
print("|%s|" % my_str.rjust(20, " ")) # 3. 居中对齐
print("|%s|" % my_str.center(20, " ")) 去除空白字符
拆分和连接
my_str = "hello world\nhello zfx" print(my_str) # 1. 拆分字符串 str_list = my_str.split()
print(str_list) # 2. 字符串拼接 result = " ".join(str_list)
print(result)
字符串切片
- 切片 方法适用于 字符串、列表、元组
- 切片 使用 索引值 来限定范围,从一个大的 字符串 中 切出 小的 字符串
- 列表 和 元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
- 字典 是一个 无序 的集合,是使用 键值对 保存数据
- 语法:
字符串[开始索引:结束索引:步长]
需要注意的地方:
- 指定的区间属于 左闭右开 型
[开始索引, 结束索引)
=>开始索引 >= 范围 < 结束索引
- 从
起始
位开始,到结束
位的前一位 结束(不包含结束位本身)
- 从
- 从头开始,开始索引 数字可以省略,冒号不能省略
- 到末尾结束,结束索引 数字可以省略,冒号不能省略
- 步长默认为
1
,如果连续切片,数字和冒号都可以省略
索引的顺序和倒叙
- 在 Python 中不仅支持 顺序索引,同时还支持 倒序索引
- 所谓倒序索引就是 从右向左 计算索引
- 最右边的索引值是 -1,依次递减
- 例子练习:
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]) # 7. 截取从 2 ~ 末尾 - 1 的字符串
print(num_str[2:-1]) # 8. 截取字符串末尾两个字符
print(num_str[-2:]) # 9. 字符串的逆序(面试题)
print(num_str[::-1])
--本文完--
python基础学习(十)字符串的更多相关文章
- Python基础学习之字符串(1)
字符串 由字符组成的序列,即字符串. 1.基本字符串操作 所有标准的序列操作(索引.切片.乘法.判断成员资格.求长度.取最小值和最大值)对字符串同样适用: >>> website=' ...
- python基础学习十 logging模块详细使用【转载】
很多程序都有记录日志的需求,并且日志中包含的信息既有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,主要用于输出 ...
- python基础学习一 字符串的相关操作
python的字符串 在python中,字符串是以unicode编码的,所以python的字符串支持多语言 对于单个字符的编码,python提供了ord()函数获取字符的整数表示,chr()函数是把编 ...
- python基础学习笔记——字符串方法
索引和切片: 索引:取出数组s中第3个元素:x=s[2] 切片:用极少的代码将数组元素按需处理的一种方法.切片最少有1个参数,最多有3个参数,演示如下: 我们假设下面所用的数组声明为array=[2, ...
- Python基础学习:字符串认知与应用
一.len() 家电维修 len:全写是length,是计算容量的函数:例如a="1234",len(a)=4 如果是中文字符,比如a="哈",len(a)= ...
- Python基础学习三 字符串
字符串方法 slit = ['a', 'b', 'c', 'd', 'f', 'g'] s2='hhhhhhhhhh' tu = (1,2,3,4,5) d={'name':'nnn','age':1 ...
- Python基础学习之字符串(2)
字符串常用方法 1.s.capitalize() 描述:返回字符串s的副本,并将首字符变为大写. 示例: >>> s='yesterday when I was Young!' &g ...
- Python基础学习_01字符串的拼接(字符串的格式化输出)
# 字符串的拼接 ---字符串的格式化输出 # 字符串的拼接 ---字符串的格式化输出 name = input("name:") age = input("age:&q ...
- python基础学习之字符串的功能方法
字符串:str的功能记录(该类需要记忆) .isdecimal():意思是判断是否由数字构成,仅仅可以解析"123" a='123' d=a.isdecimal() p ...
- Day1 Python基础学习
一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...
随机推荐
- 吴恩达机器学习笔记19-过拟合的问题(The Problem of Overfitting)
到现在为止,我们已经学习了几种不同的学习算法,包括线性回归和逻辑回归,它们能够有效地解决许多问题,但是当将它们应用到某些特定的机器学习应用时,会遇到过拟合(over-fitting)的问题,可能会导致 ...
- java 堆 栈 方法区的简单分析
Java里的堆(heap)栈(stack)和方法区(method) 基础数据类型直接在栈空间分配, 方法的形式参数,直接在栈空间分配,当方法调用完成后从栈空间回收. 引用数据类型,需要用new来创 ...
- 《http权威指南》读书笔记9
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 玩转Python图片处理 (OpenCV-Python )
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它轻量级而且高效——由一系列 C 函数和少量 C++ 类 ...
- spark面试总结3
Spark core面试篇03 1.Spark使用parquet文件存储格式能带来哪些好处? 1) 如果说HDFS 是大数据时代分布式文件系统首选标准,那么parquet则是整个大数据时代文件存储格式 ...
- Java提高(5)---map集合排序
map集合排序 这篇文章讲的不仅仅是map排序,比如把对象按某一属性排序,它都可以解决这些问题. 比如,有N个对象,每个对象有个属性就是成绩,成绩分:优秀,良好,合格.那我们如何按照成绩的好坏进行排序 ...
- Nginx编译安装lua-nginx-module
lua-nginx-module 模块可以将Lua的强大功能嵌入NGINX服务器. 下载Nginx源码 如果已安装Nginx,需要查看当前安装版本的编译参数: $ /usr/local/nginx/s ...
- Elasticsearch实践(三):Mapping
版本:Elasticsearch 6.2.4. Mapping类似于数据库中的表结构定义,主要作用如下: 定义Index下字段名(Field Name) 定义字段的类型,比如数值型,字符串型.布尔型等 ...
- PHP源码阅读(一):str_split函数
注:源码版本:php5.6.33. 函数简介 str_split 原型: array str_split ( string $string [, int $split_length = 1 ] ) 说 ...
- Chapter 4 Invitations——6
The snow washed away for good after that one dangerously icy day. 在危险的冰天雪地之后,这场雪洗走了很多. Mike was disa ...