Python基础:字符串(String)详解(需补充完善)

news2024/11/26 4:51:17

在这里插入图片描述

1. 字符串定义

  在Python中,字符串是一种数据类型,用于表示文本数据。字符串是由字符组成的序列,可以包含字母、数字、符号和空格等字符。在Python中,你可以使用单引号(')或双引号(")来定义字符串。
  1)使用单引号或双引号创建字符串

str1 = 'Hello, world!'
str2 = "Python Programming"

  2) 使用三引号创建多行字符串

multiline_str = '''This is a
multi-line
string.'''

2.访问字符串中的值

  Python不支持单字符类型,单字符在Python中也是作为一个字符串使用。
  Python中使用索引来访问字符串,可以使用方括号[](切片)来截取字符串。字符串是一个字符序列,每个字符都有与之关联的索引。
  字符串的截取的语法格式如下:

# 索引值以0为开始值,-1为从末尾的开始位置
变量[头下标:尾下标]

  示例:

# 创建一个字符串
my_string = "Hello, World!"

# 访问单个字符
first_char = my_string[0] #获取第一个字符,索引为0
second_char = my_string[1] # 获取第二个字符,索引为1

# 使用负数索引从末尾开始访问字符
last_char = my_string[-1]  # 获取最后一个字符
second_last_char = my_string[-2]  # 获取倒数第二个字符

# 切片(获取子串)
substring = my_string[7:12]  # 获取索引7到11的子串,不包括索引12

# 通过切片获取从开始到指定位置的子串
prefix = my_string[:5]  # 获取从开头到索引4的子串

# 通过切片获取从指定位置到末尾的子串
suffix = my_string[7:]  # 获取从索引7到末尾的子串

# 打印结果
print(first_char)         # 输出:H
print(last_char)          # 输出:!
print(substring)          # 输出:World
print(prefix)             # 输出:Hello
print(suffix)             # 输出:World!

在这里插入图片描述

3. 字符串更新

  在Python中,字符串是不可变(immutable)的,这意味着一旦创建,就不能直接修改字符串的内容,但可以通过创建一个新的字符串来实现修改的效果。

3.1 切片和拼接

# 尝试修改字符串中的某个字符(这会引发错误)
# my_string[0] = 'h'  # TypeError: 'str' object does not support item assignment

# 创建一个新字符串,实现修改的效果
new_string = 'h' + my_string[1:]
print(new_string)  # 输出:hello, World!
# 切片和拼接
my_string = "Python"
updated_string = my_string[:4] + "ic" + my_string[5:]
print(updated_string)  # 输出:Pythonic

3.2 使用str.join()方法

words = ["Hello", "World"]
result = " ".join(words)
print(result)  # 输出:Hello World

3.3 格式化字符串

name = "Alice"
age = 30
formatted_str = "My name is {} and I am {} years old.".format(name, age)
print(formatted_str)
# 输出:My name is Alice and I am 30 years old.

3.4 使用f-字符串(Python3.6版本以上)

name = "Bob"
age = 25
formatted_str = f"My name is {name} and I am {age} years old."
print(formatted_str)
# 输出:My name is Bob and I am 25 years old.

  这些方法中的每一个都会创建一个新的字符串,而不是在原始字符串上直接修改。在实际编程中,选择哪种方式取决于具体的项目需求。如果需要频繁修改字符串,可能需要考虑使用列表(list)或其他可变对象。

4. 转义字符

  在Python字符串中,转义字符用于表示一些特殊字符或执行特定的操作。转义字符以反斜杠 \ 开始,后面跟着一个或多个字符。
在这里插入图片描述

print('\'Hello, world!\'')  # 输出:'Hello, world!'

print("Hello, world!\nHow are you?")  # 输出:Hello, world!
                                        #       How are you?

print("Hello, world!\tHow are you?")  # 输出:Hello, world!    How are you?

print("Hello,\b world!")  # 输出:Hello world!

print("Hello,\f world!")  # 输出:
                           # Hello,
                           #  world!

print("A 对应的 ASCII 值为:", ord('A'))  # 输出:A 对应的 ASCII 值为: 65

print("\x41 为 A 的 ASCII 代码")  # 输出:A 为 A 的 ASCII 代码

decimal_number = 42
binary_number = bin(decimal_number)  # 十进制转换为二进制
print('转换为二进制:', binary_number)  # 转换为二进制: 0b101010

octal_number = oct(decimal_number)  # 十进制转换为八进制
print('转换为八进制:', octal_number)  # 转换为八进制: 0o52

hexadecimal_number = hex(decimal_number)  # 十进制转换为十六进制
print('转换为十六进制:', hexadecimal_number) # 转换为十六进制: 0x2a

在这里插入图片描述

5. 字符串运算

6. 字符串格式化

7. Python的三引号

8. 字符串内建函数

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

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

相关文章

在 Banana Pi BPI-R2 PRO RK3568开源路由器上安装 OpenWrt 23 快照固件

这是在 BPI-R2 Pro(到内部 eMMC)上安装 OpenWrt 23 快照固件的快速指南。该固件已预装 LuCI 和一些软件包。这是 2023 年 9 月 2 日的屏幕截图。 LuCI 主页概述。Linux内核是6.1.50 网络接口概述。PPPoE 连接已启动并正在运行 速度测试和 CPU 使用情况…

谈谈中间件设计的思路

前言 想要设计和真正理解中间件的架构理论和思想。对于开发来说需要具备三个关键的能力 1:基础通用技术的深入理解和运用2:了解和熟悉常见中间件的设计思想,且有自己的感悟,并且能按照自己的理解模仿写一写3:业务的高度理解能力…

赞比亚市场开发攻略,带你走进非洲“铜矿王国”

赞比亚是非洲最早跟中国建交的国家,跟我们经贸联系一直也比较紧密。赞比亚很多生产生活资料比较依赖进口,市场潜力还是不错的。今天就来给大家分享一下非洲这个铜矿王国的开发攻略。文章略长,大家点赞收藏关注慢慢看。 文章目录:…

格雷希尔针对J2044燃油管测试专用快速接头都有哪些及各自的应用场合

J2044燃油管是汽车燃油系统中常见的管口,如:燃油泵、燃油滤清器、喷油嘴等部件中都有这样的管口,为了保证燃油系统的正常运行,这些零部件在出厂前就需要对其进行多种测试,在测试前需要对J2044燃油管管口进行密封用于连…

BEV+Transformer架构加速“上车”,智能驾驶市场变革开启

BEVTransformer成为了高阶智能驾驶领域最为火热的技术趋势。 近日,在2023年广州车展期间,不少车企及智能驾驶厂商都发布了BEVTransformer方案。其中,极越01已经实现了“BEVTransformer”的“纯视觉”方案的量产,成为国内唯一量产…

当OLAP碰撞Serverless,看ByteHouse如何建设下一代云计算架构

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 作为云计算的下一个迭代,Serverless 可以使开发者更专注于构建产品中的应用,而无需考虑底层堆栈问题。伴随着近年来相关技术成熟度的增加&am…

Node——npm包管理器的使用

Node.js使用npm对包进行管理,其全称为Node Package Manager,开发人员可以使用它安装、更新或者卸载Node.js的模块 1、npm包管理器基础 1.1、npm概述 npm是Node.js的标准软件包管理器,其在2020年3月17日被GitHub收购,而且保证永…

Python3基础

导包 在 python 用 import 或者 from...import 来导入相应的模块。 将整个模块(somemodule)导入,格式为: import somemodule 从某个模块中导入某个函数,格式为: from somemodule import somefunction 从某个模块中导入多个函数,格式为&#…

【Linus】进程的等待

进程等待的必要性 如果子进程退出了,父进程没有对子进程进行回收,子进程就会进入僵尸进程,占用内存,导致内存泄漏如果程序进入僵尸状态,那么kill -9 也无法强制杀死进程子进程是父进程创建出来,完成父进程…

介绍比特币上的 sCrypt 开发平台

最强大的基础设施和工具套件,可轻松构建和扩展您的 dApp 杀手级应用在哪里? 尽管比特币在小额支付、国际汇款和供应链管理等广泛用例中具有颠覆性潜力,但在推出 14 年后,我们还没有看到一款非常受欢迎并被主流采用的杀手级应用。 …

Star History 十月开源精选 |AI for Postgres

在 2023 年 Stack Overflow 开发者调查中,Postgres 顶替了 MySQL 被评为最受欢迎的数据库。一个重要因素应该是 Postgres 支持扩展:可扩展的架构 Postgres 仍然由社区拥有,Postgres 生态近年来蓬勃发展。 扩展可以看作是内置功能&#xff0c…

基于SpringBoot的超市信息管理系

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 随着我国经济的不断发…

使用 OpenCV 发现圆角矩形的轮廓

OpenCV - 如何找到圆角矩形的矩形轮廓? 问题: 在图像中,我试图找到矩形对象的圆角轮廓。然而,我对两者的尝试 HoughLinesP 并 findContours 没有产生预期的结果。 我的目标是找到一个类似于以下形状的矩形: 。 代码: import cv2 import matplotlib.pyplot as plt…

深入理解Transformer,兼谈MHSA(多头自注意力)、LayerNorm、FFN、位置编码

Attention Is All You Need——集中一下注意力 Transformer其实不是完全的Self-Attention结构,还带有残差连接、LayerNorm、类似1维卷积的Position-wise Feed-Forward Networks(FFN)、MLP和Positional Encoding(位置编码&#xf…

H5标签的contenteditable属性在项目种的使用

介绍 contenteditable 是 HTML5 中的新属性。属性值为true 可以编辑元素内容&#xff0c;false 无法编辑元素内容。 简单说: div标签&#xff0c;加上这个属性&#xff0c;就变成可以编辑状态。 <p contenteditable"true">这里可编辑</p>属性可以开发的…

SAP Smartforms设计

第八章 SMART FORMS设计 要点列表 概览&#xff1b; Form&#xff08;表格&#xff09;&#xff1b; Smart Styles&#xff08;样式&#xff09;&#xff1b; Text Module&#xff08;文本模块&#xff09;&#xff1b; 使用标准表方式打印&#xff1b; 使用模板方式打印…

C语言基础篇5:指针(二)

接上篇&#xff1a;C语言基础篇5&#xff1a;指针(一) 4 指针作为函数参数 4.1 指针变量作为函数的参数 指针型变量可以作为函数的参数&#xff0c;使用指针作为函数的参数是将函数的参数声明为一个指针&#xff0c;前面提到当数组作为函数的实参时&#xff0c;值传递数组的地址…

java中SPI机制

一&#xff1a;作用 SPI的作用其实就是&#xff0c;在系统内部&#xff0c;定义一个能力接口&#xff0c;该接口可以满足自己的业务需要&#xff0c;比如发送短信&#xff0c;定义一个发送短信的接口&#xff0c;至于用什么方式实现&#xff0c;可以交给短信服务提供商去实现&…

[C/C++]数据结构 堆排序(详细图解)

一:前言 在[C/C]数据结构 堆的详解中,介绍了什么是堆,并且完成了堆的实现和一系列接口,包括向上调整法和向下调整法等,接下来小编介绍一个有点量级的排序方法------堆排序,时间复杂度为O(n*lgn) 二:堆排序详解 2.1 方法介绍 1.首先将待排序数组建为大堆,此时堆顶元素就为数组…

肖sir __数据库练习__001

建表语句&#xff1a; create table student ( id int(4),age int(8),sex int(4),name varchar(20), class int(4), math int(4)) DEFAULT charsetutf8; INSERT into student VALUES(1,25,1,‘zhansan’,1833,90); INSERT into student VALUES(2,25,1,‘lisi’,1833,67); INSER…