Python 如何修复SyntaxError:尝试将零填充到数字字符串时语法无效?

Python 如何修复SyntaxError:尝试将零填充到数字字符串时语法无效?,python,string,if-statement,zero-padding,Python,String,If Statement,Zero Padding,如何修复此代码?如果要在赋值中使用If语句,可以执行以下操作: for i in range(1,50): path = if i < 10: url + '0' + str(i) else: url + str(i) df = pd.read_html(path) 您也可以使用传统方式,但它不像以前的方式那样甜美: 对于范围为1、50的i: 如果i

如何修复此代码?

如果要在赋值中使用If语句,可以执行以下操作:

for i in range(1,50): 
    path = if i < 10:
               url + '0' + str(i)
           else:
               url + str(i)

    df = pd.read_html(path)
您也可以使用传统方式,但它不像以前的方式那样甜美:

对于范围为1、50的i: 如果i<10: i='0'+stri 其他: i=stri path=url+i df=pd.read\u htmlpath ...
保持简单明了,只需执行以下操作:

path = url + '0' + str(i) if i < 10 else url + str(i)

实际上,您需要重新格式化路径,将i转换为零填充字符串。 所以最自然的方法就是使用零填充格式,可以访问 其中包括f_弦。比如:

>>> a = 3
>>> f'{a:0>2}'
'03'
>>> a = 33
>>> f'{a:0>2}'
'33'
>>> a = 333
>>> f'{a:0>2}'
'333'

Python中的if语句不是表达式,也没有值。无法将其分配给变量。这是否回答了您的问题?相反,path=f'{url}{i:02}'。
>>> a = 3
>>> f'{a:0>2}'
'03'
>>> a = 33
>>> f'{a:0>2}'
'33'
>>> a = 333
>>> f'{a:0>2}'
'333'
for i in range(1,50):
    path = url + f'{i:02}'
    # Do with your path whatever you wish