Python中的条件字符串格式化
使用三元运算符来实现条件字符串格式化,例如 result = f'{my_str.upper() if condition else my_str.lower()}'
。 如果满足条件,三元运算符将返回左边的值,否则返回右边的值。
my_str = 'alice'
# ✅ conditional string formatting (f-string)
result = f'Name: {my_str.upper() if len(my_str) > 1 else my_str.capitalize()}'
print(result) # 👉️ Name: ALICE
# -----------------------------------------------
# ✅ conditional string formatting (str.format())
result = 'Name: {}'.format(my_str.upper() if len(
my_str) > 1 else my_str.capitalize())
print(result) # 👉️ Name: ALICE
# -----------------------------------------------
# ✅ conditional string formatting (if/elif/else)
result = f'Name: {"James Doe" if not my_str else my_str.upper() if len(my_str) > 1 else my_str.capitalize()}'
print(result) # 👉️ Name: ALICE
如果必须,请确保在单引号和双引号之间交替。 如果使用相同类型的嵌套引号,则会过早终止字符串。
这些示例在格式化字符串时使用三元运算符来检查条件。
第一个示例使用格式化的字符串文字。
my_str = 'alice'
result = f'Name: {my_str.upper() if len(my_str) > 1 else my_str.capitalize()}'
print(result) # 👉️ Name: ALICE
格式化字符串文字(f-strings)让我们通过在字符串前面加上 f 来在字符串中包含表达式。
表达式必须用大括号括起来 - {表达式}。
三元运算符与内联 if/else
语句非常相似。
该示例检查字符串的长度是否大于 1,如果是,则三元运算符调用字符串的
upper()
方法并返回结果。
如果不满足条件,则运行 else 语句。
这是一个使用三元运算符检查条件的非常简单的示例。
my_bool = True
result = 'Alice' if my_bool else 'Bob'
print(result) # 👉️ 'Alice'
如果满足条件,则返回左边的值,否则返回右边的值。
如果我们需要在 f
字符串中使用特定格式的迷你语言,则必须使用两组花括号。
my_num = 4.56789
result = f'The number is: {my_num:{".2f" if my_num > 1 else ""}}'
print(result) # 👉️ The number is: 4.57
第一组花括号用于计算变量。
花括号的内部集合使用三元运算符来检查条件。
我们还可以使用 str.format()
方法有条件地格式化字符串。
my_str = 'alice'
result = 'Name: {}'.format(my_str.upper() if len(
my_str) > 1 else my_str.capitalize())
print(result) # 👉️ Name: ALICE
我们在调用 str.format()
方法时使用了三元运算符,而不是在 f
字符串中内联使用它。
str.format
方法执行字符串格式化操作。
调用该方法的字符串可以包含使用花括号 {}
指定的替换字段。
确保为
format()
方法提供与字符串中的替换字段一样多的参数。
上面的示例使用三元运算符来模拟内联 if/else
语句。
如果我们有更复杂的条件并需要 if/elif/else
语句,请使用嵌套三元。
my_str = 'alice'
result = f'Name: {"James Doe" if not my_str else my_str.upper() if len(my_str) > 1 else my_str.capitalize()}'
print(result) # 👉️ Name: ALICE
第一个三元运算符检查 my_str
变量是否不存储真值。
如果字符串为空,则条件返回字符串“James Doe”,否则运行 else 语句。
else 语句使用另一个三元运算符。
嵌套三元运算符检查字符串的长度是否大于 1,如果是则将其转换为大写。
相关文章
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串
在 Python Pandas 中使用 str.split 将字符串拆分为两个列表列
发布时间:2024/04/24 浏览次数:1124 分类:Python
-
本教程介绍如何使用 pandas str.split() 函数将字符串拆分为两个列表列。
在 Pandas 中将 Timedelta 转换为 Int
发布时间:2024/04/23 浏览次数:231 分类:Python
-
可以使用 Pandas 中的 dt 属性将 timedelta 转换为整数。
Python 中的 Pandas 插入方法
发布时间:2024/04/23 浏览次数:112 分类:Python
-
本教程介绍了如何在 Pandas DataFrame 中使用 insert 方法在 DataFrame 中插入一列。
使用 Python 将 Pandas DataFrame 保存为 HTML
发布时间:2024/04/21 浏览次数:106 分类:Python
-
本教程演示如何将 Pandas DataFrame 转换为 Python 中的 HTML 表格。
如何将 Python 字典转换为 Pandas DataFrame
发布时间:2024/04/20 浏览次数:73 分类:Python
-
本教程演示如何将 python 字典转换为 Pandas DataFrame,例如使用 Pandas DataFrame 构造函数或 from_dict 方法。
如何在 Pandas 中将 DataFrame 列转换为日期时间
发布时间:2024/04/20 浏览次数:101 分类:Python
-
本文介绍如何将 Pandas DataFrame 列转换为 Python 日期时间。