为整数月份和日期添加“0”的最简单方法是什么?

waw*_*awa 0 python if-statement f-string

我有输入monthday都是int类型,我想将它们传递给函数来构造路径,如果monthday是低于 10 的数字,我们0在数字前面添加一个:

def construct_path(year, month, day):
    if month >= 10 or day >= 10:
       path = f"xxx/{year}/{month}/{day}"
    elif month < 10 and day >= 10:
       path = f"xxx/{year}/0{month}/{day}"
    elif month >=10 and day <10:
       path = f"xxx/{year}/{month}/0{day}"
    else:
       path = f"xxx/{year}/0{month}/0{day}"
    return path
Run Code Online (Sandbox Code Playgroud)

所以construct_path(2021, 5, 2)应该返回xxx/2021/05/02

代码可以工作,但看起来很复杂,有没有更好的方法来实现这一点?

小智 5

可以使用:02dwith formatting 为一个数字分配两个空格,如果空格为空则用 0 填充。

def construct_path(year, month, day):
    return f'xxx/{year}/{month:02d}/{day:02d}'
Run Code Online (Sandbox Code Playgroud)