Python教程:一文弄懂Python字符串(很详细)

    字符串是计算机编程中表示文本数据的一种数据类型。在Python和许多其他编程语言中,字符串是由字符序列组成的不可变序列,可以包含字母、数字、符号以及空格等字符。字符串通常用引号括起来表示,可以使用单引号(')、双引号(")或三引号('''或""")来定义。

    字符串在计算机编程中有着广泛的应用,例如表示文本信息、文件内容、用户输入等。字符串可以进行各种操作,如连接(拼接)、切片、查找、替换等,同时还支持大小写转换、格式化和正则表达式等高级处理。

1.基础知识


  1. 字符串的定义:单引号、双引号、三引号
  • 单引号和双引号在表示字符串时没有本质区别,你可以选择其中一种来定义字符串。
  • 如果字符串中包含了单引号或双引号本身,可以在字符串中使用另一种引号来定义字符串,避免转义字符的使用。
  • 三引号用于表示多行字符串,可以是单引号三引号(''')或双引号三引号(""")。
  • 使用三引号可以方便地定义包含换行符的长字符串,而无需使用 \n 转义字符。
multi_line = '''This is a 
multi-line
string'''

    2.字符串的索引和切片:讲解索引、切片的概念和实际应用

# 字符串定义示例
single_quoted_str = 'Hello, World!'
double_quoted_str = "Hello, World!"
triple_quoted_str = '''Hello, World!'''# 字符串索引示例
my_string = "Hello, World!"
print(my_string[0])  # 输出:H
print(my_string[-1])  # 输出:!# 字符串切片示例
print(my_string[7:12])  # 输出:World

    3.字符串的拼接和重复:使用+*操作符进行字符串的拼接和重复

# 字符串拼接示例
string1 = "Hello"
string2 = "world!"
result = string1 + " " + string2
print(result)  # 输出:Hello world!# 字符串重复示例
string3 = "Python"
repeated_string = string3 * 3
print(repeated_string)  # 输出:PythonPythonPython

2.字符串格式化


  1. 使用format()方法进行字符串格式化:讲解format()方法的用法和参数
  2. f-strings:介绍f-string格式化字符串的特点和用法
  3. 格式化符号:%操作符和.format()的结合使用
    # 使用format()方法进行字符串格式化示例
    name = "Alice"
    age = 25
    print("My name is {}. I'm {} years old.".format(name, age))# 使用f-strings进行字符串格式化示例
    name = "Alice"
    age = 25
    print(f"My name is {name}. I'm {age} years old.")
    

3.字符串方法


常用字符串方法:upper()lower()strip()split()join()

查找和替换:find()replace()count()方法的使用示例

格式检查:isalpha()isdigit()isalnum()等方法的说明

1. upper() 和 lower() 方法示例:

upper() 方法用于将字符串转换为大写,而 lower() 方法用于将字符串转换为小写。

my_string = "Hello, World!"
upper_case = my_string.upper()
lower_case = my_string.lower()print(upper_case)  # 输出:HELLO, WORLD!
print(lower_case)  # 输出:hello, world!

2. strip() 方法示例:

strip() 方法用于去除字符串首尾的空白字符(包括空格、制表符和换行符等)。

my_string = "  Hello, World!  "
stripped_str = my_string.strip()
print(stripped_str)  # 输出:Hello, World!

3. split() 和 join() 方法示例:

split() 方法用于将字符串分割成子字符串,并返回一个子字符串列表;join() 方法则用于将字符串列表连接成一个新的字符串。

my_string = "apple, banana, cherry"
splitted_str = my_string.split(", ")
print(splitted_str)  # 输出:['apple', 'banana', 'cherry']fruits = ['apple', 'banana', 'cherry']
joined_str = ", ".join(fruits)
print(joined_str)  # 输出:apple, banana, cherry

4. find() 方法示例:

find() 方法用于查找子字符串在原始字符串中的位置。如果找到子字符串,则返回其第一次出现的索引;如果未找到,则返回 -1。

my_string = "Hello, World!"
index = my_string.find("World")
if index != -1:print(f"Substring found at index: {index}")
else:print("Substring not found")

5. replace() 方法示例:

replace() 方法用于将字符串中的指定子字符串替换为新的内容。

my_string = "Hello, World!"
new_string = my_string.replace("World", "Python")
print(new_string)  # 输出:Hello, Python!

6. count() 方法示例:

count() 方法用于计算字符串中指定子字符串出现的次数。

my_string = "How much wood would a woodchuck chuck if a woodchuck could chuck wood?"
count = my_string.count("wood")
print(f"The word 'wood' appears {count} times in the string.")

7. isalpha() 方法示例:

isalpha() 方法用于检查字符串是否只包含字母字符。

alpha_str = "Hello"
if alpha_str.isalpha():print("The string contains only alphabetic characters.")
else:print("The string contains non-alphabetic characters.")

8. isdigit() 方法示例:

isdigit() 方法用于检查字符串是否只包含数字字符。

digit_str = "12345"
if digit_str.isdigit():print("The string contains only digits.")
else:print("The string contains non-digit characters.")

9. isalnum() 方法示例:

isalnum() 方法用于检查字符串是否只包含字母和数字字符的组合。

alnum_str = "Hello123"
if alnum_str.isalnum():print("The string contains only alphanumeric characters.")
else:print("The string contains non-alphanumeric characters.")

4.正则表达式与字符串


  1. 正则表达式简介:介绍正则表达式的基本概念和语法
  2. re模块:讲解Python中re模块的使用,包括search()match()findall()等方法
    import re# 正则表达式示例
    pattern = r"hello"
    text = "Hello, world!"
    match_result = re.search(pattern, text)
    if match_result:print("Match found!")
    else:print("Match not found!")
    

5.高级字符串处理


  1. 多行字符串:介绍如何处理多行字符串,包括使用三引号和\n换行符
  2. Unicode和编码:解释Python中的Unicode字符串和编码相关问题
  3. 字符串编码转换:使用encode()decode()方法进行字符编码转换

注:Python编码内容可以参考我的另一篇博客Python代码中的# -*- coding: gbk -*-_python coding=gbk-CSDN博客 

# 多行字符串示例
multiline_string = """Hello,
World!"""
print(multiline_string)# 字符编码转换示例
my_string = "你好"
encoded_string = my_string.encode("utf-8")
decoded_string = encoded_string.decode("utf-8")
print(encoded_string)
print(decoded_string)

6.实际案例分析


  1. 文本处理:实际文本处理场景中字符串的应用
  2. 数据清洗:利用字符串方法和正则表达式对数据进行清洗和提取
  3. 字符串拼接优化:介绍字符串拼接的效率问题和优化技巧
    # 文本处理示例
    text = "Hello, this is a sample text. #example"
    cleaned_text = text.replace("#example", "").strip()
    print(cleaned_text)# 字符串拼接优化示例
    items = ['apple', 'banana', 'cherry']
    joined_string = ''.join(items)
    print(joined_string)
    

7.常见面试题举例 


题目:如何在 Python 中实现字符串翻转,但不能使用内置的翻转函数或切片方法?

问题:请编写一个函数,接受一个字符串作为参数,返回该字符串的翻转结果,但不能使用 Python 中现成的翻转函数或切片方法。

答案示例:

def reverse_string(input_str):reversed_str = ''for char in input_str:reversed_str = char + reversed_strreturn reversed_str# 测试函数
input_string = "Hello, World!"
reversed_string = reverse_string(input_string)
print(reversed_string)  # 输出结果为:!dlroW ,olleH

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

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

相关文章

一文详解WebView,不好理解就想想iframe,类比后秒懂了。

Hi,我是贝格前端工场,又到了给大家做技术扫盲的时候,本文讲一讲webview,有些老铁觉得很难懂,其实借助iframe来中转一下,就好理解了。 WebView是一种用于在应用程序中显示Web内容的组件。它可以嵌入到应用程…

【C++】关键字:auto

文章目录 1. 介绍2. 如何使用 1. 介绍 从C11开始,auto变成了类型指示符(之前auto并不是这个作用)。使用auto定义变量时必须对其进行初始化,在编译阶段编译器自动推导auto变量的实际类型。因此auto并非是一种“类型”的声明&#…

爬取某乎专栏文章html格式,并转到pdf保存

import os import re import requests import pdfkit import parsel 1.先获取html文章内容获取小赖 2.把html文件转成pdffilename html\\ if not os.path.exists(filename):os.mkdir(filename)filename2 pdf\\ if not os.path.exists(filename2):os.mkdir(filename2)url htt…

柚见第十期(后端队伍接口详细设计)

创建队伍 用户可以 创建 一个队伍,设置队伍的人数、队伍名称(标题)、描述、超时时间 P0 队长、剩余的人数 聊天? 公开 或 private 或加密 信息流中不展示已过期的队伍 请求参数是否为空?是否登录,未登录不…

DockerCompose的介绍、安装与常用命令

Docker Compose 是一个用于定义和运行多容器Docker应用程序的工具,通过一个docker-compose.yml配置文件来管理多个容器服务及其依赖关系 一 安装DockerCompose 1、下载 网盘下载 wget https://github.com/docker/compose/releases/download/v2.18.0/docker-comp…

事业单位计算机专业知识 考试范围

《专业知识》考试范围 目录 一、计算机类 (一)计算机科学技术基础 1、计算机基础知识 2、多媒体技术 3、计算机信息安全技术 4、Internet知识 (二)计算机软件及使用 1、Windows2000/xp操作系统 2、文字处理软件Word20…

FX110网:在CP Markets申请出金四个多月了,没任何消息!

近期,本站收到一中国汇友投诉,称其CP Markets平台已数月无法出金,平台方也没有任何回应。在货币市场闯荡久了的“老鸟”就会知道,平台无故不给出金必定有妖,更何况还是长达数月! 在CP Markets申请出金四个多…

Anaconda下载安装及配置pytorch环境

先解释一下Python、Anaconda、Pytorch是啥 Python是一种广泛使用的编程语言,在许多领域都有应用。它具有简洁的语法,易于学习,并且有大量的第三方库可以使用。 Anaconda是一个Python的包和环境管理软件,提供了许多用于数据科学&a…

如何像专家一样维护服务器硬件?

大家好!今天,我们要一起来探索一个神秘的世界——服务器硬件。可能你会有点困惑,服务器硬件是什么?别急,让我一一为你解答。 1. 服务器硬件是什么? 想象一下,如果你的家里有一个巨大的衣柜&am…

Flink SQL示例

1. 简单订单统计 假设有以下两个订单流数据,数据字段分别为用户ID、购买的商品名称、商品数量。 数据流A: 1L,"尺子",3 1L,"铅笔",4 3L,"橡皮",2 数据流B: 2L,"手表",3 2L,"笔记本",3 4…

51、WEB攻防——通用漏洞验证码识别复用调用找回密码重定向状态值

文章目录 回显状态判断用户名重定向验证码回显显示验证码简单机制验证码复用验证码智能识别验证码接口调用安全修复建议 回显状态判断 request前端判断不安全(前端接收验证的返回值来进行判断),使用burp的Response to this request可以抓取返回包~ 这种…

【JS】APIs:事件流、事件委托、其他事件、页面尺寸、日期对象与节点操作

1 事件流 捕获阶段&#xff1a;从父到子 冒泡阶段&#xff1a;从子到父 1.1 事件捕获 <body> <div class"fa"><div class"son"></div> </div> <script>const fadocument.querySelector(.fa);const sondocument.qu…

机器视觉学习(一)—— 认识OpenCV、安装OpenCV

目录 一、认识OpenCV 二、通过pip工具安装OpenCV 三、PyCharm安装OpenCV 一、认识OpenCV OpenCV&#xff08;Open Source Computer Vision Library&#xff0c;开源计算机视觉库&#xff09;是一个跨平台的计算机视觉库&#xff0c;最初由威尔斯理工学院的Gary Bradski于199…

强烈安利!FastReport 商业图形库,炫酷可视化报告开发首选~

FastReport Business Graphics .NET&#xff0c;是一款基于fastreport报表开发控件的商业图形库&#xff0c;借助 FastReport 商业图形库&#xff0c;您可以可视化不同的分层数据&#xff0c;构建业务图表以进行进一步分析和决策。利用数据呈现领域专家针对 .NET 7、.NET Core、…

NXP iMX8MM Cortex-M4 核心 GPT Capture 测试

By Toradex秦海 1). 简介 NXP i.MX8 系列处理器均为异构多核架构 SoC&#xff0c;除了可以运行 Linux 等复杂操作系统的 Cortax-A 核心&#xff0c;还包含了可以运行实时操作系统比如 FreeRTOS 的 Cortex-M 核心&#xff0c;本文就演示通过 NXP i.MX8MM 处理器集成的 Cortex-…

Node.Js编码注意事项

Node.js 中不能使用 BOM 和 DOM 的 API&#xff0c;可以使用 console 和定时器 APINode.js 中的顶级对象为 global&#xff0c;也可以用 globalThis 访问顶级对象 浏览器端js的组成 Node.js中的JavaScript组成 相比较之下发现只有console与定时器是两个API所共有的&#xff…

HarmonyOS系统开发基础环境搭建

目录 一 鸿蒙介绍&#xff1a; 1.1 HarmonyOS系统 1.2 HarmonyOS软件编程语言 二 HarmonyOS编程环境搭建 1.1 官网下载地址 1.2搭建开发流程 1.3 创建安装目录 1.4 下载DevEco Studio​编辑 1.5 下载后点击安装 1.6 自动添加桌面快捷和bin路径 ​编辑1.7 安装好运行 …

二,几何相交---4,BO算法---(1)接近性和可分离性

提了三个观点 1&#xff0c;如果一条直线&#xff08;比如竖直&#xff09;可以分开两个线段&#xff0c;则这两个线段不相交 2&#xff0c;只需要观察与隔离线相交的几个线段 3&#xff0c;从左向右扫描线只需要观察每个线段的两个端点和一些可能的相交点。

HarmonyOS (一)ArkTS起源及UI框架

目录 1 引言 2 框架 3 ArkUI 4 特点 5 总结 1 引言 Mozilla创造了JS&#xff0c;Microsoft创建了TS&#xff0c;Huawei进一步推出了ArkTS。 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript&#xff08;简称TS&#xff09;的基础上&#xff0c;扩展了声明式UI、…

后悔没有早点看到这份产品说明书模板

产品说明书是连接产品与消费者的桥梁&#xff0c;它对产品具有多重好处。一份设计精良、内容准确的产品说明书有助于消费者全面了解产品&#xff0c;确保用户正确使用产品&#xff1b;减少消费者因误操作导致的故障&#xff0c;降低企业的售后服务成本&#xff1b;增强消费者对…