在Python中构建字符串的最佳方法

在Python中构建字符串的最佳方法,python,python-2.7,Python,Python 2.7,Python是否有一个函数可以整齐地构建如下所示的字符串: Bob 100 Employee Hourly EmployeeName + ' ' + EmployeeNumber + ' ' + UserType + ' ' + SalaryType stringbuilder(%s,%s,%s,%s, EmployeeName, EmployeeNumber, UserType, SalaryType, \n) 不构建这样的字符串: Bob 100 Employee Hourly Em

Python是否有一个函数可以整齐地构建如下所示的字符串:

Bob 100 Employee Hourly
EmployeeName + ' ' + EmployeeNumber + ' ' + UserType + ' ' + SalaryType
stringbuilder(%s,%s,%s,%s, EmployeeName, EmployeeNumber, UserType, SalaryType, \n)
不构建这样的字符串:

Bob 100 Employee Hourly
EmployeeName + ' ' + EmployeeNumber + ' ' + UserType + ' ' + SalaryType
stringbuilder(%s,%s,%s,%s, EmployeeName, EmployeeNumber, UserType, SalaryType, \n)
我正在寻找的函数可能称为StringBuilder,如下所示:

Bob 100 Employee Hourly
EmployeeName + ' ' + EmployeeNumber + ' ' + UserType + ' ' + SalaryType
stringbuilder(%s,%s,%s,%s, EmployeeName, EmployeeNumber, UserType, SalaryType, \n)

通常,您会寻找
str.join
。它接受包含要链接在一起的内容的iterable的参数,并将其应用于分隔符:

>>> ' '.join((EmployeeName, str(EmployeeNumber), UserType, SalaryType))
'Bob 100 Employee Hourly'

但是,由于您确切地知道字符串将由哪些部分组成,并且并非所有部分都是本机字符串,因此使用
格式可能会更好:

>>> '{0} {1} {2} {3}'.format(EmployeeName, str(EmployeeNumber), UserType, SalaryType)
'Bob 100 Employee Hourly'

这里有两个选项:

  • 使用字符串
    .join()
    方法:
    “”。join([“This”、“is”、“a”、“test”)
  • 使用百分比运算符替换字符串的部分:
    %s,%s!%(“Hello”,“world”)

因为
员工编号
是一个int对象,或者您可能有int数量的变量,您可以使用
str
函数将其转换为字符串,以拒绝
类型错误

>>> ' '.join(map(str,[EmployeeName, EmployeeNumber,UserType , SalaryType]))
'Bob 100 Employee Hourly'

Python有两种构造字符串的简单方法:

字符串格式如下所述:

还有老式的%运算符


您的问题是关于Python 2.7的,但值得注意的是,从Python 3.6开始,我们可以使用

place='world'
你好{place}'
“哈罗世界”


f
前缀称为格式化字符串文字或f-string,在

的文档中有描述。如果任何字段(如
EmployeeNumber
)不是字符串,则需要显式
str(EmployeeNumber)