Python 中的条件格式化字符串

Conditional Formatted Strings in Python

def secondCalculator(days, hours, minutes, seconds):
days = int(input("Days: ")) * 3600 * 24
hours = int(input("Hours: ")) * 3600
minutes = int(input("Minutes: ")) * 60
seconds = int(input("Seconds: "))

allSec = days + hours + minutes + seconds

if days == 1:
    print(f"{days} Days,{hours} Hours, {minutes} Minutes, {seconds} Seconds are equal to {allSec} seconds.")

#### same use of if, for hours, minutes and seconds.

如果用户输入 第二个计算器(0,1,2,5) 输出应该是: 0天1小时2分5秒等于3725秒。

当用户输入 1 天时,应该打印“天”而不是“天”,时、分、秒也是如此。 事情是用 if 是可行的,但我想也许有更简单的方法来做到这一点。

如何让它根据用户输入的数字加上“s”后缀。 我们可以为它实现条件字符串格式化吗?

使用:

if days > 1:
    suffix_day = 'days'
elif days == 0:
    suffix_day = 'days'
else:
    suffix_day = 'day'

然后使用:

print(f'{days} {suffix_day})

可能是这样的?将它包装在一个函数中可能有意义:

>>> days = 1
>>> f"day{('s', '')[days==1]}"
'day'
>>> days = 2
>>> f"day{('s', '')[days==1]}"
'days'
>>> 

定义:

def s(val):
        if val > 1:
            return "s"
        return ""

并将其用作:

print(f"{days} Day{s(days)}