>>> "Python猫" + 666
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
>>> "Python猫" + str(666)
'Python猫666'
几种字符串拼接方式:
1、格式化类:%、format()、template
2、拼接类:+、()、join()
3、插值类:f-string
>>> "%s %d" % ("Python猫", 666)
'Python猫 666'
>>> from string import Template
>>> s = Template('${s1}${s2}')
>>> s.safe_substitute(s1='Python猫',s2=666)
'Python猫666'
>>> "Python猫{}".format(666)
'Python猫666'
>>> num = 666
>>> f"Python猫{num}"
'Python猫666'
f'<text> { <expression> <optional !s, !r, or !a> <optional : format specifier> } <text> ...'
type(value).__format__(value, format_spec)
或者 format(value, format_spec)
。format_spec
是一个空字符串,而format(value, "")
的效果等同于str(value)
,因此,在不指定其它 format_spec 的情况下,可以简单地认为 f-string 就是调用了 str() 来作的类型转化……