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

相关文章

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

Python实现高效地读写大型文件

《Python实现高效地读写大型文件》Python如何读写的是大型文件,有没有什么方法来提高效率呢,这篇文章就来和大家聊聊如何在Python中高效地读写大型文件,需要的可以了解下... 目录一、逐行读取大型文件二、分块读取大型文件三、使用 mmap 模块进行内存映射文件操作(适用于大文件)四、使用 pand

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

Python xmltodict实现简化XML数据处理

《Pythonxmltodict实现简化XML数据处理》Python社区为提供了xmltodict库,它专为简化XML与Python数据结构的转换而设计,本文主要来为大家介绍一下如何使用xmltod... 目录一、引言二、XMLtodict介绍设计理念适用场景三、功能参数与属性1、parse函数2、unpa

Python中使用defaultdict和Counter的方法

《Python中使用defaultdict和Counter的方法》本文深入探讨了Python中的两个强大工具——defaultdict和Counter,并详细介绍了它们的工作原理、应用场景以及在实际编... 目录引言defaultdict的深入应用什么是defaultdictdefaultdict的工作原理

Python中@classmethod和@staticmethod的区别

《Python中@classmethod和@staticmethod的区别》本文主要介绍了Python中@classmethod和@staticmethod的区别,文中通过示例代码介绍的非常详细,对大... 目录1.@classmethod2.@staticmethod3.例子1.@classmethod