本文主要是介绍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青少年简明教程:字符串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!