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 编程的基础组成部分。

相关推荐
去伪存真15 小时前
「实测可行」Tailwind CSS 4 与 UnoCSS 最新配置全攻略:一把跑通不踩坑
前端
十八朵郁金香15 小时前
【H5工具】一个简约高级感渐变海报H5设计工具
前端·javascript·产品运营·axure·个人开发
人工智能的苟富贵15 小时前
使用 Tauri + Rust 构建跨平台桌面应用:前端技术的新边界
开发语言·前端·rust·electron
lkbhua莱克瓦2415 小时前
Java基础——常用API2
java·笔记·github·学习方法
拉不动的猪15 小时前
多窗口数据实时同步常规方案举例
前端·javascript·vue.js
java_logo15 小时前
Docker 部署 Rocky Linux 全流程教程
linux·运维·服务器·docker·容器·1024程序员节
二进制coder15 小时前
BMC RTC:服务器硬件管理的“时间心脏”与系统协同核心
服务器·单片机·实时音视频
2501_9387918315 小时前
服务器镜像安全:Docker 镜像漏洞扫描(Trivy)与基础镜像优化
服务器·安全·docker
摇滚侠15 小时前
Spring Boot3零基础教程,Lambda 表达式与函数式接口,笔记95
java·spring boot·笔记