Python 字符串格式化高级用法

字符串格式化: 是在编程过程中,允许编码人员通过特殊的占位符,将相关对应的信息整合或提取的规则字符串。

python字符串格式化字符串的格式化常用的三种方式,分别是使用 %格式化,format方法格式化,fstring格式化。

传统的方式使用 % 作为占位符,输出自身想输出的内容

常用的格式化字符包括 % s :作为替代字符串内容 ,%d 作为替代十进制(常见的1,2,3而已),%f 作为代替浮点数的用法

比较困难难于理解的 % e 作为代替科学计数法内容

举例:

str_format = 'this %s %d a pice code'
#插入的字符必须要和占位符的顺序保持一致
string = str_format %('a',1)
print(string)
其中 %被称为字符串格式化,其中%后面的“x”被称为格式化符,格式化符有很多个 包括(s,r,c,d,f,...)%s可以被称为占位符 

 打印结果:

Python 字符串格式化高级用法_第1张图片

# 出现这种操作的原因,是为了让表达内容更加灵活,常用在循环中,或者爬虫中
for i in range(100):
    url = f'https://www.gushici.net/t/1/42/index_%d.html'%(i)
    print(url)

 Python 字符串格式化高级用法_第2张图片

第二种方式: .format

format 可以接受python任何数据的内容,不必再去区分需要填补的数据是什么类型

Python 中的它可以使用多种方式来替换字符串中的自定义标记。 例如,要把一个字符串中的占位符替换成实际的值,可以使用 format () 方法

使用方法包括:b.format(a)和format(a,b)。

string = 'Learn {name} well and   {figure} travel around the world'.format(figure = 1,name='python')
print(string)

打印结果:

Python 字符串格式化高级用法_第3张图片

最常用的方式还是通过位置匹配参数:

# 通过format方法补全字符串 Learn python well and go global
string = 'Learn {0} well {2} go {1}'.format('python','global','and')
print(string)

Python 字符串格式化高级用法_第4张图片 3 f-string

f-string,亦称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化方法。f-string让字符串的格式化更加简便,本质上f-string不是字符串常量,而是一个可以在运行时运算求值的表达式。

 f -string 基本用法:

name = '马致远'
string = "hello my name is {name}"
print(string)

Python 字符串格式化高级用法_第5张图片 f-string 高级用法 : 表达式求值与函数调用

str = f"THEY hAVe {2+5*2} apples".lower()
print(str)

 此段代码通过使用 f-string 方法 计算了大括号内 2+5*2 的值(求职),将字符串模板中的文本内容是大写的部分转换成了小写(函数调用)

Python 字符串格式化高级用法_第6张图片

a = 3.1415926
#表示字符串模板的固定的长度
str = f"{a:10}"
print(str)
#表示字符串固定模板的长度,以及小数点后面的精度
# width:precison  整数width 为指定宽度,整数precision 表示显示小数点后几位
# str_test = f"{a:width.precision}"
str2 = f"{a:8.3f}"
print(str2)

Python 字符串格式化高级用法_第7张图片

 在一段代码中 format 变量接受的内容就是字符串模板

information = {"name":"马远远","age":19 ,"Email":"[email protected]","income":" xianYang"}
format_ = "woshi {nanshen}".format(nanshen = information["name"])
Student = "work location:{0[student]}"

日期格式化:

from datetime import  *
a = datetime.today()
str =  f"{a:%m-%d-%Y}"
print(a)
print(str)

其中 today 是datime 模块中的一个方法用于获取当前时间

Y 表示 年份 m表示 月份  d 表示日,发现了没有我可以将它的输出顺序进行转换

格式化符: 传统就是 % 现在就是 { }

字符串模板: 需求变动的字符串

需要传递的参数: information 中的内容

字符串格式化 ,把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号‘{}’作为特殊字符代替‘%’。

你可能感兴趣的:(Python高级编程,python)