Python的新手,我有以下脚本:
#!/usr/bin/env python3
import sys
env = sys.argv[1:] # The name of the environment we're executing over ('Dev', 'Test', 'Prod', etc)
print('Executing against ' + env)
上面,应使用env
参数调用脚本,然后将其输出到STDOUT。
是否有更优雅的方法将env
变量注入到要打印的字符串中(所以我没有那种看上去很讨厌的+
串联)?
答案 0 :(得分:1)
尝试一下:
print('Executing against {}'.format(env))
答案 1 :(得分:1)
+
的问题在于第二个参数必须是字符串,否则会引发错误。如果这不是问题,则可以使用+
。但是,还有其他通常更惯用的方式:
1。)打印函数可以采用多个参数,这些参数用空格连接:
print('Executing against', env)
2。)“旧式”插值:
print('Executing against %s' % env)
右侧也可以在元组中使用多个参数。因此,为了防止参数成为元组本身的可能性,通常应始终将变量放在元组中:
print('Executing against %s' % (env,))
3。)更现代的方法是使用.format
及其生态系统(有神奇的__format__
方法,您通常不需要了解的东西,但通常会给您带来很大的灵活性):>
print('Executing against {}'.format(env))
4。)Python 3.6及更高版本:.format()
的语法糖。现在,您可以将变量,甚至整个表达式直接放入字符串中,方法是将其设置为格式字符串(以f
开头):
print(f'Executing against {env}')