Python 字符串与布尔值详解

Python 字符串

字符串基础

字符串文字

Python 中的字符串文字可以用单引号或双引号包围,两者效果相同:

python

复制代码
print("Hello")
print('Hello')

字符串赋值

使用变量名、等号和字符串来为变量赋值:

python

复制代码
a = "Hello"
print(a)

多行字符串

使用三个双引号或三个单引号创建多行字符串:

python

复制代码
a = """Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."""
print(a)

a = '''Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.'''
print(a)

注意: 结果中的换行符位置与代码中的位置一致。

字符串操作

字符串是数组

Python 中的字符串是表示 Unicode 字符的字节数组。单个字符就是长度为 1 的字符串。

访问字符:

python

复制代码
a = "Hello, World!"
print(a[1])  # 输出 'e'(第一个字符位置为 0)

切片操作:

python

复制代码
b = "Hello, World!"
print(b[2:5])  # 输出 'llo'(位置 2 到 5,不包括 5)

负索引切片:

python

复制代码
b = "Hello, World!"
print(b[-5:-2])  # 输出 'orl'(从末尾开始计数)

字符串长度:

python

复制代码
a = "Hello, World!"
print(len(a))  # 输出 13

常用字符串方法

strip() - 删除开头和结尾的空格:

python

复制代码
a = " Hello, World! "
print(a.strip())  # 输出 "Hello, World!"

lower() - 转换为小写:

python

复制代码
a = "Hello, World!"
print(a.lower())  # 输出 "hello, world!"

upper() - 转换为大写:

python

复制代码
a = "Hello, World!"
print(a.upper())  # 输出 "HELLO, WORLD!"

replace() - 替换字符串:

python

复制代码
a = "Hello, World!"
print(a.replace("H", "J"))  # 输出 "Jello, World!"

split() - 分割字符串:

python

复制代码
a = "Hello, World!"
print(a.split(","))  # 输出 ['Hello', ' World!']

字符串检查

使用 innot in 关键字检查字符串内容:

python

复制代码
txt = "The rain in Spain stays mainly in the plain"
x = "ain" in txt
print(x)  # 输出 True

y = "ain" not in txt
print(y)  # 输出 False

字符串连接和格式化

字符串连接:

python

复制代码
a = "Hello"
b = "World"
c = a + b
print(c)  # 输出 "HelloWorld"

# 添加空格
c = a + " " + b
print(c)  # 输出 "Hello World"

字符串格式化:

python

复制代码
# 错误示例(不能直接连接字符串和数字)
age = 36
# txt = "My name is John, I am " + age  # 这会报错

# 使用 format() 方法
txt = "My name is John, and I am {}"
print(txt.format(age))

# 多个参数
quantity = 3
itemno = 567
price = 49.95
myorder = "I want {} pieces of item {} for {} dollars."
print(myorder.format(quantity, itemno, price))

# 使用索引号确保正确位置
myorder = "I want to pay {2} dollars for {0} pieces of item {1}."
print(myorder.format(quantity, itemno, price))

转义字符

使用反斜杠 \ 插入特殊字符:

python

复制代码
# 错误示例
# txt = "We are the so-called "Vikings" from the north."

# 正确使用转义字符
txt = "We are the so-called \"Vikings\" from the north."
print(txt)

常用转义字符:

  • \' - 单引号

  • \\ - 反斜杠

  • \n - 换行

  • \r - 回车

  • \t - 制表符

  • \b - 退格

  • \f - 换页

  • \ooo - 八进制值

  • \xhh - 十六进制值

字符串方法参考表

方法 描述
capitalize() 将第一个字符转换为大写
casefold() 将字符串转换为小写
center() 返回居中的字符串
count() 返回指定值在字符串中出现的次数
encode() 返回字符串的编码版本
endswith() 如果字符串以指定值结尾,则返回 true
expandtabs() 设置字符串的制表符大小
find() 在字符串中搜索指定的值,并返回找到的位置
format() 格式化字符串中的指定值
format_map() 格式化字符串中的指定值
index() 在字符串中搜索指定的值,并返回找到的位置
isalnum() 如果字符串中的所有字符都是字母数字,则返回 True
isalpha() 如果字符串中的所有字符都是字母,则返回 True
isdecimal() 如果字符串中的所有字符都是十进制数字,则返回 True
isdigit() 如果字符串中的所有字符都是数字,则返回 True
isidentifier() 如果字符串是标识符,则返回 True
islower() 如果字符串中的所有字符都是小写,则返回 True
isnumeric() 如果字符串中的所有字符都是数字,则返回 True
isprintable() 如果字符串中的所有字符都是可打印的,则返回 True
isspace() 如果字符串中的所有字符都是空格,则返回 True
istitle() 如果字符串遵循标题规则,则返回 True
isupper() 如果字符串中的所有字符都是大写,则返回 True
join() 将可迭代的元素连接到字符串的末尾
ljust() 返回字符串的左对齐版本
lower() 将字符串转换为小写
lstrip() 返回字符串的左修剪版本
maketrans() 返回要在翻译中使用的翻译表
partition() 返回一个将字符串分为三部分的元组
replace() 返回替换指定值后的字符串
rfind() 在字符串中搜索指定的值,并返回最后找到的位置
rindex() 在字符串中搜索指定的值,并返回最后找到的位置
rjust() 返回字符串的右对齐版本
rpartition() 返回一个将字符串分为三部分的元组
rsplit() 在指定的分隔符处分割字符串,并返回列表
rstrip() 返回字符串的右修剪版本
split() 在指定的分隔符处分割字符串,并返回列表
splitlines() 在换行符处分割字符串并返回列表
startswith() 如果字符串以指定值开头,则返回 true
strip() 返回字符串的修剪版本
swapcase() 交换大小写
title() 将每个单词的第一个字符转换为大写
translate() 返回翻译后的字符串
upper() 将字符串转换为大写
zfill() 在字符串开头填充指定的 0

注意: 所有字符串方法都返回新值,不会更改原始字符串。

Python 布尔值

布尔值基础

布尔值表示两个值之一:TrueFalse

比较运算:

python

复制代码
print(10 > 9)   # 输出 True
print(10 == 9)  # 输出 False
print(10 < 9)   # 输出 False

条件语句中的布尔值:

python

复制代码
a = 200
b = 33

if b > a:
    print("b is greater than a")
else:
    print("b is not greater than a")  # 输出这句

布尔判断

bool() 函数:

python

复制代码
# 判断字符串和数字
print(bool("Hello"))  # 输出 True
print(bool(15))       # 输出 True

# 判断变量
x = "Hello"
y = 15
print(bool(x))  # 输出 True
print(bool(y))  # 输出 True

值的布尔评估

多数值为 True:

几乎所有有内容的值都会评估为 True

python

复制代码
print(bool("abc"))                          # True
print(bool(123))                           # True
print(bool(["apple", "cherry", "banana"])) # True

一些值为 False:

以下值会评估为 False

python

复制代码
print(bool(False))   # False
print(bool(None))    # False
print(bool(0))       # False
print(bool(""))      # False
print(bool(()))      # False
print(bool([]))      # False
print(bool({}))      # False

自定义类的布尔值:

如果类有返回 0 或 False 的 __len__ 方法,其实例评估为 False

python

复制代码
class myclass():
    def __len__(self):
        return 0

myobj = myclass()
print(bool(myobj))  # 输出 False

函数返回布尔值

函数可以返回布尔值,常用于类型检查等:

python

复制代码
x = 200
print(isinstance(x, int))  # 输出 True

布尔值在条件判断、循环控制和逻辑运算中发挥着重要作用,是 Python 编程的基础组成部分。

相关推荐
前端一课12 分钟前
我还在上班,怎么做一个长期有价值的号
前端
前端一课25 分钟前
用 TRAE Work 把项目踩坑经验沉淀成「团队可复用工程规范」,新人再也不重复掉坑
前端·后端
云烟成雨TD38 分钟前
Micrometer 系列【42】链路追踪:Span 体系 | 核心 API
java·链路追踪·micrometer
cyadyx39 分钟前
【Three.js】Three.js 中加载 3D 模型
前端·javascript·3d
汉堡大王952739 分钟前
前端工程师 TypeScript 上手指南:一条清晰的从入门到精通路线
前端·javascript·react.js
Gorway44 分钟前
理解 Spring 依赖注入:从构造器注入到集合与条件 Bean
java·后端
浅水壁虎1 小时前
vue基础(第四章 Pinia)
前端·javascript·vue.js
用户2181697049301 小时前
Flutter (十四) SingleChildScrollView ListView
前端
昭阳1 小时前
4 个 vibe coding 项目,一个普通前端的半年
前端·人工智能·设计
颜进强1 小时前
Claude Code - 26 效率三件套:cc-switch 切模型 · codeburn 算成本 · claude-hud 看状态
前端·后端·ai编程