for i in range(1,50):
path = if i < 10:
url + '0' + str(i)
else:
url + str(i)
df = pd.read_html(path)
この状況で、私は
SyntaxError: invalid syntax for 'if'.
このコードを修正するにはどうすればよいですか?
for i in range(1,50):
path = if i < 10:
url + '0' + str(i)
else:
url + str(i)
df = pd.read_html(path)
この状況で、私は
SyntaxError: invalid syntax for 'if'.
このコードを修正するにはどうすればよいですか?
シンプルかつ明示的に保ち、次のようにします。
if i < 10:
path = url + '0' + str(i)
else:
path = url + str(i)
または、Python の文字列フォーマット機能を使用して文字列を作成します。最小長が 2 文字のゼロが埋め込まれた文字列が必要な場合は、次の形式を使用できます。
>>> a = 3
>>> f'{a:0>2}'
'03'
>>> a = 33
>>> f'{a:0>2}'
'33'
>>> a = 333
>>> f'{a:0>2}'
'333'
代入で if ステートメントを使用する場合は、次の操作を実行できます。
path = url + '0' + str(i) if i < 10 else url + str(i)
したがって、ループ内のコードは次のようになります。
for i in range(1,50):
path = url + '0' + str(i) if i < 10 else url + str(i)
df = pd.read_html(path)
...
あなたの目標には別のアプローチがあります。数字をゼロパディングして2文字にする必要があるためzfill
、strクラスのメソッドを使用できます。
for i in range(1,50):
padded_i = str(i).zfill(2)
path = '{url}{id}'.format(url=url, id=padded_i)
df = pd.read_html(path)
...
従来の方法も使用できますが、前のものほど甘くはありません。
for i in range(1, 50):
if i < 10:
i = '0' + str(i)
else:
i = str(i)
path = url + i
df = pd.read_html(path)
...