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

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

nudepy,一个有趣的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - nudepy。 Github地址:https://github.com/hhatto/nude.py 在图像处理和计算机视觉应用中,检测图像中的不适当内容(例如裸露图像)是一个重要的任务。nudepy 是一个基于 Python 的库,专门用于检测图像中的不适当内容。该

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

HTML提交表单给python

python 代码 from flask import Flask, request, render_template, redirect, url_forapp = Flask(__name__)@app.route('/')def form():# 渲染表单页面return render_template('./index.html')@app.route('/submit_form',