在上一篇,我们讲到了print的各种用法,相信小伙伴们通过练习已经有所掌握。大家有看到过如下图所示的乘法口诀表吗?
是不是看起来非常整齐呢,这是怎么做到的呢~其实并不难,接下来我将介绍一下Python的字符串拼接和格式化字符串输出,在这个基础上,教大家如何打印一个九九乘法口诀表。
首先,我们来回顾一个最基本的print
1.print('hello,world')
如果我们想将多个变量同时打印怎么办呢?接下来给小伙伴们介绍几种方法~
使用加号拼接字符串
首先,最简单的方法,我们可以用加号+把两个字符串拼接起来。比如
1.print('hello'+',world')
那么,当我们想把一个字符串和一个数字拼接起来怎么办呢,我们上一篇也讲到过,使用str()方法就可以将其它类型的变量转换为字符串,然后再将它们用加号连起来就可以啦。
1.print('you are No.'+str(1))
使用join方法拼接字符串
问题又来了,如果我希望把多个字符串连接起来,其中每个字符串之间指定的字符连接,怎么办呢?我们可以用join方法,但是要注意,join方法的用法有点特别,我们先看个例子,可能更容易理解
1.print('~'.join(['hello','world']))
在这里呢,我们吧两个字符串’hello’和"world’使用~连接起来啦。注意,join是字符串’~’的一个方法。它的参数是一个字符串的列表,划重点~是一个字符串的列表,然后将字符串列表中的每个字符串使用字符串’~’连接起来。当然,这里join前面的字符串我们可以自己定义,使用起来非常灵活~
但是,以上的方法还是没有解决一个问题,那就是,当我们需要将一些变量值填入到字符串时,使用加号+或者join方法就非常复杂。这时候,怎么办呢?
格式化字符串输出
大家在上学的时候,有没有拿书再图书馆或自习室占过位置。因为临时有事,把书放在一个座位上,声明这是我的位子,然后等事情忙完后再回来学习。(当然,不推荐占位太久哦~可能会影响到别人的学习~)
我们把这种思想放到Python中,也是可以的,如果我们在输出的字符串中留一些占位符,表示这些位置将会有输出的变量,然后,我们再指定哪个位置是哪个变量,这样就可以实现我们的想法啦。
在Python的print() 函数中,使用以%开头的转换说明符对各种类型的数据进行格式化输出,这里的转换说明符就是一种占位符,使用非常简单。常见的转换说明符如下所示。
我们先来看一个简单的例子
1.>>> established_year=2015
2.>>>print('Viax成立于%d年'% established_year)
3.Viax成立于2015年
在这里,我们将一个int类型的变量established_year的值添加到字符串中一起输出,用的是%d转换说明符。
划重点~小伙伴们注意,这里占位的变量是在%后面
那么,如果我们有多个变量,怎么办呢?我们还是上例子
1.>>> established_year=2015
2.>>> established_month=7
3.>>>print('Viax成立于%d年%d月'% (established_year,established_month))
4.Viax成立于2015年7月
可以看到,我们要在字符串中插入多少变量,就是用多少转换说明符,有一点要注意,就是字符串结束的%后面,所有要插入的变量需要放在一个圆括号里,不能没有括号,也不能是其他括号哦~
有时候,我们希望插入的变量在输出时占据一定数目的字符数时,怎么办呢~也很简单。我们在转换说明符中%的后面指定占用字符数目就可以了。举个栗子,%10d 表示输出的整数所占字符数至少为 10,注意这里是至少,也就是最小字符数目。如果说一个字符数目是11的话,还是按照11位输出的哦~
打印九九乘法口诀表
那么,接下来,我们给出我们今天的终极例子,教小伙伴们怎么输出一个整齐划一的九九乘法口诀表。这里要用到的就是我们今天讲到的格式化字符串和指定输出占用字符数目的知识点~
1.foriinrange(1,10):
2.forjinrange( 1,i+1):
3.print("%2s x%2s = %2s"% (j, i, i*j),end=' ')
4.print('')
输出的效果如下图所示
为什么会产生这样整齐的效果呢。小伙伴们可以自己思考一下原因哦~解答请移步评论区哦~
结束语
今天,给小伙伴们介绍了字符串的拼接,以及在print中格式化字符串。通过转换说明符在输出的字符串中插入变量值,是非常实用的功能,尤其是当我们需要在程序运行时想要知道一些中间变量值得时候。最后教大家如何输出乘法口诀表,里面的原因大家多多思考哦~