Python青少年简明教程:字符串

2024-08-27 06:28

本文主要是介绍Python青少年简明教程:字符串,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Python青少年简明教程:字符串

字符串(string)是用于表示文本的数据类型。它是不可变的序列类型,即一旦创建,字符串中的字符就无法改变。

下面对Python中字符串的详细介绍,包括字符串的创建、操作和常见方法。

字符串的定义

在Python中,字符串可以用单引号 (')、双引号 (")、三重引号(''' 或 """)来定义。

python字符串的创建方法或方式:

1)单引号和双引号:

str1 = '这是一个字符串'

str2 = "这也是一个字符串"

单引号和双引号没有区别,你可以根据个人喜好选择其中一种。通常,在字符串中包含另一种引号时,可以用这两种方式来避免使用转义符。

2)三重引号: 三重引号允许创建跨多行的字符串,并且可以保留字符串中的换行符和缩进。

str3 = """这是一个多行字符串。
它可以跨越多行。
保留了缩进和换行符。"""
 

另外

str() 函数可以将其他数据类型转换为字符串。例如:

number = 123
str = str(number)  # "123"

join() 方法用于将序列中的元素连接成一个字符串。例如:

words = ["Hello", "world"]
str = " ".join(words)  # "Hello world"

原始字符串

在原始字符串中,反斜杠(\)不会被解释为转义字符——被视为普通字符。原始字符串使用前缀 r 或 R 表示。

raw_str = r"C:\Users\Alice\Documents"  # "C:\\Users\\Alice\\Documents"

转义字符

转义字符的主要作用是允许在字符串中包含控制字符或其他特殊字符,而这些字符本身在普通文本中可能难以直接表示或具有特殊含义。以下是Python中常用的转义字符及其说明:

\n - 换行符

\t - 制表符(Tab)

\ - 反斜杠

' - 单引号

" - 双引号

\r - 回车

\b - 退格(Backspace)

\f - 换页

\ooo - 八进制值

\xhh - 十六进制值

示例:

# 换行和制表符
print("Hello\nWorld")
print("Name:\tAlice")# 在字符串中使用引号
print("He said, \"Hello!\"")
print('It\'s a beautiful day')# 使用反斜杠
print("C:\\Users\\Username")# 八进制和十六进制
print("\101")  # 打印 'A'
print("\x41")  # 也打印 'A'

输出:

Hello
World
Name:   Alice
He said, "Hello!"
It's a beautiful day
C:\Users\Username
A
A

字符串是不可变的

python字符串是不可变的(immutable),意味着一旦字符串被创建,就无法改变其内容。每次对字符串的操作实际上都会创建一个新的字符串对象。

示例说明:

# 创建一个字符串
s = "hello"
# 尝试"修改"字符串
s = s + " world"

这看起来像是修改了s,但实际上创建了一个新的字符串对象——s指向新对象。

参见图示:

字符串的常用操作

连接(拼接)字符串: 使用加号(+)将两个或多个字符串连接在一起。
str1 = "Hello"
str2 = "World"
result = str1 + " " + str2  # "Hello World"

重复字符串: 使用乘号(*)将字符串重复指定次数。
str1 = "Hello"
result = str1 * 3  # "HelloHelloHello"

访问字符串中的字符: 使用索引来访问字符串中的单个字符。索引从0开始。
str1 = "Hello, world!"
char = str1[0]  # 'H'

切片(Slicing): 可以使用切片操作从字符串中提取子字符串。格式为 str[start:end],其中 start 是开始索引,end 是结束索引(不包括该索引处的字符)。
str1 = "Hello, world!"
sub_str = str1[0:2]  # 'He'
print(str1 [7:12])  # 输出:world

字符串长度: 使用内置函数 len() 获取字符串的长度。
str1 = "Hello, world!"
print(len(str1))  #输出:13

字符串包含: 使用 in 和 not in 运算符检查子字符串是否存在于字符串中。
str1 = "Hello, world!"
print("wor" in str1)  #输出:True
print("python" not in str1)  #输出:True

字符串常用的方法

Python提供了丰富的字符串方法来处理和操作字符串。以下是一些常用的字符串方法:

str.upper(): 将字符串中的所有字符转换为大写。
str1 = "python"
result = str1.upper()  # "PYTHON"

str.lower(): 将字符串中的所有字符转换为小写。
str1 = "Python"
result = str1.lower()  # "python"

str.capitalize():将字符串的首字母大写。
Str1 = "hello world"
print(str1.capitalize())  #输出: Hello world

str.title():将字符串中的每个单词的首字母大写。
Str1 = "hello world"
print(str1.title())  #输出:Hello World

str.strip(): 移除字符串两端的空白字符(或指定的字符)。
str1 = "  Python  "
result = str1.strip()  # "Python"

str.replace(old, new): 将字符串中的指定子字符串替换为另一个子字符串。
str1 = "Hello World"
result = str1.replace("World", "Python")  # "Hello Python"

str.split(delimiter): 将字符串拆分为子字符串列表,使用指定的分隔符。
str1 = "Python is awesome"
result = str1.split(" ")  # ["Python", "is", "awesome"]

str.join(iterable): 使用指定的字符串连接一个可迭代对象中的元素,通常是列表。
list1 = ["Python", "is", "awesome"]
result = " ".join(list1)  # "Python is awesome"

str.find(sub): 返回子字符串在字符串中的最低索引值。如果找不到,返回 -1。
str1 = "Python"
index = str1.find("th")  # 2

str.startswith(prefix) 和 str.endswith(suffix): 检查字符串是否以指定前缀开始或以指定后缀结束。
str1 = "Python"
starts = str1.startswith("Py")  # True
ends = str1.endswith("on")  # True

字符串格式化

Python提供了几种字符串格式化的方法,以便更容易地将变量和表达式的值插入到字符串中,或者说,这些方法可以帮助开发者在字符串中嵌入变量或表达式的值。

旧式格式化(% 运算符):

%操作符是Python中一种较早的字符串格式化方法,也被称为“旧式字符串格式化”。基本语法:

"字符串 %s" % 变量

对于单个值,可以直接使用 % 值

对于多个值,需要将值放在元组中:% (值1, 值2, ...)

示例:

name = "Alice"
age = 30
print("Name: %s, Age: %d" % (name, age))  #输出:Name: Alice, Age: 30

str.format() 方法:

format() 方法允许你通过占位符将变量插入到字符串中。基本语法:

"字符串 {}".format(变量)

示例:

name = "Alice"
age = 30
print("Name: {}, Age: {}".format(name, age))  #输出: Name: Alice, Age: 30

f-string(格式化字符串字面值,Python 3.6+):

Python 3.6 及以上版本支持 f-string,通过在字符串前加上 f,可以将表达式直接嵌入到字符串中。基本语法:

f"字符串 {变量}"

示例:

name = "Alice"
age = 30
print(f"Name: {name}, Age: {age}")  #输出:Name: Alice, Age: 30

另外,还可使用string.Template类

string.Template 类是 Python 标准库中的一部分,不需要额外安装。它位于 string 模块中,这个模块是 Python 内置的,要使用 Template 类,你需要从 string 模块导入它:

from string import Template

Template 类使用 $ 符号作为占位符来创建模板字符串。基本用法示例:

t = Template('Hello, $name!')
result = t.substitute(name='Alice')
print(result)  # 输出: Hello, Alice!

下面给出几个使用字符串的例子

例1、输入一个字符串,程序检查该字符串是否为回文(即正着读和反着读都一样,如:上海自来水来自海上,123454321,level)。

源码如下:

# 回文检查函数
def is_palindrome(s):return s == s[::-1]def palindrome_game():user_input = input("输入一个字符串以检查它是否是回文: ").replace(" ", "").lower()if is_palindrome(user_input):print("这是回文!")else:print("这不是回文。")palindrome_game()

例2、词语字符重排文字游戏游戏

给出多个与编程相关的中英文词语,每局随机抽取5个词语进行游戏。允许玩家多次进行游戏,并在结束时显示总体统计信息。

源码如下:

import randomdef shuffle_word(word):# 将词转换为Unicode码点列表code_points = list(word)# 打乱列表random.shuffle(code_points)# 将码点列表转回字符串return ''.join(code_points)words = ["python", "游戏", "编程", "算法", "字符串","计算机", "网络", "人工智能", "机器学习","网页", "应用", "开发",  "代码","条件" ,"调试", "测试", "大数据", "操作系统","函数", "循环" ,"print", "input", "string"  
]def play_game():game_words = random.sample(words, 5)score = 0print("游戏说明:")print("尝试猜出与编程相关的中英文原始词语,每局共5个单词.")for word in game_words:shuffled = shuffle_word(word)# 确保打乱后的词与原词不同while shuffled == word:shuffled = shuffle_word(word)print(f"\n打乱后的词语: {shuffled}")guess = input("你的猜测: ")if guess.lower() == word.lower():print("正确!")score += 1else:print(f"错误. 正确答案是: {word}")print(f"\n游戏结束! 你的得分: {score}/5")return scoredef main():total_score = 0games_played = 0while True:total_score += play_game()games_played += 1play_again = input("\n是否再玩一局? (是/否): ")if play_again.lower() not in ['是', 'y', 'yes']:breakprint(f"\n游戏统计:")print(f"总局数: {games_played}")print(f"总得分: {total_score}")print(f"平均得分: {total_score / games_played:.2f}")if __name__ == "__main__":main()

Python 官方文档

字符串的方法https://docs.python.org/zh-cn/3/library/stdtypes.html#string-methods

字符串格式化https://docs.python.org/zh-cn/3/library/string.html#format-specification-mini-language

这篇关于Python青少年简明教程:字符串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1110888

相关文章

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

python获取网页表格的多种方法汇总

《python获取网页表格的多种方法汇总》我们在网页上看到很多的表格,如果要获取里面的数据或者转化成其他格式,就需要将表格获取下来并进行整理,在Python中,获取网页表格的方法有多种,下面就跟随小编... 目录1. 使用Pandas的read_html2. 使用BeautifulSoup和pandas3.

Python装饰器之类装饰器详解

《Python装饰器之类装饰器详解》本文将详细介绍Python中类装饰器的概念、使用方法以及应用场景,并通过一个综合详细的例子展示如何使用类装饰器,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. 引言2. 装饰器的基本概念2.1. 函数装饰器复习2.2 类装饰器的定义和使用3. 类装饰

Python 交互式可视化的利器Bokeh的使用

《Python交互式可视化的利器Bokeh的使用》Bokeh是一个专注于Web端交互式数据可视化的Python库,本文主要介绍了Python交互式可视化的利器Bokeh的使用,具有一定的参考价值,感... 目录1. Bokeh 简介1.1 为什么选择 Bokeh1.2 安装与环境配置2. Bokeh 基础2

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Python ZIP文件操作技巧详解

《PythonZIP文件操作技巧详解》在数据处理和系统开发中,ZIP文件操作是开发者必须掌握的核心技能,Python标准库提供的zipfile模块以简洁的API和跨平台特性,成为处理ZIP文件的首选... 目录一、ZIP文件操作基础三板斧1.1 创建压缩包1.2 解压操作1.3 文件遍历与信息获取二、进阶技