格式化字符串|学习笔记

开发者学堂课程【Python 语言基础 1 :语法入门:格式化字符串】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/599/detail/8667


格式化字符串


我们通常用字符串去显示一些信息,那如何显示信息,显示信息内容是什么?

先输入:

a = ‘hello’

print(a)

结果直接打印出 hello,而 hello 是什么不清楚,要想明确知道打印出来的是hello,是 a 的值,所以接下来要体现格式化字符串。

字符串之间也可以进行加法运算

如果将两个字符串进行相加,则会自动将两个字符串拼接为一个

比如输入:

a = ‘abc’ + ‘haha’

print(a)

如果拼接三个,比如输入:

a = ‘ abc ’+ ‘ haha ’ +‘哈哈"

print(a)

若在打印结果 a 的时候直接输入:

print(“a=” +a)

结果就是 a=abchaha 哈哈,就可以满足最初需求,但是这种写法在 Python 中不常见

以上 a 都是字符串类型,若将 a 赋值为 123,比如输入:

a = 123

print(a)

结果会报错,原因是字符串只能和字符串拼接,不能和其他的类型进行加法运算,如果做了会出现异常 TypeError: must be str,not int

该方法有限制,操作中变量不可能总是字符串,会出现其他类型,所以研究更通用方法:

1.使用两个参数形式来格式化 print 信息:

print 是一个函数,如果在 print 中传两个参数,都会输出,比如输入:

print(‘ abc ’, ‘ bcd ’)

结果 abc bcd 两个都输出,而且中间有一个空格,此时我们再输入两个参数,第一个参数是 a=,第二个是 a

print( ‘ a = ’ , a)

2. 在创建字符串时,可以在字符串中指定占位符

%s 在字符串中表示任意字符:

比如输入:

b = ‘ Hello %s ’

print(b)

结果直接输出 %s,是因为没有对 %s 进行填充,在原式后再加 % 进行填充,孙悟空为填充内容,再次输入:

b= ‘ Hello %s ’% ‘孙悟空’

输入:

b= ‘ hello %s 你好 %s ’% ‘孙悟空’

结果报错,对格式化 string 这个参数不足够,这时需要传两个参数,用 tom 填充第一个 %s,孙悟空填充第二个 %s,修改输入:

b= ‘ hello %s 你好 %s ’% (‘ tom ’ , ‘孙悟空’)

所以要注意,占位符是按顺序填充的,第一个内容对应第一个 %s,第二个内容对应第二个 %s

再输入:

b= ‘ hello %s ’% ‘abcdefg’

若将 %s 修改成 %3s,3 是限制字符串的最小位数,现试着输入:

b= ‘ hello%3s ’% ‘ab’

而若直接输入 b= ‘ hello%s ’% ‘ab’

相比 %3s 比 %s 多了空格,因为 %3s 规定输出字符串长度是 3 个,如果不够,就会在 ab 前增加空格去补

如果输入:

b= ‘ hello%3.5s ’% ‘abcdefg’

%3.5s 字符串的长度限制在 3-5 之间

再比如输入:

b = ‘ hello %s ’ %123

%s 是字符串 str 简写,但是可见输入 123 也可以打印出,但输入小数呢?

b = ‘ hello %s ’ %123.5

所以实际上在这里,string 是万能的,小数整数都能够填入,但是如果我们输入 %5s 限制位数

b = ‘ hello %5s ’ %123

可以看到同样补空格,再比如如果是用 %.1s 限制小数 123.456

b = ‘ hello %.1s ’ %123.456

可以看到替换数字确实可以,但是总是有缺陷的,不能保留小数

对于这种缺陷,引出 %f,表示小数

%f 浮点数占位符

比如输入:

b = ‘ hello %f ’ %123.4

可以用 %.2f 来限制小数位数:b = ‘ hello %.2f ’ %123.4

再比如输入:b = ‘ hello %.2f ’ %123.456

会看到结果自动四舍五入

%d 整数占位数

比如输入:

b = ‘hello %d ’%123.45

print(b)

可以看到小数位直接省去,再比如输 入​​ b = ‘hello %d ’%123.95

所以是直接将小数省去,没有四舍五入

回到最初的需求,打印 print(‘ a= %s’%a),打印一个字符串,用a去填充这个值。

3. 格式化字符串,可以通过在字符串前添加一个f来创建一个格式化字符串

比如输入:

c = f ‘ hello ’

print(c)

效果一样,但是在格式化字符串中可以直接嵌入变量,比如修改

c = f ‘ hello {a} {b}’ ,{} 表示变量,{a} 表示变量 a,{b } 表示变量 b

ab 值一样,是因为上述内容中ab赋值恰好都是 123,但是在之前内容中增加 b= ‘呵呵’

如果想打印 c=,修改print(f ‘c = {c} ’)

或者修改 print(f ‘a = {a} ’)

但是如果增加一个变量 d ,c = f ‘ hello {a} {b} {d}’

所以在格式化字符串中写变量,必须是有效的,用过的

练习:创建一个变量保存一个名字,然后通过四种格式化字符串的方式,在命令行中显示,欢迎 xxx 光临!

上一篇:网站前端和后台性能优化29


下一篇:STL——字符串用法详解