【python入门】字符串处理

文章目录

  • 基本操作
  • 进阶操作


基本操作

Python 提供了多种方式来处理字符和字符串,以下是一些基本的字符处理方法,以及相应的代码示例:

  1. 字符串连接 (+ 操作符或 join() 方法)

    # 使用 + 操作符连接字符串
    str1 = "Hello"
    str2 = "World"
    result = str1 + " " + str2
    print(result)  # 输出: Hello World# 使用 join() 方法连接字符串列表
    list_of_strings = ["Hello", "World"]
    result = " ".join(list_of_strings)
    print(result)  # 输出: Hello World
    
  2. 字符串切片 ([:] 操作符)

    s = "Hello World"
    print(s[0:5])  # 输出: Hello
    print(s[6:])   # 输出: World
    
  3. 字符串长度 (len() 函数)

    s = "Hello World"
    print(len(s))  # 输出: 11
    
  4. 字符串查找 (find()index() 方法)

    s = "Hello World"
    print(s.find("World"))  # 返回索引 6
    print(s.index("o"))     # 返回索引 4
    
  5. 字符串替换 (replace() 方法)

    s = "Hello World"
    new_s = s.replace("World", "Python")
    print(new_s)  # 输出: Hello Python
    
  6. 字符串分割 (split() 方法)

    s = "Hello World"
    words = s.split()  # 默认以空格分割
    print(words)  # 输出: ['Hello', 'World']
    
  7. 字符串大小写转换 (upper(), lower(), title(), capitalize() 方法)

    s = "Hello World"
    print(s.upper())  # 输出: HELLO WORLD
    print(s.lower())  # 输出: hello world
    print(s.title())  # 输出: Hello World
    print(s.capitalize())  # 输出: Hello world
    
  8. 字符串去除空白 (strip(), rstrip(), lstrip() 方法)

    s = "   Hello World   "
    print(s.strip())    # 输出: 'Hello World'
    print(s.rstrip())   # 输出: '   Hello World'
    print(s.lstrip())   # 输出: 'Hello World   '
    
  9. 字符串格式化 (format() 方法或 f-string)

    name = "World"
    greeting = "Hello, {}!".format(name)
    print(greeting)  # 输出: Hello, World!# 使用 f-string (Python 3.6+)
    greeting = f"Hello, {name}!"
    print(greeting)  # 输出: Hello, World!
    
  10. 字符串遍历 (for 循环)

    s = "Hello"
    for char in s:print(char)
    # 输出:
    # H
    # e
    # l
    # l
    # o
    
  11. 检查字符串是否包含子串 (in 关键字)

    s = "Hello World"
    print("World" in s)  # 输出: True
    print("Python" in s) # 输出: False
    
  12. 字符串的不可变性 (尝试修改字符串)

    s = "Hello"
    # 下面的代码会抛出 TypeError,因为字符串是不可变的
    # s[0] = "h"
    

进阶操作

除了基本的字符串操作,Python 还提供了一些高级字符串处理功能,包括但不限于正则表达式、编码和解码、以及一些字符串的属性。以下是一些额外的字符串处理方法:

  1. 正则表达式 (re 模块)
    使用正则表达式可以进行复杂的字符串搜索、替换和分割操作。

    import re# 搜索匹配的字符串
    s = "Hello 123 World"
    match = re.search(r'\d+', s)
    if match:print(match.group())  # 输出: 123# 替换字符串
    new_s = re.sub(r'\d+', '999', s)
    print(new_s)  # 输出: Hello 999 World# 分割字符串
    words = re.split(r'\s+', s)
    print(words)  # 输出: ['Hello', '123', 'World']
    
  2. 字符串编码和解码 (encode()decode() 方法)
    字符串可以被编码成字节串,字节串也可以被解码成字符串。

    s = "Hello World"
    byte_s = s.encode('utf-8')  # 编码为 UTF-8 格式的字节串
    print(byte_s)  # 输出: b'Hello World'decoded_s = byte_s.decode('utf-8')  # 解码回字符串
    print(decoded_s)  # 输出: Hello World
    
  3. 字符串的布尔值 (bool() 函数)
    空字符串被视为 False,非空字符串被视为 True

    s1 = ""
    s2 = "Hello"
    print(bool(s1))  # 输出: False
    print(bool(s2))  # 输出: True
    
  4. 字符串的格式化 (format_map() 方法)
    使用字典进行格式化。

    person = {'name': 'Alice', 'age': 30}
    greeting = "My name is {name} and I am {age} years old."
    print(greeting.format_map(person))  # 输出: My name is Alice and I am 30 years old.
    
  5. 字符串的 zfill() 方法
    使用零填充字符串,使其达到指定长度。

    s = "12"
    print(s.zfill(5))  # 输出: '0012'
    
  6. 字符串的 is 方法 (isalnum(), isalpha(), isdigit(), isspace(), 等)
    检查字符串是否符合特定的条件。

    s = "Hello123"
    print(s.isalnum())  # 输出: True
    print(s.isalpha())  # 输出: False
    print(s.isdigit())  # 输出: False
    print("    ".isspace())  # 输出: True
    
  7. 字符串的 startswith()endswith() 方法
    检查字符串是否以指定的前缀或后缀开始或结束。

    s = "Hello World"
    print(s.startswith("He"))  # 输出: True
    print(s.endswith("ld"))   # 输出: False
    
  8. 字符串的 partition()rpartition() 方法
    分割字符串,返回一个元组,包含分割点前的字符串、分割点、分割点后的字符串。

    s = "test_string"
    part = s.partition('_s')
    print(part)  # 输出: ('test', '_s', 'tring')rpart = s.rpartition('t')
    print(rpart)  # 输出: ('s', 'tring', 'es')
    
  9. 字符串的 count() 方法
    计算子串在字符串中出现的次数。

    s = "Mississippi"
    print(s.count('i'))  # 输出: 4
    
  10. 字符串的 swapcase() 方法
    交换字符串中的大写字母和小写字母。

    s = "Hello World"
    print(s.swapcase())  # 输出: hELLO wORLD
    
  11. 字符串的 ljust(), rjust(), center() 方法
    对字符串进行左对齐、右对齐或居中对齐。

    s = "Hello"
    print(s.ljust(10))  # 输出: 'Hello    '
    print(s.rjust(10))  # 输出: '    Hello'
    print(s.center(10))  # 输出: '  Hello  '
    

这些方法提供了对字符串进行更细致控制的能力,使得在处理文本数据时更加灵活和强大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/35235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

零基础想学编程,选择哪一门语言更好就业?(非常详细)零基础入门到精通,收藏这一篇就够了_c#就业方向

编程语言的用途广泛,它们各自在不同的领域和应用场景中发挥着重要作用。 零基础初学者在选择编程语言时,可以从就业方向入手选择。 【一一帮助安全学习,所有资源获取处一一】 ①网络安全学习路线 ②20份渗透测试电子书 ③安全攻防357页笔记 …

Maven高级理解属性

属性 在这一章节内容中,我们将学习两个内容,分别是 属性版本管理 属性中会继续解决分模块开发项目存在的问题,版本管理主要是认识下当前主流的版本定义方式。 4.1 属性 4.1.1 问题分析 讲解内容之前,我们还是先来分析问题: …

pdf压缩,pdf压缩在线,pdf压缩在线网页版

当我们遇到PDF文件过大,需要压缩其容量大小时,通常是为了更方便地传输、存储或分享这些文件。PDF文件的大小可能因其包含的图像、字体等元素的数量和质量而有所不同。下面,我们将详细介绍压缩PDF容量大小的方法,帮助您轻松实现文件…

《计算机网络自顶向下方法-第八版》

计算机网络自顶向下方法 IO多路复用技术epoll select poll的区别Reactor模式和Proactor模式,阻塞非阻塞,同步异步浏览器搜索过程电脑断网排查TCP/IP五层网络模型网络协议Http & HttpsHTTP状态码HTTP 常见字段GET 和 POSTHTTP1.1HTTP 与 HTTPS对称加密…

Vite打包速度为什么比webpack快,打包的优劣势在哪里?

大家都有被webpack打包速度搞崩溃的时候,修改一处地方,想预览效果,要等上半天。 Vite比Webpack快的原因 ESM(ES Module)原生支持: Vite基于ESM构建,利用浏览器原生支持的ESM模块加载方式&…

基于 JuiceFS 构建高校 AI 存储方案:高并发、系统稳定、运维简单

中山大学的 iSEE 实验室(Intelligence Science and System) Lab)在进行深度学习任务时,需要处理大量小文件读取。在高并发读写场景下,原先使用的 NFS 性能较低,常在高峰期导致数据节点卡死。此外,NFS 系统的…

【PL理论深化】(7) Ocaml 语言:静态类型语言 | 自动类型推断 | 多态类型和多态函数 | let-多态类型系统

💬 写在前面:OCaml 是一种拥有静态类型系统的语言,本章我们就要探讨静态类型系统。 目录 0x00 静态类型系统 0x01 自动类型推断(automatic type inference) 0x02 多态类型和多态函数 0x03 let-多态类型系统&#…

kaggle数据集下载

目录 1. kaggle注册2. 解决下载慢的问题 1. kaggle注册 注册的时候出现验证码无法显示的问题,参考:https://blog.csdn.net/qq_41835735/article/details/131413062 2. 解决下载慢的问题 参考: https://blog.csdn.net/TracelessLe/article/…

暴雨虐长沙,生灵受煎熬

今天,“湖南长沙市遭遇强降雨,一小时的降雨量足够注满54个西湖”这消息,终于登上互联网社交平台热搜榜。 截图:来源社交网站 综合多家媒体消息概述如下。 昨(24日)天,湖南长沙市遭遇强降雨,一…

AI赋能影视解说:Rap说唱玩法拆解!

在影视解说的领域,竞争一直非常激烈,众多创作者纷纷涌入这个热门的赛道。为了在众多声音中脱颖而出,创新成为了关键。最近,一种结合AI技术的解说方式——Rap说唱解说,以其新颖的形式和高效的创作过程,赢得了…

kingbase R3修改pcp_watchdog密码

需要修改的文件 kingbasecluster/etc/HAmodule.conf kingbasecluster/etc/pcp.conf db/etc/HAmodule.conf 3个文件 两个节点都要改。 1.pcp.conf文件 cd kingbasecluster/bin ./sys_md5 12345678ab! 将结果复制拷贝到…/etc/pcp.conf中 放到kingbase:后面 也就是把kingbase 的密…

全面解决企业精准获客(AI+商机获客)

AI获客系统为电销企业带来了革命性的变化,特别是在精准获客方面。以下是如何全面帮助电销企业精准获客的一些关键点: 1. 大数据分析 - 系统能够收集和分析海量的客户数据,包括消费行为、兴趣爱好、在线活动等。 - 通过深度学习和机器学习算法…

Java面试八股之JVM内存溢出的原因及解决方案

JVM内存溢出的原因及解决方案 JVM内存溢出(Out Of Memory,OOM)通常是由于程序运行过程中内存使用不当造成的,常见原因及相应的解决方案如下: 原因及解决方案 内存中加载的数据量过大 原因:一次性从数据…

展厅设计中需要人性化的地方

1、预留参观空间 展厅空间的布局设计必须尽可能的宽敞,以避免参观人数较多时可能会发生的拥堵,重点展品需要预留较大的展示空间或四面通畅的中心位置,更方便观众从不同角度与方位参观。因为是展厅,不仅代表着企业形象,…

SolidWorks北京正版代理商亿达四方:官方授权SolidWorks中国代理

在北京这座融合了古老文明与现代科技的都市中,亿达四方作为SolidWorks官方认证的北京区域正版代理商,正引领着一场设计与制造领域的革新风潮。我们致力于为北京及周边地区的企业提供原汁原味的SolidWorks软件及全方位的增值服务,共同推进首都…

智慧校园-毕业管理系统总体概述

在当今教育信息化的浪潮中,智慧校园毕业管理系统脱颖而出,它作为一项综合性的数字平台,全面覆盖了从毕业资格审查到学位授予的每一个关键步骤,旨在通过智能化手段,为高校的毕业管理工作带来革命性的变革。毕业管理系统…

针对VMWare无法使用鼠标功能键问题

在使用 VMWare 虚拟机的Ubuntu系统时发现无法使用许多鼠标带有额外的功能键,比如常用的前进后退,但是双系统中的Ubuntu没有问题,后来一搜发现是,虚拟系统中不支持这些功能键。因此我们对这个问题进行了解决。 解决方案 1.找到自…

【技术解码】百数SRM:如何助力企业快速优化供应链管理?

SRM应用是企业优化供应链管理的重要工具,它帮助企业全面管理供应商关系,从评估、选择到协同合作和绩效监控,确保供应链的稳定性和效率。 对于企业来说,通过全面管理供应商关系,可以降低采购风险,提升产品质…

2023年 AI APT可持续攻击的调查研究报告

一、APT攻击:精准打击,隐蔽深入 随着网络技术的不断发展,网络安全威胁也日益严峻。高级持续性威胁(APT)攻击以其目标明确、手段多样、隐蔽性强等特点,成为网络安全领域的重要挑战。本文分析2023年当前 APT…

深度学习windows环境配置

1 下载CUDA和cudnn 详见文章 CUDA与CUDNN在Windows下的安装与配置(超级详细版)_windows cudnn安装-CSDN博客 我电脑的CUDA下载链接如下 ​​​​​https://developer.nvidia.com/cuda-12-1-0-download-archive?target_osWindows&target_archx86…