Why won't python f-string accept a conditional expression that evaluates to a string?

Because f-strings require the expression inside the curly braces to evaluate to a value and not a string.

Related articles:

The Limitations of Python's F-String: Why Conditional Expressions Must Evaluate to Values
Python's f-string is a powerful tool for string interpolation. It allows you to easily insert variables and expressions into a string template using curly braces. You can even use conditional expressions to insert different values depending on certain conditions. However, there are some limitations when it comes to using conditional expressions in f-strings.

What Stops Python's F-String from Accepting Conditional Expressions as Strings?
Python's F-strings are a handy way to format literals in a neater and more concise way. They allow you to replace placeholders with expressions and variables.

Understanding the Mechanics of Python F-Strings: Why Conditionals need to Resolve to Values
Python f-strings provide a convenient way to embed variables, expressions, and other values into a string. These formatted strings are defined by prefixing a string literal with the letter f. This allows the expression within the string to be evaluated at runtime and the value substituted in place.