字符串
格式化
f-string
f-string 是 Python 3.6 之后引入的一种新的字符串格式化方法,它允许在字符串中嵌入表达式,这些表达式在运行时将被其值替换。
1 | name = "zhangsan" |
format
我们可以使用 format() 方法对结果进行格式化。
1 | name = "Alice" |
索引号
您可以使用索引号(花括号 {0} 内的数字)来确保将值放在正确的占位符中:
1 | quantity = 3 |
此外,如果要多次引用相同的值,请使用索引号:
1 | age = 63 |
命名索引
您还可以通过在花括号 {carname} 中输入名称来使用命名索引,但是在传递参数值 txt.format(carname = “Ford”) 时,必须使用名称:
1 | myorder = "I have a {carname}, it is a {model}." |
原始字符串
字符串前面的字母 r
或 R
表示一个原始字符串(raw string)。
原始字符串中的反斜杠(\
)不会被作为转义字符处理,而是被当作字符串的一部分直接包含在内。
例如:
普通的字符串:
1 | s = "C:\\path\\to\\file" |
在这个字符串中,反斜杠(\
)被用作转义字符,所以实际的字符串内容是 C:\path\to\file
。
原始字符串:
1 | s = r"C:\path\to\file" |
在这个字符串中,反斜杠不会被作为转义字符处理,所以实际的字符串内容是 C:\path\to\file
。
时间字符串
在 Python 中,你可以使用 strftime
方法将时间格式化为字符串。strftime
是 datetime
模块中的一个方法,它允许你根据指定的格式将 datetime
对象转换为字符串。
以下是一个简单的示例,展示如何将当前时间格式化为字符串:
1 | from datetime import datetime |
在这个示例中,strftime
方法的参数 "%Y-%m-%d %H:%M:%S"
指定了输出的格式:
%Y
:四位数的年份(例如:2023)%m
:两位数的月份(01 到 12)%d
:两位数的日期(01 到 31)%H
:两位数的小时(24 小时制,00 到 23)%M
:两位数的分钟(00 到 59)%S
:两位数的秒数(00 到 59)
你可以根据需要调整格式字符串。例如,如果你只想显示日期,可以使用 "%Y-%m-%d"
。
以下是一些常见的格式化代码:
%a
:缩写的星期几名称(例如:Mon)%A
:完整的星期几名称(例如:Monday)%b
:缩写的月份名称(例如:Jan)%B
:完整的月份名称(例如:January)%I
:两位数的小时(12 小时制,01 到 12)%p
:AM 或 PM
数组拼接字符串
1 | # 定义一个包含字符串的列表 |
以什么开始
1 | s = "Hello, world!" |
其它方法
Python 有一组可以在字符串上使用的内建方法。
注释:所有字符串方法都返回新值。它们不会更改原始字符串。
方法 | 描述 |
---|---|
capitalize() | 把首字符转换为大写。 |
casefold() | 把字符串转换为小写。 |
center() | 返回居中的字符串。 |
count() | 返回指定值在字符串中出现的次数。 |
encode() | 返回字符串的编码版本。 |
endswith() | 如果字符串以指定值结尾,则返回 true。 |
expandtabs() | 设置字符串的 tab 尺寸。 |
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 值。 |
是否包含
1 | # 定义字符串 |
判断是否为数字
在 Python 中,有多种方法可以判断一个字符串是否表示一个数字。
以下是几种常见的方法:
使用 str.isdigit()
str.isdigit()
方法用于检查字符串是否只包含数字字符。
1 | def is_number_with_isdigit(s): |
使用 str.isnumeric()
str.isnumeric()
方法类似于 isdigit()
,但它对更多的数字字符(如全角数字、罗马数字等)也返回 True
。
1 | def is_number_with_isnumeric(s): |
使用 try-except
结构
这种方法尝试将字符串转换为浮点数或整数,如果转换成功则表示字符串是一个数字。
1 | def is_number_with_try(s): |
使用正则表达式
通过正则表达式来匹配数字。
1 | import re |
总结
str.isdigit()
和str.isnumeric()
适用于简单的整数检查。try-except
结构适用于检查浮点数和整数。- 正则表达式方法提供了最大的灵活性,可以匹配各种形式的数字。