python日常学习——字符串格式化

本文介绍了如何在Python中格式化字符串,包括使用传统的百分号格式化和Python3.6及以上版本的f-string,特别强调了f-string的易用性和优点,如无需关注顺序和数据类型,直接插入变量。
摘要由CSDN通过智能技术生成

今天我们来讲关于字符串的一个操作。那咱们首先先从简单的入手啊,第一个要聊的话题呢,是如何去格式化一个字符串?那什么叫字符串的格式化呢?就很简单啊,比方说我现在有这么个需求,让你输入一个用户名啊,一个人的名字,然后呢,他的年龄,他的住址,他的爱好,然后呢,输出这样的一段话,我叫谁谁谁,我住在什么地方,然后呢,我今年多少岁?我喜欢做什么事情?就是以这样的一个固定的格式来说出一段话。

那此时我第一件事情得让用户能输入他的这些个东西。第一个得输入他的名字:请输入你的名字。然后接下来"请输入你的住址"。再来他今年多大了?age转换成int类型"请输入你的年龄",再往下还有一个爱好。这些东西输入完了之后,我想让它以一个固定的格式来去展示,那这个时候我要准备一个变量,字符串等于固定的格式。格式就定死了。

然后接下来的问题是我怎么把这些玩意儿给它塞到这些个地方?

我得先对我的这句话,这个格式先给它定义出来。那我叫xxx这个地方未来我要放那个name,name是字符串儿类型的,所以我未来要往这儿放一个字符串儿,那我就可以%s。%s它的含义是字符串的占位。就这个位置,未来我要放一个字符串儿的意思。那再往下,我住在xxx,我住在address,所以这个地方也应该是未来要放字符串。那今年xxx岁了,未来要放的是不是字符串儿了?不是,是int类型,所以这个时候诶,我就要需要用到另外一个东西,能够占位数字的地方,

%d。当然这个地方得是整数啊。再往下,我喜欢xxx,那要放的是hobby,hobby也是占位这个字符串,所以这个地方也是%s。那这样的话,我这个字符串的格式是不是就出来了?

那接下来就是往这个固定的格式里边塞数据。那怎么放?后面跟上一个空格,加上一个%,再一个空格,然后加上一个小括号。这个小括号里面每一个位置要对应前面的每一个位置,比方说第一个位置放的是什么?是不是要放名字?把名字塞过来。第二个位置放什么?是不是放address?所以把address放在这儿。然后再往下要放什么?这个位置要放年龄,那就把年龄放在这儿啊,你怎么设计你就怎么来。最后一个放hobby。

这样的话,一个字符串儿就格式化完了,我们还要打印字符串试验一下。

所以此时我们这个字符串就成功的进行了一个格式化。但是,这玩意不好。不好在哪儿呢?%符号很烦人。那能不能把它做一个简化呢?可以的,python里面还可以这样去格式化一个字符串。比方说s1=,格式还是这个格式,只不过呢,有些东西要替换一下,比方说这个位置我还可以这么去做占位。这个地方站位站好了位置,是不是要往里面填东西啊?.format,依然是一个位置对一个位置。所以,就这个顺序,往里面一放就可以了。

来我们看一下。

没问题吧,对不对?所以也可以格式化。但是我跟你说,这两种情况都不好。

不好在哪儿呢?你想一个事情啊,如果我现在要求你给我输出重复的几个信息,然后中间穿插其他信息,这个时候后面填的变量是不是有好几个全是一样的,你还得数,还得注意一下顺序。中间来其他东西的时候,你就得记住这儿放什么,还得跟后面的能对得上,要不然就不行。所以这个时候就很烦人,我还得记顺序,第一个方法更恶心,还得记数据类型,很烦人。

那怎么办呢?python在3.6之后出了这么一个新的格式化的方案,叫f-spring。里面可以干嘛呢?在你的字符串的前面怼上一个字母f,然后呢,中间那些大括号的意思是你准备把哪个变量塞到这个位置,直接把变量塞进来,比方说我想塞name,放在这儿,这个位置叫name。我今年多大了?我想放age,把age放过来。

这个时候你会发现这种方案,它的好处是什么呢?你的数据和你的格式放在一起了,你还用记顺序吗?不需要。就是比上面这俩都要好的多,而且还不用管数据类型,直接往里怼就可以了。来,我们来看一眼s2能不能用。

没有问题啊,非常的好用。所以这个时候我们推荐大家用这种方案啊,当然如果你是python很老的,就用不了,之后都能用啊,所以我推荐大家用这套方案。

这是我们格式化输出啊,格式化字符串这么一个要跟各位聊的东西。然后呢,再给各位简单的补充一点,就是第一,%s,它不仅仅可以做字符串儿的占位,它还可以放整数啊,小数啊,都可以放,所以%s呢在这里面可以认为是万能的,无敌的。

但是你这个地方如果写成%d,你再放个字符串就不行了。这是它的一个硬性规定。

然后还有一个叫%f,这补充的啊,就没什么含金量的东西啊,简单了解就可以了,%f叫占位小数,我们用的都不多啊。

还有一种情况就有点特殊了,比方说s0=我叫什么,完事儿了,那就可以跟个%,后面这个小括号可以有可以没有。就是如果你这里面只有一项数据的话,你就可以没有这个小括号,然后呢,放个name也成,它没不会报错。

我们可以试一下啊。

也没问题啊,所以只有一项的时候可以不加那括号儿啊,如果多项的话,必须加这个括号。

那这个就是关于字符串儿格式化的一个问题,你要记住的是f-spring。f-spring就是f打头儿,然后里面儿呢就放上变量,直接大括号儿往里放变量就行了,这个更简单更方便,而且更容易调bug。

字符串的第一个操作,咱们就说到这。

  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值