I have the following f-string I want to print out on the condition the variable is available:
f"Percent growth: {self.percent_growth if True else 'No data yet'}"
Which results in:
Percent growth : 0.19824077757643577
So normally I'd use a type specifier for float precision like this:
f'{self.percent_growth:.2f}'
Which would result in:
0.198
But that messes with the if-statement in this case. Either it fails because:
f"Percent profit : {self.percent_profit:.2f if True else 'None yet'}"
The if statement becomes unreachable. Or in the second way:
f"Percent profit : {self.percent_profit if True else 'None yet':.2f}"
The f-string fails whenever the condition leads to the else clause.
So my question is, how can I apply the float precision within the f-string when the f-string can result in two types?
You could use another f-string for your first condition:
f"Percent profit : {f'{self.percent_profit:.2f}' if True else 'None yet'}"
Admittedly not ideal, but it does the job.