00:00
好,接下来我们来说还是继续说字符串啊,我们说一下字符串的下一个知识点啊,嗯,叫什么呢?零六叫做一个格式化字符串,因为字符串我们经常是用来去显示一些信息的,所以在这儿我们要说如何去显示信息啊,格式化字符串,呃,显示信息显示什么呢?啊,举个例子啊,比如说我来一个A等于一个hello,那现在我有一个变量A,变量A的值是一个hello,我这直接打印一个print a啊print a在这我们直接来运行一下打印了一个hello,对吧?现在打印的结果是这样的,但是我们实际上这种打印的结果体验并不好,不好在哪呢?这种形式打印,打印完了之后,其实我是看到hello,但是hello是什么我是看不出来的,对吧?我希望他给我打印的什么形式呢?打印的是一个A等于hello,那这样打印完。
01:00
完了我是不是就我就知道它打印的是什么值了,诶打印什么值了,A等于一个hello,打印完了我就知道打印的是什么了,打印的是变量A的值,A的值是hello就很明确了,对吧?那现在我要想打印这么一个东西,我要怎么打印呢?哎,那我们来看一下,说一下我们这个格式化字符串,那格式化字符串我们来先说啊,之前我们去讲数字的时候,我们去说了数字和数字是不是可以做加法运算呀,哎,加减乘除这些运算,那注意了,字符串它不是加减乘都能做,但是它有一部分运算是可以做的,那比如说字符串之间也可以进行这个加法。运算啊,字符串之间也可以进行加法运算,比如说我来一个A等于ABC,然后加上一个,哎哈哈哈,那这是什么效果,这是把ABC和哈哈哈两个字符串进行相加,那这什么效果?哎,如果将两个字符串进行相加,哎,则会自动将两个字符串拼接为一个啊,拼接为一个,所以这个时候我们再来看prevent一个A,这样一保存,我这一执行是不是ABC哈哈哈呀,哎哈哈ABC哈哈就把这两个字符串给它拼成一个了啊,所以注意诶,如果对字符串进行拼,哎,加法当然你不一定非得是两个,你写三个也行啊,来一个这个哈哈啊,这一保存,那效果就是把这三个给你拼成一个啊,所以注意可以对字符串进行加法操作,这样它可以完成这个什么呀,诶,完成这个拼串啊,可以自动。
02:39
将两个字符串拼接成一个啊,拼成一个好,那这是我们说的字符串之间的一个这个加法,那这里我们来说一下,那同学说你这有什么用啊,哎,这个的好处就是如果你现在想显示一个A等于什么什么的形式,你就可以这么写了,我可以直接这来一个打印A变量的时候,我就直接来一个A等于,然后我这加上一个A,那这块注意这整个是一个字符串,这是不是一个字符串啊,我在等于把这个字符串和这个字符串进行拼接,这时候我一看是不是就A等于AB caa谁哈哈呀,哎,就这么一个效果啊,那这样就可以完成我们那么一个需求啊,就说可以对字符串进行格式化来满足我们需求显示结构,那这样显示看起来是不是就清晰多了,哎,就清晰多了啊,是这么一个意思,但是注意啊,我们这儿你看我在写等号,在写加号的时候,你看我这前后都习惯性加一个空格,注意这空格是不是必须的,哎,不是啊,这空格你写不写都行。
03:39
哎,写也行,不写也行,但是在这儿我习惯写上,因为写上以后格式更清晰,更好看一点啊,更好看一点,好,那这个就是我们说一个拼串,但是注意这种写法在Python中不常见,这种写法在我们这个Python中不常见啊,不常见。
04:03
呃,不常见,哎,为什么这么说啊,那这里边注意了,我们来看一下啊,那现在A是个字符串对吧?我拿三个字符串加一块A是个字符串,那现在我来一个什么呢?来一个A等于123 a等于123,现在A是不是个是个数字啊,哎,是个整形,是个int类型,在这我这一执行你会发现什么呀?哎,必须是个字符串,不能是int啊,必须是个字符串,不能是int,为什么说这种方式不常用,因为注意了。哎,我们的字符串只能和字符串进行拼接,哎,字符串只能和字符串进行拼接,哎,或者这么说吧,哎,字符串不能和其他的类型进行这个加法运算,哎,运算哎如果做了,哎会报错啊,会出现异常啊,或者说报错都行啊,会出现异常,什么异常就这个type ever must,比s tr not in啊,Not in,那所以这个时候它的适用性就不高了,那你想想我在输出一个变量的时候,我这变量不可能总是字符串,对吧?我很有可能是不是有一些其他的数据类型啊,而这个时候出现这种情况就不好了,当然我们会说这怎么处理,处理解下其实也还行,也不是特别麻烦,但是呢,呃,比别的方式就麻烦多了,所以这种方式我们不推荐用,待会儿我们来说如何去处理,然后再往下去说,那不用这种方式怎么办?我们有没有什么更通用的方式,那知。
05:32
之前我们说过了,Print是一个函数,这个函数里可以传两个参数,如果传两个参数,它会把两个参数是不是都输出啊,这时候我们一保存,你看ABCBCD是不是都输出了,而且ABC和BCD之间是不是给你加了一个空格啊,那所以这时候我们可以利用这个特点,我可以怎么写呢?我可以这么写,我可以直接来一个A等于,然后逗号来一个A,那这里边我就传了两个参数,第一个参数是A等于,第二个参数是A,那这个时候它的效果是不是就是就是它了,哎,也是跟这个效果一样,但是好处就是它无论A是什么类型都可以去执行啊,都可以执行,为什么呀,因为它是一个参数,而没有和它进行拼称啊,没有和它进行拼串,所以这个就是我们说的,我们常用的这是第一种方式啊,第一种方式可以使用print,哎,为print传两个参数的形式来格式化我们那个信息啊,来格式化信息,好这是一种方式,然后还有什么方式呢?那注意了,我们在。
06:32
这个创建字符串时,诶可以在我们这个字符串中,字符串中指定我们这个占位符,站位符,哎,什么意思?来看这儿啊,我来一个B吧,B这个字符,这等于一个hello空格,我这写一个这个什么呢?我写一个百分之S啊百分之S现在注意我们这来print一下这个B,那注意在这儿我现在有了一个百分之S,百分之S就是一个占位符,百分之S,哎在字符串中,在字符串中它就是什么呢?它表示我们这个任意字符串,表示任意字符串,也就是说这写了一个hello hello完了,百分之S什么意思?告诉你这个位置可能是一个任意的字符串,那现在我看我这直接打印看什么效果。
07:32
一直行,你会发现他在这时候直接把百分之S就给我输出了,哎并没有任何效果,为什么呀?因为现在我写了一个百分之S,但是有没有对百分之S进行填充啊,哎,没有进行填充,那怎么办?我们需要对占位符进行填充,怎么填充?我们这儿用的是一个百分号,注意这个百分号是在字符串的外边跟着一个百分号,我百分号再写一个什么呢?哎,写一个这个孙悟空,孙悟空,那注意那这个是什么意思?首先这个字符串里有一个战位符叫百分之S,然后我们用谁填充,用孙悟空去填充这个百分之S,这时候我们来看效果,直接一执行,你再看这这是不是写的就是哈喽孙悟空啊,哎,就是说我现在用孙悟空把这个东西就给他占上了啊,给它占上了,当然这里边注意我们可以再写的复杂一点,比如说我直接来一个这个B等于一个还是哈一个百分之S,然后再写一个你好百分之S,注意这个。
08:32
不说我这是不是有两个战符了,哎,那看着啊,我这写一个百分之孙悟空,你会发现是不是报错了人告诉你什么,哎,Not enough arguments arguments参数enough足够,哎,不足够,也就是说对于格式化string的这个参数不够啊,为什么呀,人家这有两个站位的,你这只给了一个,是不是肯定不够呀,所以注意这个时候你就得需要传两个,那怎么办?传两个的时候,这个百分号后边你要跟着一个括号,哎,因为是两个参数嘛,括号参数之间使用这个什么呀?哎,逗号来隔开,我这来一个这个Tom,那这什么效果,我用Tom填第一个百分之S,用孙悟空填第二个百分之S,这时候我们这一执行看效果是不是就hello Tom,你好孙悟空啊,哎,你好孙悟空啊,所以注意它的这个站位符是按顺序填的,第一个对应的是第一个,第二个对应的是第二个,当然你写三个行不行,写四个行不行,哎,都行,想写几个就写几个啊,想写几个就写几个好,然后接着我们再来看。
09:32
再来看什么呢?我还是来一个hello百分之S,然后我们这直接来一个百分之,我且简单一点,来一个ABCDEFG这一保存,我们这一执行现在是不是变成hello ABC fg了,诶就说他在用它去填这个百分之S,那这时候注意啊,我在这儿我可以指定一个啊,指定一个什么呢?比如说我指定一个三,3S 3S表示什么意思,这个表示限制我们这个字符串的一个最小位数,什么意思,就是说在这儿我们是不是可以用字符串去填充这个位置内容啊,哎,那注意我写三什么意思,最小三个啊,最少三个,那现在来看啊,我这先写一个ad,我先不写三啊,先不写三,我这一保存就是hello AB啊hello AB来看着我这写一个3%S,那这时候看效果,一保存你会发现什么?嗯,这样可能不太好看出来,我把这个空格给它去了啊,还是先不写,三一保存就是hello,是不是直接AB了,哎,直接AB了,那这时候我加13S这一保存,Hello AB这是不多。
10:32
空格啊,什么意思呀?在这儿我写了一个3S,表示我这儿填的字符串最小是三个啊,最小是三个,如果超过,如果不够,我就用空格去补,所以AB它前面加了一个空格,你会发现这是不是多了一空格啊,这就是因为它补的,所以在这你还可以限制它的位数啊,限制位数先写上一保存一保。呃,先给它关掉啊。关闭右侧我再执行一下走一个,这时候是不是多了一空格啊,空格是补位的,那这时候注意了,我如果是ABCDEFG,我现在是不是超过三个了,哎,超过三个了就不管了啊,够了就不管了,不够我给你补空格啊,够了就不管,不够补空格还可以再什么呢?我再写一个三逗号五,3.5啊3.5 3.5什么效果,再来看你看ABCEFG还有没有了,没有了,所以3.5叫什么?最小三,最少三个,最多五个,三到五个之间啊,要多了截去,少了补空格啊,所以这个什么意思啊,所以这个是我们这个说一下诶三点百分之三点五S,哎,我们这个字符串的长度限制在三到五。
11:46
之间啊,限制在三到五之间啊好,这个是我们说的一个这个它,嗯,它然后再来看啊再来看,那现在我们是写的它啊,再换一个B,等于我还是前面写1HELLO啊,我们就简单写一下,演示一下hello百分之S,这时候摆个号来个123,注意了,我在这儿是不是在用123去填百分之S呀,但是问题就来了,这123是什么呀?诶是一个印的是一个整形,而S我们说了S实际上是表示的是字符串,之前我们这写字符串没有写字符串英文是吧,字符串我们这儿是在我们Python里叫SSPR啊,或者叫string都行啊SSPR,那这个时候实际上这个百分之S就是string简写啊,他现在希望的是一个string,你给他一个int,我们来看效果,这一直行在这儿,它是不是也可以去传进去,哎,也可以去传进去,这一点它是没问题的,也就说这个123也可以去传进去,但是这个时候你要注意了。
12:46
我来一什么呢?我这来一个这个,哎,我来一个这个小数呢,123.5啊,123.5,我这一执行,这时候是不是也去给它填进去了,诶也就是说实际上在这里我们的string是万能的,也就说你在这儿无论是传这个小数也好,还是传整数也好,它都是可以的啊随是万能的,但是这里边我们来看一下,我这来一个3S,或者来一个5S,比如说我要限制我们这个位数是五,那这个时候我们来再运行它,同样是不是也在这儿去补空格啊,哎,也在去补空格,那好我来一个限制一个什么呢?诶,我想限制它小数,比如说现在是123456是三位小数,我想限制什么呢?我想限制它是一位小数,那怎么办呢?那我一想小数我来个点ES吧,这一保存,我们这一执行,你会发现是不是就剩了一个一了,哎就剩了个一了,也就是说你这个是什么意思呀?哎,就说最大一位,最大一位是不是一后边全都给你省去。
13:46
去了爱克给省去了,所以这时候就出现一些问题了啊,出现问题了,用S去用数字去替换这个2%S确实可以,但是它总是有一些缺陷,它有些不足,也就说对于这种数字的情况,你想保留小数还是做不到的,那怎么办呢?我们还有一个叫做百分之F,百分之F这是表示的是我们这个小数浮点数的啊float的,我这来一个123.4啊,123.4,我们这一保存一直行,你看是不是变成123.4,然后后边几个零啊,哎,几个零,那注意它这小数是不是位置有点多呀,那我在这就可以写一个点2F保留两位小数,这一直行,是不是123.40啊,哎,四零啊,所以注意点2F指的是几位小数,那我看着我来一个456啊,456我这一直行是不是变成123.46啊,你们发现它是不是还会自动的四舍五入啊,哎,四舍五入,所以注意百分之F表示的是我们这个小数,所以这里边我们来列几个。
14:46
哎,百分之S,哎是什么呀?哎表示任意的这个什么呀,小数是我们这个浮点数的这个单位数。占位符,然后百分之还有一个百分之D是我们这个,哎数字的占位符啊,数字占位符,什么叫数字占位符,其实是我们这个整数的占位符啊,整数占位符,我们再来看一下百分之D啊B等于一个哈,然后我们来一个百分之D啊,我们这来一个百分号,123.45啊123.45这一保存,这一执行,你看小数位是不是直接就给你舍去了,哎,没有小数位了啊,所以它只表示整数,那我来看一个123.551直行变成了123,它这块还是什么呀,直接把小数我看看啊,123.95这一直行还是123,也就是说它实际上是直接把小数给舍去了,诶只要整数呀,后边全都不要了,也没有什么四舍五入啊,没有四什么四舍五入,所以这里边注意百分之S任意字符F是浮点,这个百分之D是这个整数的啊,整数的这个占位符啊好,这是我们说的这几种占位符,我们说几种常用的啊,这几种哎,其实都是比较。
15:57
传统的方式了,那好回到我们刚才需求,现在我想打印一个A等于什么什么的结构,那怎么办?在这儿可以直接这么写,直接写一个A等于,然后我后边跟着一个百分之,哎,百分之S,哎,直接来个百分之A,那在这儿我要打印这个字符串,然后用A的值是不是去填充这个百分之S啊,这个时候我这一执行A等于123是不是效果是一样的,哎,效果是一样的啊,所以注意在这里我们可以使用它,也可以使用我们这种方式啊,再来说我们的第三种方式,第三种方式也是一种新的方式啊,PYTHON3里边新有的我们叫做格式化字符串,格式化字符串啊,这玩意儿就叫格式化字符串,哎,我们可以通过,哎,在我们这个诶字符串前添加一个F,哎,来创建一个格式化字符串,什么意思来看,C等于一个hello,这是一个普通字。
16:57
串,如果我在字符串中加前边加一个F,注意这个F是在引号外边,大F小F都行,在字符串前面加了一个F,这就变成了格式化字符串,那我们说了这格式化字符串什么特点呀?我打印一下C啊,一保存打印的时候效果是不是一样的呀?哎,一样的那它有什么用?那注意在格式化字符串中可以直接嵌入变量,什么意思?这不是hello吗?Hello里边看着啊,我写一个大块A,然后再写一个大块B,那注意在这个格式化字符串里我写了大块,大块表示这个内容是个变量,大块A表示个变量A,大括号B表示它是一个变量B,等于在字符串里边写了两个变量,一个是A,一个是B,那这个时候这个A和B的值就会被什么,就会被我们这个变量的值所替代,A的值是多少,这就是多少,B的值是多少,这就是多少,我们这一保存一执行是不是哈,123AA和B都。
17:57
就是。A和BB等于。
18:04
等于这里边是不是给我们打出了两个号,这是巧了,因为B的值我们是不是也写的123呀,来我这换一个吧,B等于一个这个呵呵啊呵呵,这一保存我们这一执行是不是HELLO123,呵呵呀,诶哈123,呵呵,也就是说诶这个位置被他替换,这个位置被123所替换,所以格式化字符串也是比较方便的,在里边可以直接去写这个变量,所以如果你还是想打印一个C等于什么,你可以在这怎么写啊F,然后直接来一个C等于这来一个C,这样一保存效果是一样的,看到了吧,诶或者咱们写一个A等于吧,A比较简单一点,A就是123 a等于一个A这一保存。效果是不是一样的呀,哎,效果是一样的啊,所以这个里要注意了,这也是我们说的一个格式化字符串的一另一种方式,但是注意啊,如果在这儿我写一个这个D,有没有变量D啊,没有变量D,这时候你执行干嘛了,报错了,Named is not DeFine,所以注意在格式化字符串中写的这个变量必须是有效的,必须是用过的,没用过同样也会报错啊,这个我就不多说了啊,这里我们说了三种格式化字符串的方式,一个是我们这种,哎,其实说了四种拼串,这种方式稍微麻烦一点,不用它,但是你可以稍后试一下。二一种传两个参数这种,三一种我们可以通过这个占位符,四一种格式化字符串里边直接传变量啊,这也是我们格式化字符串的四种方式啊,格化字种四种方式,哎,然后呢,我们留一个简单的练习。
19:39
练习干嘛呢?诶创建一个变量来保存你的名字,诶创建一个变量来保存你的名字,然后通过四种方式,哎,四种哎格式化字符串的方式来干嘛呢?哎,在我们这个命令行中,哎在我们这个命令行中显示,哎,欢迎诶叉叉叉光临啊,欢迎叉叉光临什么意思呀?你是孙悟空,就欢迎孙悟空光临,你是猪八戒,欢迎猪八戒光临,你是沙和尚,欢迎这沙和尚光临,你说这个位置需要通过变量来填充,用四种方式去填充啊宋老师填充好,这里我们来停一下。
我来说两句