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

Python 中的条件字符串格式化

如果必须,请确保在单引号和双引号之间交替。 如果使用相同类型的嵌套引号,则会过早终止字符串。

这些示例在格式化字符串时使用三元运算符来检查条件。

第一个示例使用格式化的字符串文字。

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,如果是则将其转换为大写。