前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python基础之字符串

Python基础之字符串

作者头像
py3study
发布2020-01-15 23:05:01
6830
发布2020-01-15 23:05:01
举报
文章被收录于专栏:python3python3

初识字符串

字符串的认识

首先,我们先认识下什么是字符串:

代码语言:javascript
复制
# 定义字符串
t_str1 = "Hello World"
t_str2 = "asdfghh"

print(t_str1)  # Hello World
print(t_str2)  # asdfghh

字符串的介绍

  • 字符串就是一串字符,是编程语言汇总表示文本的数据类型;
  • 在Python中可以使用一对双引号或者一对单引号定义一个字符串;
  • 字符串内部如果需要使用",可以使用'定义字符串;同理,单引号也是;除此之外,也可以用\转译单引号双引号;
  • 字符串的索引从0开始,可以用索引获取一个字符串的指定位置的字符;
  • 还可以用for遍历字符串中的每一个字符。

字符串的定义语法

代码语言:javascript
复制
变量名 = "一串字符"
eg:
t_str1 = "Hello World"
t_str2 = "asdfgh"
t_str3 = '他说:"你好呀!"'

字符串的操作函数

查看字符串操作函数

在ipython交互式下,先定义一个空字符串,然后输入 空字符. 按下tab键,即可查看;

代码语言:javascript
复制
In [1]: t_str = ""    

In [2]: t_str.
t_str.capitalize    t_str.isidentifier  t_str.rindex
t_str.casefold      t_str.islower       t_str.rjust
t_str.center        t_str.isnumeric     t_str.rpartition
t_str.count         t_str.isprintable   t_str.rsplit
t_str.encode        t_str.isspace       t_str.rstrip
t_str.endswith      t_str.istitle       t_str.split
t_str.expandtabs    t_str.isupper       t_str.splitlines
t_str.find          t_str.join          t_str.startswith
t_str.format        t_str.ljust         t_str.strip
t_str.format_map    t_str.lower         t_str.swapcase
t_str.index         t_str.lstrip        t_str.title
t_str.isalnum       t_str.maketrans     t_str.translate
t_str.isalpha       t_str.partition     t_str.upper
t_str.isdecimal     t_str.replace       t_str.zfill
t_str.isdigit       t_str.rfind

字符串所有的操作函数我们可以看上面。

字符串操作函数分类

1.判断类型

方法

说明

string.isspace()

如果string只包含空格,则返回True

string.isalnum()

如果string至少包含一个字符且所有字符都是字母或者数字则返回True

string.isalpha()

如果string至少有一个字符并且所有字符都是字母则返回True

string.isdecimal()

如果string只包含数字则返回True,全角数字

string.isdigit()

如果string只包含数字则返回True,全角数字,(1),\u00b2

string.isnumeric()

如果string只包含数字则返回True,全角数字,(1),\u00b2,汉字数字

string.istitle()

如果string是标题化的(每个单词的首字母大写)则返回True

string.islower()

如果string中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,True

string.isupper

如果string中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,True

2.查找和替换

方法

说明

string.startswitj(str)

检查字符串是否以str开头,是则返回True

string.endswith(str)

检查字符串是否以str结尾,是则返回True

string.find(str,start=0,end=len(string))

检查str是否包含在string中,如果start和end指定范围,则检查是否包含在指定范围内,如果是则返回开始的索引值,否则返回-1

string.rfind(str,start=0,end=len(string))

类似于find()函数,不过是从右边开始查找

string.index(str,start=0,end=len(string))

和find()方法类似,只不过如果str不再string中会报错

string.rindex(str,start=0,end=len(string))

类似于index(),不过是从右边开始

string.replace(oldstr,newstr,num=string.count(old))

把string中的oldstr替换成newstr,如果num指定,则替换不超过num次

3.大小写与转换

方法

说明

string.capitalize()

把字符串的第一个字符大写

string.title()

把字符串的每个单词首字母大写

string.lower()

转换string中的所有大写字符转换为小写

string.upper()

转换string中的所有小写字母转换为大写

string.swapcase()

翻转string中的大小写

4.文本对齐

方法

说明

string.ljust(width)

返回一个原字符串左对齐,并使用空格填充至长度width的新字符

string.rjust(width)

返回一个原字符串右对齐,并使用空格填充至长度width的新字符

string.center(width)

返回一个原字符串居中,并使用空格填充至长度width的新字符

5.去除空白字符

方法

说明

string.lstrip()

截掉string左边(开始)的空白字符

string.rstrip()

截掉string右边(末尾)的空白字符

string.strip()

截掉string左右两边的空白字符

6.拆分和连接

方法

说明

string.partition(str)

把字符串string分成一个3元素的元组(str前面,str,str后面)

string.rpartition(str)

类似于partition()函数,不过是从右边开始查找

string.split(str="".num)

以str为分隔符切片string,如果num有指定值,则仅分隔num+1个子字符串,str默认包含'\r','\t','\n'和空格

string.splitlines()

按照行('\r','\t','\n')分隔,返回一个包含各行作为元素的列表

string.join(seq)

以string作为分隔符,将seq中的所有元素(的字符串表示)合并为一个新的字符串

字符串操作实操

字符串统计操作

代码语言:javascript
复制
t_str = "hello world hello python"

# 1.统计字符串长度
print(len(t_str))  # 24

# 2.统计某一个子字符串出现的次数
print(t_str.count("hel"))  # 2
print(t_str.count("abc"))  # 0

# 3.某一个子字符串出现的位置
print(t_str.index("llo"))  # 2
# 如果子字符串不存在,会报错
# print(t_str.index("abc"))

判断实操

示例1

代码语言:javascript
复制
t_str = "    \t\n"

print(t_str.isspace())  # True

示例2

代码语言:javascript
复制
# 判断字符串中是否只包含数字
str1 = "1"

print(str1)

print(str1.isdecimal())
print(str1.isdigit())
print(str1.isnumeric())

示例3

代码语言:javascript
复制
# 判断字符串中是否只包含数字
str2 = "1.1"

print(str2.isdecimal())
print(str2.isdigit())
print(str2.isnumeric())

# False
# False
# False

由此可见,这几种函数都不能判断小数

示例4

代码语言:javascript
复制
str3 = "(1)"

print(str3)
print(str3.isdecimal())
print(str3.isdigit())
print(str3.isnumeric())

# (1)
# False
# True
# True

提一下,本来结果应该是如上的,但可能是因为自己打的括号不对的原因,输出全是False

示例5 unicode 字符串

代码语言:javascript
复制
str4 = "\u00b2"

print(str4)
print(str4.isdecimal())
print(str4.isdigit())
print(str4.isnumeric())

# ²
# False
# True
# True

示例6

代码语言:javascript
复制
str5 = "一百"

print(str5)
print(str5.isdecimal())
print(str5.isdigit())
print(str5.isnumeric())

# 一百
# False
# False
# True

字符串的查找与替换实操

代码语言:javascript
复制
t_str = "hello world"

print(t_str.startswith("hel"))  # True
print(t_str.startswith("Hel"))  # False

print(t_str.endswith("ld"))  # True

# index也可以用来查找字符串,但index指定的字符串如果不存在,会报错;find不会报错,只会返回-1
print(t_str.find("llo"))  # 2
print(t_str.find("abc"))  # -1

# replace方法执行完成后,会返回一个新的字符串,不改变原来的字符串
new_str = t_str.replace("world", "python")
print(new_str)  # hello python
print(t_str)  # hello world

文本对齐

文本居中对齐默认英文空格填充

注意,如果没有指定填充内容,文本默认以英文空格进行填充

代码语言:javascript
复制
# 要求,顺序并且居中对齐输出以下内容

poem = ["早春呈水部张十八员外", "韩愈", "天街小雨润如酥", "草色遥看近却无", "最是一年春好处", "绝胜烟柳满皇都"]

for poem_str in poem:
    print("|%s|" % poem_str.center(10))

# 输出结果
"""
|    早春    |
|    韩愈    |
| 天街小雨润如酥  |
| 草色遥看近却无  |
| 最是一年春好处  |
| 绝胜烟柳满皇都  |
"""
文本居中对齐中文空格填充

注意,中文空格要切换输入法到全角

代码语言:javascript
复制
poem = ["早春", "韩愈", "天街小雨润如酥", "草色遥看近却无", "最是一年春好处", "绝胜烟柳满皇都"]

for poem_str in poem:
    print("|%s|" % poem_str.center(10, " "))

# 输出结果
"""
|    早春    |
|    韩愈    |
| 天街小雨润如酥  |
| 草色遥看近却无  |
| 最是一年春好处  |
| 绝胜烟柳满皇都  |
"""
文本左对齐

注意,如果是中文要对齐,记得是圆角,不再赘述

代码语言:javascript
复制
poem = ["早春", "韩愈", "天街小雨润如酥", 
        "草色遥看近却无", "最是一年春好处", "绝胜烟柳满皇都"]

for poem_str in poem:
    print("|%s|" % poem_str.ljust(10, " "))

"""
|早春        |
|韩愈        |
|天街小雨润如酥   |
|草色遥看近却无   |
|最是一年春好处   |
|绝胜烟柳满皇都   |
"""
文本右对齐
代码语言:javascript
复制
只需将print("|%s|" % poem_str.ljust(10, " ")) 换成rjust即可,不演示。

strip 去除空白字符

代码语言:javascript
复制
    # 要求,顺序并且居中对齐输出以下内容

poem = ["\t\n早春", "韩愈", "天街小雨润如酥", "草色遥看近却无\t\n", 
"最是一年春好处", "绝胜烟柳满皇都"]

for poem_str in poem:
    # 先使用strip方法去除字符串中的空白字符
    # 再使用center方法居中显示文本
    print("|%s|" % poem_str.strip().center(10, " "))
"""
|    早春    |
|    韩愈    |
| 天街小雨润如酥  |
| 草色遥看近却无  |
| 最是一年春好处  |
| 绝胜烟柳满皇都  |
"""

字符串拆分和拼接 split join

代码语言:javascript
复制
# 要求,将字符串中的空白字符全部去除,再使用" "作为分隔符,拼接成一个整齐的字符串

poem_str = "\t\n早春\t韩愈\t\n天街小雨润如酥\t草色遥看近却无\t\n最是一年春好处\t绝胜烟柳满皇都\t\n"
print(poem_str)

# 1.拆分字符串
poem_list = poem_str.split()
print(poem_list)
# 2.合并字符串
result = " ".join(poem_list)
print(result)

"""
早春  韩愈  
天街小雨润如酥 草色遥看近却无 
最是一年春好处 绝胜烟柳满皇都 

['早春', '韩愈', '天街小雨润如酥', '草色遥看近却无', '最是一年春好处', '绝胜烟柳满皇都']
早春 韩愈 天街小雨润如酥 草色遥看近却无 最是一年春好处 绝胜烟柳满皇都
"""

字符串的切片

切片语法和注意

切片方法适用于 字符串,列表,元组

  • 切片使用索引值来限定范围,从一个大的字符串中切出小的字符串;
  • 列表和元组都是有序的集合,都能够通过索引值获取到对应的数据;
  • 字典是一个无序的集合,使用用键值对保存数据;

比如我们对于一个"python"字符串, 顺序是0 1 2 3 4 5;倒序是-1 -2 ...;

切片语法

代码语言:javascript
复制
字符串[开始索引:结束索引:步长]

注意:

  1. 指定的区间属于左闭右开型[开始索引,结束索引) --> 开始索引 >= 范围 < 结束索引;即从其实位开始,到结束位的前一位结束(不包含结束位本身)。
  2. 从头开始,开始索引数字可以省略,冒号不能省略;
  3. 到末尾结束,结束索引 数字可以省略,冒号不能省略;
  4. 步长为1,如果连续切片,数字和冒号都可以省略。

切片实操

现在有一个num_str="0123456789",请完成以下操作:

代码语言:javascript
复制
1.截取从 2-5 位置的字符串
2.截取从2-末尾的字符串
3.截取从 开始-5 位置的字符串
4.截取完整的字符串
5.从开始位置,每隔一个字符截取字符串
6.从索引1开始,没隔一个取一个
7.截取从 2~ 末尾-1 的字符串
8.截取字符串末尾两个字符
9.字符串的逆序

答案:

代码语言:javascript
复制
1.num[2:6]
2.num[2:]
3.num[0:6]
3.num[:6]
4.num[:]
5.num[::2]
6.num[1::2]
7.num[2:-1]
8.num[-2:]
9.num[-1::-1]
9.num[::-1]

num[0::-1]的结果:"0"

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 初识字符串
    • 字符串的认识
      • 字符串的介绍
        • 字符串的定义语法
        • 字符串的操作函数
          • 查看字符串操作函数
            • 字符串操作函数分类
              • 1.判断类型
              • 2.查找和替换
              • 3.大小写与转换
              • 4.文本对齐
              • 5.去除空白字符
              • 6.拆分和连接
          • 字符串操作实操
            • 字符串统计操作
              • 判断实操
                • 字符串的查找与替换实操
                  • 文本对齐
                    • 文本居中对齐默认英文空格填充
                    • 文本居中对齐中文空格填充
                    • 文本左对齐
                    • 文本右对齐
                  • strip 去除空白字符
                    • 字符串拆分和拼接 split join
                    • 字符串的切片
                      • 切片语法和注意
                        • 切片实操
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档