如何在不首先创建新变量的情况下使用 Python 格式的字符串 `(f'...')` 在子字符串周围添加空格?

Shu*_*eng 3 python python-3.x

假设,我想将以下.format()'ed 字符串转换为f'...'表达式:

self.logger.debug('{:10} -- {}'.format('Jira', 'Scan: {} '.format(self.scan_id)))
Run Code Online (Sandbox Code Playgroud)

我可以轻松做到:

self.logger.debug(f'Jira      -- {self.scan_id}`)
Run Code Online (Sandbox Code Playgroud)

但是,我不想'Jira'手动添加空格(宽度)。我怎样才能做到这一点而不必先创建一个新变量,如下所示:

s='Jira'
self.logger.debug(f'{s:10} -- {self.scan_id}`)
Run Code Online (Sandbox Code Playgroud)

?

Aso*_*cia 7

您可以直接将字符串放在大括号中,如下所示:

self.logger.debug(f'{"Jira":10} -- {self.scan_id}')
Run Code Online (Sandbox Code Playgroud)

因为 f-string 需要一个表达式,{}而字符串本身就是一个有效的表达式。