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如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

PyCharm 接入 DeepSeek最新完整教程

《PyCharm接入DeepSeek最新完整教程》文章介绍了DeepSeek-V3模型的性能提升以及如何在PyCharm中接入和使用DeepSeek进行代码开发,本文通过图文并茂的形式给大家介绍的... 目录DeepSeek-V3效果演示创建API Key在PyCharm中下载Continue插件配置Con

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Python创建Excel的4种方式小结

《Python创建Excel的4种方式小结》这篇文章主要为大家详细介绍了Python中创建Excel的4种常见方式,文中的示例代码简洁易懂,具有一定的参考价值,感兴趣的小伙伴可以学习一下... 目录库的安装代码1——pandas代码2——openpyxl代码3——xlsxwriterwww.cppcns.c