在实际编程中,人机交互是非常重要的,程序需要用户(计算机操作者)输入数据,同时也要把程序的运算结果返回给用户。在人机交互过程中,离不开字符串的操作,本课主要是讲述字符串的拼接与格式化输出。拼接就是连接在一起,字符串的拼接就是把两个或多个字符串连接在一起,形成一个字符串。

Python的算术运算符“+”可以将两个字符串或字符串类型的变量连接为一个字符串,“+”运算符既可以完成两个数值的和运算,也可以完成两个字符串的拼接操作。

print函数输出字符串时,可以将多个字符串通过“+”运算符拼接在一起,如果需要拼接多个字符串,可以连续使用“+”运算符进行拼接。

多个字符串类型的变量也可以通过“+”运算符拼接在一起,形成一个字符串。案例03首先创建了str1和str2两个字符串类型变量,并分别赋值“Python”和“编程”,然后使用“+”运算符将str1和str2拼接成一个字符串,并赋值给str3变量。

字符串类型的变量可以和字符串混合拼接。案例4演示了变量str1和“编程”通过“+”运算符拼接为一个字符串,并通过print函数输出到Shell窗口。

阿萌在编写求圆的面积代码时,他希望print函数能够这样输出圆的面积:

阿萌的想法是在面积的前面加上说明文字“圆的面积为:”,这样比单纯输出面积的数值更人性化。要解决阿萌的想法,可以把“圆的面积为:”和面积的数值S拼接起来,只要把S转换为字符串就可以了。

Python的str函数可以把数值类型的变量转换为字符串。

str是string的缩写,string的中文意思是一串,在编程语言中表示为字符串。因此从函数名称就可推断str函数的功能,该函数可以把数值及数值类型的变量转换为字符串。

字符串格式化输出
实现阿萌的想法还有一种方法,使用print函数的格式化输出功能。

格式化输出就是把要输出的内容按照预定义的格式输出。例如输出的“圆的面积为:78”就是把字符串和变量的内容按照指定格式输出。现在修改一下输出格式,在输出的内容中添加半径及半径的值。输出格式为“半径为5.0圆的面积为:78”,使用print函数可做如下格式化输出。

前面输出圆面积的数值是整数,现在要求输出浮点数,并保留2位小数。下面我们再修改一下输出格式。

可见print函数的格式化输出功能非常强大,它可以允许我们按照一定的格式来输出内容,如字符串和变量按一定格式输出,设置小数保留的位数等。

标记符“%”左侧的字符串是格式化字符串,格式化字符串由字符串和占位符组成,占位符的作用是在字符串中占据一个固定位置,内容由标记符“%”右侧的参数列表中的参数来填充,参数就是一个变量或一个数值。在格式字符串里可以有多个占位符,占位符在字符串的位置可以随意。需要注意格式字符串里的占位符和参数列表的参数是一一对应的,格式字符串里有多少个占位符,参数列表里面就有多少个参数对应。参数列表里面的每个参数之间用英文逗号分隔,参数列表的参数顺序与格式字符串中的占位符顺序要保持一致。例如上图的格式字符串有两个占位符“%.2f”,因此在参数列表里面有两个参数。

占位符由标记符“%”起始,随后是格式说明符,用于对待替换的参数进行格式化处理,常用的占位符有“%d”、“%f”、“%s”。“%d” 用于对整数进行格式化,对应的参数类型必须是整数或浮点数。可以指定输出的整数位数,当输出的整数位数不能填满指定的位数时,需要指定填充的字符,默认填充字符是英文空格。


案例02格式化整数时,要求输出3位数字,如果输出的整数位数不足3位,在整数前面填充字符,默认字符是空格。

当输出的整数位数不足3位时,在整数前面填充字符0。“%s” 用于对字符串的格式化,对应的参数类型可以是数值,也可以是变量。


占位符“%f”的使用
“%f” 用于对浮点数进行格式化,对应的参数类型是整数和小数,可以指定保留的小数位数。

占位符“%.2f”要求保留2位小数,如果需要保留3位小数,可以使用占位符“%.3f”。

如果要输出百分号“%”,可以使用“%%”来表示输出一个百分号“%”。
课程小结
字符串的拼接就是使用“+”运算符将多个字符串连接为一个字符串,也可以拼接数值,在拼接数值之前,需要使用str函数将数值转换为字符串。应用print函数的格式化输出功能,可以按照自己设定的格式来输出内容,让输出的内容直观易懂。print("圆的面积公式:%s" % ("半径的平方与圆周率的积"))print("圆周率:%.3f" % (3.14))