今日建军节干货——如何用高端的方式来说“我爱中国”,来看看怎么使用Python来输出“国 中国 爱中国 我爱中国”
简单分析问题:从字符串的末尾开始循环输出字段。
字符串索引
字符串是字符的有序集合,得益于此,在Python中,我们可以直接使用索引来提取字符串中的任意字符,其用法同数组。
创建一个变量,把字符串“我爱中国”给赋进去。同数组一样,其索引的排序也是从0开始:
我们如果需要提取“中”字,我们可以这样写:
直接使用str[2]来调用:
因此我们如果要输出第一个文字,“国”,直接使用str[3]即可。
除了正着调用,我们还可以用负数,倒着进行调用:
如果是倒着调用的话,其索引略有不同,排序是从-1开始,倒着排,第一个字符的索引为-4,而最后一个字符的索引是-1,也是从小到大的顺序。
结合负数的索引,我们就能很方便地调用任何一个字符串的最后一个字符了:
这样的结果也是"国"字。
字符串截取
单个字符的输出搞定了,那多个字符呢,如果要输出字符串内的“爱中”二字,我们还能这样写:
我们可以使用冒号进行截取,str[1:3],可以发现截取是从第1个字符,到第3个字符前,因此[1:3]的结果会是“爱中”二字,如果是[1:2],就会只是一个"爱"字了。
因此如果我们想要得到"爱中国"三个字,我们可以这么写:
而因为这三个字又是字符串的倒数三个字符,因此我们还可以这样写:这表示截取从-3开始后的所有字符,效果如图:
这表示截取从-3开始后的所有字符,效果如图:
输出
了解了这两个小知识,要输出“国 中国 爱中国 我爱中国” 这四个字段就非常简单了。
正着来:
(右滑查看完整代码)
倒着来:
(右滑查看完整代码)
(效果相同)
这样一来本题就算答完了。
但是,这种手动指向的代码一点也不高端,而且也不具备通用性,如果改成5个字符6个字符,下方代码还要跟着改变,为了Geek,我们来把这个答案变得高端且具有一定的通用性。
更好的输出
要有通用性,我们得用上input()函数,让用户自由输入想要输出的字符串。
input()函数的作用十分简单,写上去,用户输入的内容就能被赋入你设置的变量内。
根据上面写的两段代码,我们可以看到,无论是正着输出还是倒着输出,都是递减的,倒着输出时,单看数字是递增的,因此我们可以使用一个for循环来进行输出:
由于for循环是从0开始递增的,而我们的“国”字其索引是从-1开始的,因此我们在print的时候需要帮索引x+1,并加上一个负号,结合上x在数组长度len()循环的条件,就能够使其能够从-1开始,循环到-4为止。
效果如图,这样,无论你想要输入什么,系统都能按本题要求进行输出。
那么今天就拿这段代码作为中国解放军们的节日祝福啦。
Tips
根据上面写的两段代码,我们可以看如果觉得三行的代码还不够精简的话,可以利用for循环的特性,用一个中括号来包含输出和循环的语句:
大家也许还可以再琢磨琢磨,看看有没有一行代码就能达到本题要求的办法~
领取专属 10元无门槛券
私享最新 技术干货