IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 【Python】string 标准库使用盲区整理 -> 正文阅读

[Python知识库]【Python】string 标准库使用盲区整理

string 常见字符串操作,标准库使用盲区整理,面试必问

欢迎关注微信公众号 【全栈笔记本】知识盲区整理,面试必备,学习复习专用

在这里插入图片描述

代码详解

001.按照位置 index 打印

print("{0} {1} {0}".format('全栈笔记本', 'Python 核心编程'))

输出结果为
在这里插入图片描述

002.string.format 格式化字符串的用法,其实内部调用了 vformat 包装器

print("Chinese:{chinese}, English:{english}".format(english="core-programming", chinese="核心编程"))

输出结果为
在这里插入图片描述

003.string.format 格式化字符串与字典结合

# 上述可以修改为通过字典设置 format 下的参数
dist = {"english": "core-programming", "chinese": "核心编程"}
# 此处注意 dist 前需要加上两个“星号” 用于取 value, 同理一个“星号”用于取 key
 print("Chinese:{chinese}, English:{english}".format(**dist))

输出结果为
在这里插入图片描述

004.string.format 格式化字符串与类属性结合

# format 也可以传入对象
format_value = FormatValue("核心编程 面试解析")
print('全栈笔记本 Python {0.string}'.format(format_value))

输出结果为
在这里插入图片描述

005.循环遍历 string 并返回一个可迭代的 tuple 元组

str_tmp = "全栈笔记本 Python {核心编程} {面试:详解}"
str_tuple = string.Formatter().parse(str_tmp)
for i, v in enumerate(str_tuple):
    print(i, v)

输出结果为
在这里插入图片描述

006.左对齐文本以及指定宽度

print('{:<30}'.format('全栈笔记本 Python 核心编程'))

输出结果为
在这里插入图片描述

007.右对齐文本以及指定宽度

print('{:>30}'.format('全栈笔记本 Python 核心编程'))

输出结果为
在这里插入图片描述

008.中央对齐文本以及指定宽度

print('{:^30}'.format('全栈笔记本 Python 核心编程'))

输出结果为
在这里插入图片描述

009.中间齐文本并填充以及指定宽度

print('{:*^30}'.format('全栈笔记本 Python 核心编程'))

输出结果为
在这里插入图片描述

010.使用逗号作为千位分隔符

print('{:,}'.format(1234567890))

输出结果为
在这里插入图片描述

011.表示百分数,最后一位四舍五入

print('全栈笔记本 Python, 输出百分数: {:.4%}'.format(2 / 3))

输出结果为
在这里插入图片描述

012.时间日期格式化

date = datetime.datetime(2021, 11, 20, 23, 9, 58)
print('{:%Y-%m-%d %H:%M:%S}'.format(date))

输出结果为
在这里插入图片描述

013.拆分字符串中的英语单词,按照空格开分割

print(str.split('全栈笔记本 Python core programming'))

输出结果为
在这里插入图片描述

014.将字符串转为首字母大写

print(str.capitalize('python core programming'))

输出结果为
在这里插入图片描述

015.截取字符串

str1 = '全栈笔记本'
str2 = "Python core programming"
print("str1[0]: ", str1[0])
print("str2[1:5]: ", str2[3:7])

输出结果为
在这里插入图片描述

016.拼接字符串

str1 = '全栈笔记本 '
str2 = "Python core programming"
print(str1 + str2)

输出结果为
在这里插入图片描述

017.重复输出字符串

str1 = 'python core programming '
print(str1*2)

输出结果为
在这里插入图片描述

018.计算字符串出现次数

str1 = "全栈笔记本 Python core programming"
str2 = 'm'
print("str1.count('m') : ", str1.count(str2))

输出结果为
在这里插入图片描述

019.字符串编解码

str1 = "全栈笔记本 Python core programming"
str1_utf8 = str1.encode("UTF-8")
str1_gbk = str1.encode("GBK")

print(str1)

print("UTF-8 编码:", str1_utf8)
print("GBK 编码:", str1_gbk)

print("UTF-8 解码:", str1_utf8.decode('UTF-8', 'strict'))
print("GBK 解码:", str1_gbk.decode('GBK', 'strict'))

输出结果为
在这里插入图片描述

020.endswith 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回 True,否则返回 False

str1 = '全栈笔记本 Python core programming!!'
str1_end_flag = '!!'
print(str1.endswith(str1_end_flag))
print(str1.endswith(str1_end_flag, 20))
print(str1.endswith(str1_end_flag, 0, 10))

输出结果为
在这里插入图片描述

021.expandtabs 方法把 \t 转换为指定空格,默认为8

str1 = '全栈笔记本\tPython\tcore\tprogramming!!'
print('使用 6 个空格:', str1.expandtabs(4))

输出结果为
在这里插入图片描述

022.find 方法查找字符串中指定子串,成功返回 index 位置,失败返回 -1

search_str = '全栈笔记本 Python core programming!!'
target_str = '!!'
print(search_str.find(target_str))
print(search_str.find(target_str, 20))
print(search_str.find(target_str, 0, 10))

输出结果为
在这里插入图片描述

023.index 方法查找字符串中指定子串,成功返回 index 位置,失败返回 -1,与 find 的区别为如果没有找到则报错

search_str = '全栈笔记本 Python core programming!!'
target_str = '!!'
print(search_str.index(target_str))
print(search_str.index(target_str, 20))
# print(search_str.index(target_str, 0, 10))

输出结果为
在这里插入图片描述

024.isalnum 方法检测字符串是否由字母和数字组成

str1 = '全栈笔记本 Python core programming'
print(str1.isalnum())
str1 = '1Python2core3programming'
print(str1.isalnum())

输出结果为
在这里插入图片描述

025.isalpha 方法检测字符串是否只由字母或文字组成

str1 = '全栈笔记本Python'
print(str1.isalpha())
str1 = '1Python2core3programming'
print(str1.isalpha())

输出结果为
在这里插入图片描述

026.isdigit 方法检测字符串是否只由数字组成

str1 = '全栈笔记本Python'
print(str1.isdigit())
str1 = '123'
print(str1.isdigit())

输出结果为
在这里插入图片描述

027.islower 方法检测字符串是否由小写字母组成

str1 = '全栈笔记本Python'
print(str1.islower())
str1 = '全栈笔记本python'
print(str1.islower())

输出结果为
在这里插入图片描述

028.isnumeric 方法检测字符串是否只由数字组成,数字可以是: Unicode 数字,全角数字(双字节),罗马数字,汉字数字

str1 = '全栈笔记本Python123'
print(str1.isnumeric())
str1 = '123'
print(str1.isnumeric())

输出结果为
在这里插入图片描述

029.isspace 方法检测字符串是否只由空白字符组成

str1 = ' '
print(str1.isspace())
str1 = '全栈笔记本 Python'
print(str1.isspace())

输出结果为
在这里插入图片描述

030.istitle 方法检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写

str1 = '全栈笔记本 Python Core Programming'
print(str1.istitle())
str1 = '全栈笔记本 Python core programming'
print(str1.istitle())

输出结果为
在这里插入图片描述

031.title 方法返回"标题化"的字符串,就是说所有单词的首个字母转化为大写,其余字母均为小写

str1 = 'python core programming'
print(str1.title())

输出结果为
在这里插入图片描述

032.isupper 方法检测字符串中所有的字母是否都为大写

str1 = '全栈笔记本 Python Core Programming'
print(str1.isupper())
str1 = '全栈笔记本 PYTHON CORE PROGRAMMING'
print(str1.isupper())

输出结果为
在这里插入图片描述

033.upper 方法将字符串中的小写字母转为大写字母

str1 = 'python core programming'
rint(str1.upper())

输出结果为
在这里插入图片描述

034.join 方法用于将序列中的元素以指定的字符连接生成一个新的字符串

str1 = '-'
str2 = '全栈笔记本 Python Core Programming'
print(str1.join(str2))

输出结果为
在这里插入图片描述

035.len 方法返回对象(字符、列表、元组等)长度或项目个数

str1 = '全栈笔记本 Python Core Programming'
print(len(str1))

输出结果为
在这里插入图片描述

036.ljust 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串

str1 = '全栈笔记本 Python Core Programming'
print(str1.ljust(50, '*'))

输出结果为
在这里插入图片描述

037.rjust 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串

str1 = '全栈笔记本 Python Core Programming'
print(str1.rjust(50, '*'))

输出结果为
在这里插入图片描述

038.lower 方法转换字符串中所有大写字符为小写

str1 = '全栈笔记本 PYTHON CORE PROGRAMMING'
print(str1.lower())

输出结果为
在这里插入图片描述

039.lstrip 方法用于截掉字符串左边的空格或指定字符

str1 = '          全栈笔记本 python core programming'
print(str1.lstrip())

输出结果为
在这里插入图片描述

040.max 方法返回字符串中最大的字母

min 方法返回字符串中最小的字母

str1 = 'python core programming'
print(max(str1))
print(min(str1))

输出结果为
在这里插入图片描述

041.replace 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次

str1 = '全栈笔记本 python core programming'
print(str1.replace("python", "cpp", 3))

输出结果为
在这里插入图片描述

042.rfind 返回字符串最后一次出现的位置,如果没有匹配项则返回-1

str1 = '全栈笔记本 python core programming'
print(str1.rfind("python"))

输出结果为
在这里插入图片描述

043.rindex 返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数[beg:end]设置查找的区间

str1 = '全栈笔记本 python core programming'
print(str1.rindex("python"))

输出结果为
在这里插入图片描述

044.rstrip 删除 string 字符串末尾的指定字符,默认为空白符,包括空格、换行符、回车符、制表符

str1 = '全栈笔记本 python core programming\t'
print(str1.rstrip())

输出结果为
在这里插入图片描述

045.split 通过指定分隔符对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串

str1 = '全栈笔记本 python core programming'
print(str1.split(" "))

输出结果为
在这里插入图片描述

046.splitlines() 按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符

str1 = '全栈笔记本\rpython\ncore\tprogramming'
print(str1.splitlines())

输出结果为
在这里插入图片描述

047.startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查

str1 = 'python core programming'
print(str1.startswith("python"))

输出结果为
在这里插入图片描述

048.strip 方法用于移除字符串头尾指定的字符(默认为空格)或字符序列

str1 = 'python core programming'
print(str1.strip("python"))

输出结果为
在这里插入图片描述

049.swapcase 方法用于对字符串的大小写字母进行转换,即将大写字母转换为小写字母,小写字母会转换为大写字母

str1 = 'python core PROGRAMMING'
print(str1.swapcase())

输出结果为
在这里插入图片描述

050.zfill 方法返回指定长度的字符串,原字符串右对齐,前面填充0

str1 = 'python core programming'
print(str1.zfill(50))

输出结果为
在这里插入图片描述

051.isdecimal() 方法检查字符串是否只包含十进制字符。这种方法只存在于unicode对象

str1 = 'python core programming'
print(str1.isdecimal())
str1 = '0123456789'
print(str1.isdecimal())

输出结果为
在这里插入图片描述

附件:全篇代码

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Author: lei.si
# Date: 2021年11月20日
# Description: string 常见字符串操作

import string
import datetime


class FormatValue(object):
    def __init__(self, string):
        self.string = string


if __name__ == '__main__':
    # 按照位置 index 打印
    print("{0} {1} {0}".format('全栈笔记本', 'Python 核心编程'))

    # string.format 格式化字符串的用法,其实内部调用了 vformat 包装器
    print("Chinese:{chinese}, English:{english}".format(english="core-programming", chinese="核心编程"))

    # 上述可以修改为通过字典设置 format 下的参数
    dist = {"english": "core-programming", "chinese": "核心编程"}
    # 此处注意 dist 前需要加上两个“星号” 用于取 value, 同理一个“星号”用于取 key
    print("Chinese:{chinese}, English:{english}".format(**dist))

    # format 也可以传入对象
    format_value = FormatValue("核心编程 面试解析")
    print('全栈笔记本 Python {0.string}'.format(format_value))

    # 循环遍历 string 并返回一个可迭代的 tuple 元组
    str_tmp = "全栈笔记本 Python {核心编程} {面试:详解}"
    str_tuple = string.Formatter().parse(str_tmp)
    for i, v in enumerate(str_tuple):
        print(i, v)

    # 左对齐文本以及指定宽度
    print('{:<30}'.format('全栈笔记本 Python 核心编程'))
    # 右对齐文本以及指定宽度
    print('{:>30}'.format('全栈笔记本 Python 核心编程'))
    # 中央对齐文本以及指定宽度
    print('{:^30}'.format('全栈笔记本 Python 核心编程'))
    # 中间齐文本并填充以及指定宽度
    print('{:*^30}'.format('全栈笔记本 Python 核心编程'))

    # 使用逗号作为千位分隔符
    print('{:,}'.format(1234567890))

    # 表示百分数,最后一位四舍五入
    print('全栈笔记本 Python, 输出百分数: {:.4%}'.format(2 / 3))

    # 时间日期格式化
    date = datetime.datetime(2021, 11, 20, 23, 9, 58)
    print('{:%Y-%m-%d %H:%M:%S}'.format(date))

    # 拆分字符串中的英语单词,按照空格开分割
    print(str.split('全栈笔记本 Python core programming'))

    # 将字符串转为首字母大写
    print(str.capitalize('python core programming'))

    # 截取字符串
    str1 = '全栈笔记本'
    str2 = "Python core programming"
    print("str1[0]: ", str1[0])
    print("str2[1:5]: ", str2[3:7])

    # 拼接字符串
    str1 = '全栈笔记本 '
    str2 = "Python core programming"
    print(str1 + str2)

    # 重复输出字符串
    str1 = 'python core programming '
    print(str1*2)

    # 计算字符串出现次数
    str1 = "全栈笔记本 Python core programming"
    str2 = 'm'
    print("str1.count('m') : ", str1.count(str2))

    # 字符串编解码
    str1 = "全栈笔记本 Python core programming"
    str1_utf8 = str1.encode("UTF-8")
    str1_gbk = str1.encode("GBK")

    print(str1)

    print("UTF-8 编码:", str1_utf8)
    print("GBK 编码:", str1_gbk)

    print("UTF-8 解码:", str1_utf8.decode('UTF-8', 'strict'))
    print("GBK 解码:", str1_gbk.decode('GBK', 'strict'))

    # endswith 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回 True,否则返回 False
    str1 = '全栈笔记本 Python core programming!!'
    str1_end_flag = '!!'
    print(str1.endswith(str1_end_flag))
    print(str1.endswith(str1_end_flag, 20))
    print(str1.endswith(str1_end_flag, 0, 10))

    # expandtabs 方法把 \t 转换为指定空格,默认为8
    str1 = '全栈笔记本\tPython\tcore\tprogramming!!'
    print('使用 6 个空格:', str1.expandtabs(4))

    # find 方法查找字符串中指定子串,成功返回 index 位置,失败返回 -1
    search_str = '全栈笔记本 Python core programming!!'
    target_str = '!!'
    print(search_str.find(target_str))
    print(search_str.find(target_str, 20))
    print(search_str.find(target_str, 0, 10))

    # index 方法查找字符串中指定子串,成功返回 index 位置,失败返回 -1
    # 与 find 的区别为如果没有找到则报错
    search_str = '全栈笔记本 Python core programming!!'
    target_str = '!!'
    print(search_str.index(target_str))
    print(search_str.index(target_str, 20))
    # print(search_str.index(target_str, 0, 10))

    # isalnum 方法检测字符串是否由字母和数字组成
    str1 = '全栈笔记本 Python core programming'
    print(str1.isalnum())
    str1 = '1Python2core3programming'
    print(str1.isalnum())

    # isalpha 方法检测字符串是否只由字母或文字组成
    str1 = '全栈笔记本Python'
    print(str1.isalpha())
    str1 = '1Python2core3programming'
    print(str1.isalpha())

    # isdigit 方法检测字符串是否只由数字组成
    str1 = '全栈笔记本Python'
    print(str1.isdigit())
    str1 = '123'
    print(str1.isdigit())

    # islower 方法检测字符串是否由小写字母组成
    str1 = '全栈笔记本Python'
    print(str1.islower())
    str1 = '全栈笔记本python'
    print(str1.islower())

    # isnumeric 方法检测字符串是否只由数字组成,数字可以是: Unicode 数字,全角数字(双字节),罗马数字,汉字数字
    str1 = '全栈笔记本Python123'
    print(str1.isnumeric())
    str1 = '123'
    print(str1.isnumeric())

    # isspace 方法检测字符串是否只由空白字符组成
    str1 = ' '
    print(str1.isspace())
    str1 = '全栈笔记本 Python'
    print(str1.isspace())

    # istitle 方法检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写
    str1 = '全栈笔记本 Python Core Programming'
    print(str1.istitle())
    str1 = '全栈笔记本 Python core programming'
    print(str1.istitle())

    # title 方法返回"标题化"的字符串,就是说所有单词的首个字母转化为大写,其余字母均为小写
    str1 = 'python core programming'
    print(str1.title())

    # isupper 方法检测字符串中所有的字母是否都为大写
    str1 = '全栈笔记本 Python Core Programming'
    print(str1.isupper())
    str1 = '全栈笔记本 PYTHON CORE PROGRAMMING'
    print(str1.isupper())

    # upper 方法将字符串中的小写字母转为大写字母
    str1 = 'python core programming'
    print(str1.upper())

    # join 方法用于将序列中的元素以指定的字符连接生成一个新的字符串
    str1 = '-'
    str2 = '全栈笔记本 Python Core Programming'
    print(str1.join(str2))

    # len 方法返回对象(字符、列表、元组等)长度或项目个数
    str1 = '全栈笔记本 Python Core Programming'
    print(len(str1))

    # ljust 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串
    # rjust 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串
    str1 = '全栈笔记本 Python Core Programming'
    print(str1.ljust(50, '*'))
    print(str1.rjust(50, '*'))

    # lower 方法转换字符串中所有大写字符为小写
    str1 = '全栈笔记本 PYTHON CORE PROGRAMMING'
    print(str1.lower())

    # lstrip 方法用于截掉字符串左边的空格或指定字符
    str1 = '          全栈笔记本 python core programming'
    print(str1.lstrip())

    # max 方法返回字符串中最大的字母
    # min 方法返回字符串中最小的字母
    str1 = 'python core programming'
    print(max(str1))
    print(min(str1))

    # replace 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次
    str1 = '全栈笔记本 python core programming'
    print(str1.replace("python", "cpp", 3))

    # rfind 返回字符串最后一次出现的位置,如果没有匹配项则返回-1
    str1 = '全栈笔记本 python core programming'
    print(str1.rfind("python"))

    # rindex 返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数[beg:end]设置查找的区间
    str1 = '全栈笔记本 python core programming'
    print(str1.rindex("python"))

    # rstrip 删除 string 字符串末尾的指定字符,默认为空白符,包括空格、换行符、回车符、制表符
    str1 = '全栈笔记本 python core programming\t'
    print(str1.rstrip())

    # split 通过指定分隔符对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串
    str1 = '全栈笔记本 python core programming'
    print(str1.split(" "))

    # splitlines() 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符
    str1 = '全栈笔记本\rpython\ncore\tprogramming'
    print(str1.splitlines())

    # startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查
    str1 = 'python core programming'
    print(str1.startswith("python"))

    # strip 方法用于移除字符串头尾指定的字符(默认为空格)或字符序列
    str1 = 'python core programming'
    print(str1.strip("python"))

    # swapcase 方法用于对字符串的大小写字母进行转换,即将大写字母转换为小写字母,小写字母会转换为大写字母
    str1 = 'python core PROGRAMMING'
    print(str1.swapcase())

    # zfill 方法返回指定长度的字符串,原字符串右对齐,前面填充0
    str1 = 'python core programming'
    print(str1.zfill(50))

    # isdecimal() 方法检查字符串是否只包含十进制字符。这种方法只存在于unicode对象
    str1 = 'python core programming'
    print(str1.isdecimal())
    str1 = '0123456789'
    print(str1.isdecimal())

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:17:56  更:2021-11-22 12:20:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:39:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码