python学习笔记(二)

2023-11-06

  • 字符串格式化方式(二)

Python除了%占位符的方法外,还有另一种高效的格式化语法,具体例子如下:(有种JS模板字符串的感觉)

通过语法:f”内容{变量}”的格式来快速格式化

[f的含义是format格式化]

ee = "my"
name = 66
kk = 3.14
print(f"春花秋月终未料{ee},数字{name},浮点数{kk}")

总结:可以通过

f”{变量}{变量}”的方式进行快速格式化

特点:·不理会类型,·不做精度控制,适合对精度没有要求的时候快速使用

(自测发现大写的F也可以生效)

二、对表达式进行格式化

表达式:一条具有明确执行结果的代码语句

如:

1+1、5+2,就是表达式,因为有具体的结果,结果是一个数字,又或者,常见的变量定义:

name=”张三” agr=11+11

在无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码

例如:

print(“1*1的结果是:%d”%(1*1))

print(f“1*2的结果是:{1*2}”)

print(“字符串中python中的类型名是:%s”%type(“字符串”))

如何格式化表达式:

f{“表达式”}

“%s\%d\%f”%{}

  • 数据输入

print()函数,可以完成将内容(字面量、变量等)输出到屏幕上

在python中,与之对应的还有一个input语句,用来获取键盘输入

数据输出:print

数据输入:input

Input()语句可以从键盘获取输入

使用一个变量接收(存储)input语句获取的键盘输入数据即可

Input()语句的功能是,获取键盘输入的数据

可以使用:input(提示信息),用以在使用者输入内容之前显示提示信息

要注意,无论键盘输入什么类型的数据,获取到的数据永远都是字符串,除非在input()语句后,再进行一次数据类型转换

四、python判断语句

布尔类型与比较运算符

True表示真

False表示假

(注意python中首字母必须大写,否则不是布尔类型)

比较运算符

==,!=,>,<,>=,<=

If语句的基本格式

If 要判断的条件:

(四个空格缩进)条件成立时,要做的事情

【注意:1、一定不要忘记写冒号;2、判断条件一定要是布尔类型的;3、归属于if语句的代码块,需在前方填充4个空格缩进】

——————————————————————————————

If 条件:

     满足条件时要做的事情1

     满足条件时要做的事情2

     满足条件时要做的事情3

     …(省略)…

else:

    不满足条件时要做的事情1

    不满足条件时要做的事情2

    不满足条件时要做的事情3

    …(省略)…

例如:

age=int(input(“请输入你的年龄:”))

if age>=18:

    print(“您已成年,需要买票10元”)

else:

    print(“您未成年,可以免费游玩”)

——————————————————

If 条件1:

     条件1满足应做的事情

elif 条件2:

     条件1满足应做的事情

elif 条件N:

     条件1满足应做的事情

else:

     所以条件都不满足应该做的事情

【可以在条件判断中,直接写input语句,节省代码量】

———————————————————

五、判断语句的嵌套

基础语法格式如下:

If 条件1:

 (四个空格缩进)满足条件1 做事情1

     

      If 条件2:

            满足条件2做事情2

【注意嵌套的关键点,在于:空格缩进,通过空格缩进,来决定语句之间的:“层次关系“】

六、while循环语句

while 条件:

      条件满足时,执行以下代码

      …(省略)…

【只要条件满足会无限循环执行,注意空格缩进

——————————————————

while循环的嵌套

while 条件1:

      满足条件一,执行以下代码

      while 条件2:

      满足条件二,执行以下代码

补充1print输出不换行的方法:print语句中,加上end=””即可不换行了

例如:print(“hello”,end=””)

      print(“world”,end=””)

打印出来的结果为:helloworld

补充2在字符串中,有一个特殊符号:\t,效果等同于键盘上按下:tab

它可以让我们多行字符串进行对齐

例如:print(“Hello\tWorld”)

      print(“My\tHeat”)

七、for循环(遍历循环)

for 临时变量 in 待处理数据集:

      循环满足条件时执行的代码

例如:name="tazimi"

for k in name:

    print(k)

八、range语句

for循环能够遍历的类型主要是序列类型,序列类型指,其内容可以一个个依次取出的类型,包括:

·字符串

·列表

·元组

·等

语法1:

range(num)

获取一个从0开始,到num结束的数字序列(不含num本身)

如range(5)取得的数据是:[0,1,2,3,4]

语法2:

range(num1,num2)

获得一个从num1开始,到num2结束的数字序列(不含num2本身)

如,range(5,10)取得的数据是:[5,6,7,8,9]

语法3:

range(num1,num2,step)

获得一个从num1开始,到num2结束的数字序列(不含num2本身)

数字之间的步长,以step为准(step默认为1)

如,range(5,10,2)取得的数据是:[5,7,9]

九、变量作用域

for k in range(10,20,2):

    print("武器雷米")



print(k)
  1. for循环中的临时变量,其作用域限定为:

循环内

  1. 这种限定:

·是编程规范的限定,而非强制限定

·不遵循也能正常运行,但是不建议这样做

·如需访问临时变量,可以预先在循环外定义它

十、循环中断:break和continue

(同JS)

continue关键字用于:中断本次循环,直接进入下次循环

continue可以用于:for循环和while循环,效果一致

例如:

for k in range(1,100):

      语句1

      continue

      语句2

在上方代码:

在循环内,遇到continue就结束当次循环,进行下一次,所以,语句2是不会执行的

应用场景:

在循环中,因某些原因,临时结束本次循环

break直接结束所在的循环

【注意:在嵌套循环中,只能作用在所在的循环上,无法对上层循环起作用】

十一、python函数

 函数:是组织好的,可重复使用的,用来实现特定功能的代码段

用def对函数进行定义,例如:

def my_len(data):

     count =0

     for I in data:

       count+=1

print(f“字符串{data}的长度是{count}”)

为什么要学习、使用函数?

为了得到一个针对特定需求、可供重复利用的代码段,提高程序的复用性、减少重复性代码,提高开发效率

函数的定义:

def 函数名(传入参数):

      函数体

      return 返回值

【注意事项:

  1. 参数如不需要,可以省略
  2. 返回值如不需要,可以省略
  3. 函数必须先定义后使用

十二、函数的参数

传入参数的功能是:在函数进行计算的时候,接受外部(调用时)提供的数据

例如:def add(x, y):

    return x + y





print(f"{add(1, 2)}")

【注意:

1.函数定义中的参数,称之为形式参数

2.函数调用中的参数,称之为实际参数

3.函数的参数数量不限,使用逗号分隔开

4.传入参数的时候,要和形式参数一一对应,逗号隔开

十三、函数返回值

形似于:

def 函数(参数…):

     函数体

     return 返回值

变量=函数(参数)

【注意:return之后函数体结束执行】

十四、None类型

如果函数没有使用return语句返回数据,那么函数有返回值,其返回值为None这个字面量

None是Python中特殊的字面量,其类型是:<class ‘NoneType’>

None表示:空的、无实际意义的意思

函数返回的None,就表示,这个函数没有返回什么有意义的内容,也就是返回空的意思

None类型的应用场景

1.用在函数无返回值上

2.用在if判断上

·在if判断中,None等同于False

·一般用于在函数中主动返回None,配合if判断做相关处理

·用于声明无内容的变量上

   ·定义变量,但暂时不需要变量有具体值,可以用None来代替

【not 取反的意思】

十五、函数说明文档

对函数进行说明解释,帮助更好理解函数的功能

定义语法如下:

def func(x,y):

‘’’

函数说明

:param x: 参数x的说明

:param y: 参数y的说明

:return: 返回值的说明

‘’’

函数体

return 返回值

  • :param用于解释参数
  • :return用于解释返回值

十六、函数嵌套调用

所谓函数嵌套调用指的是一个函数里面又调用了另一个函数

例如:

def func_b():

    print(“---2---”)

def func_a():

    print(“---1---”)

    func_b()

    print(“---3---”)

#调用函数func_a

func_a()

【执行流程:函数A中执行到调用函数B的语句,会将函数B全部执行完成后,继续执行函数A的剩余内容】

十七、变量的作用域

变量作用域指的是变量的作用范围(变量在哪里可用,在哪里不可用)

主要分为两类:局部变量和全局变量

所谓局部变量是定义在函数体内的变量,即只在函数体内部生效

def testA():

     num=100

     print(num)

testA()   # 100

print(num)  #报错:name ‘num’ is not defined

函数变量的作用:在函数运行的时候临时保存数据,当函数调用完成之后,立刻就销毁局部变量

全局变量指的是在函数体内、外都能生效的变量(感觉python相比于js自动省略了var,let,const,语法规则差不多)

使用global关键字,可以在函数内部声明变量为全局变量,如下所示

num=100

def testA():

print(num)

def testB():

  #global关键字声明a是全局变量

   global num(不用global将会被认定为局部变量)

num=200

print(num)

testA()

testB()

print(f”全局变量num={num}”) #结果:全局变量num=200

十八、python数据容器

一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素,每一个元素,可以是任意类型的数据,如字符串、数字、布尔等

数据容器根据特点的不同,如:

·是否支持重复元素

·是否可以修改

·是否有序,等

分为5类,分别是:

列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)

十九、列表

基本语法

#字面量

[元素1,元素2,元素3,元素4,…]

#定义变量

变量名称=[元素1,元素2,元素3,元素4,…]

#定义空列表

变量名称=[]

变量名称=list()

列表内的每一个数据,称之为元素

·以[]作为标识

·列表内每一个元素之间用,逗号隔开

【注意:列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套】

比如:[[1,2,3],[4,5,6]]

二十、列表的下标索引

列表中的每一个元素,都有其位置下标索引,从前向后的方向,从0开始,依次递增

(0,1,2,3,…)

或者,可以反向索引,也就是从后向前:从-1开始,依次递减(…,-3,-2,-1)

嵌套列表的下标索引 list[0][0]

列表的常用操作和特点

列表的方法(js中对象的感觉)

回忆:函数是一个封装的代码单元,可以提供特定的功能

在python中,如果将函数定义为class(类)的成员,那么函数会称之为:方法

函数

def add(x,y):

    return x+y

方法

class Student:

      def add(self,x,y):

          return x+y

方法和函数功能一样,有传入参数,有返回值,只是方法的使用格式不同:

函数的使用:num=add(1,2)

方法的使用:

class Add:

    def add(self, x, y):

        return x + y





kk = Add()

print(kk.add(1, 2))

列表的查询方法(index)

·查找某元素的下标

功能:查找指定元素在列表的下标,如果找不到,报错ValueError

语法:列表.index(元素)

index就是列表对象(变量)内置的方法(函数)

列表的修改方法

·修改特定位置(索引)的元素值:

语法:列表[下标]=

可以使用如上语法,直接对指定下标(正向,反向下标均可)的值进行:重新赋值(修改)

列表的插入方法(insert

语法:列表insert(下标,元素),在指定的下标位置,插入指定的元素

kk = [1, 2, 3]

kk.insert(1, 'oleiwa')

print(kk)

输出结果为:

[1, 'oleiwa', 2, 3]

列表的追加元素的方法(append)

语法:列表.append(元素),将指定元素,追加到列表的尾部

kk = [1, 2, 3]

kk.append(1)

print(kk)

输出结果为:

[1, 2, 3, 1]

kk = [1, 2, 3]

kk.append([6,7,8])

print(kk)

输出结果为:

[1, 2, 3, [6, 7, 8]]

列表追加元素方式2

语法:列表.extend(其他数据容器),将其他数据容器的内容取出,依次追加到列表尾部

kk = [1, 2, 3]

kk.extend([6,7,8])

print(kk)

输出结果为:

[1, 2, 3, 6, 7, 8]

列表的元素删除方法(del,pop)

语法1del列表[下标]

语法2:列表.pop(下标)【不指定下标则默认删除最后一个元素】

kk = [1, 2, 3, 4, 5, 6, 7, 8]

del kk[1]

print(kk)

输出结果为:[1, 3, 4, 5, 6, 7, 8]

kk = [1, 2, 3, 4, 5, 6, 7, 8]

result = kk.pop(1)

print(kk, f"删除的元素是{result}")

输出结果为:[1, 3, 4, 5, 6, 7, 8] 删除的元素是2

·删除某元素在列表中的第一个匹配项(remove

语法:列表.remove(元素)

kk = [2,1, 2, 3, 4, 5, 6, 7, 8]

kk.remove(2)

print(kk)

输出结果为:[1, 2, 3, 4, 5, 6, 7, 8]

·清空列表内容

语法:列表.clear()

kk = [2,1, 2, 3, 4, 5, 6, 7, 8]

kk.clear()

print(kk)

输出结果为:[]

·统计某元素在列表内的数量

语法:列表count(元素)

kk = [2, 1, 2, 2, 2, 5, 2, 7, 8]

print(kk.count(2))

输出结果为:5

·统计列表内,有多少元素

语法:len(列表)

可以得到一个int数字,表示列表内的元素数量

kk = [2, 1, 2, 2, 2, 5, 2, 7, 8]

print(len(kk))

输出结果为:9

总结列表的特点:

·可以容纳多个元素(上限为2**63-19223372036854775807)

·可以容纳不同类型的元素(混装)

·数据是有序储存的(有下标序号)

·允许重复数据存在

·可以修改(增加或删除元素等)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python学习笔记(二) 的相关文章

  • (discord.py) 尝试更改成员角色时,“用户”对象没有属性“角色”

    因此 我正在尝试编写一个机器人 让某人在命令中指定的主持人指定的一段时间内暂停角色 我知道该变量称为 小时 即使它目前以秒为单位 我稍后会解决这个问题 基本上 它是由主持人在消息 暂停 personmention numberofhours
  • 使用Python开发Web应用程序

    我一直在用 python 做一些工作 但这都是针对独立应用程序的 我很想知道 python 的任何分支是否支持 Web 开发 有人还会建议一个好的教程或网站吗 我可以从中学习一些使用 python 进行 Web 开发的基础知识 既然大家都说
  • Python BigQuery 存储。并行读取多个流

    我有以下玩具代码 import pandas as pd from google cloud import bigquery storage v1beta1 import os import google auth os environ G
  • 如何在刻度标签和轴之间添加空间

    我已成功增加刻度标签的字体 但现在它们距离轴太近了 我想在刻度标签和轴之间添加一点呼吸空间 如果您不想全局更改间距 通过编辑 rcParams 并且想要更简洁的方法 请尝试以下操作 ax tick params axis both whic
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 如何使用固定的 pandas 数据框进行动态 matplotlib 绘图?

    我有一个名为的数据框benchmark returns and strategy returns 两者具有相同的时间跨度 我想找到一种方法以漂亮的动画风格绘制数据点 以便它显示逐渐加载的所有点 我知道有一个matplotlib animat
  • Pycharm Python 控制台不打印输出

    我有一个从 Pycharm python 控制台调用的函数 但没有显示输出 In 2 def problem1 6 for i in range 1 101 2 print i end In 3 problem1 6 In 4 另一方面 像
  • Flask 和 uWSGI - 无法加载应用程序 0 (mountpoint='')(找不到可调用或导入错误)

    当我尝试使用 uWSGI 启动 Flask 时 出现以下错误 我是这样开始的 gt cd gt root localhost uwsgi socket 127 0 0 1 6000 file path to folder run py ca
  • Spark的distinct()函数是否仅对每个分区中的不同元组进行洗牌

    据我了解 distinct 哈希分区 RDD 来识别唯一键 但它是否针对仅移动每个分区的不同元组进行了优化 想象一个具有以下分区的 RDD 1 2 2 1 4 2 2 1 3 3 5 4 5 5 5 在此 RDD 上的不同键上 所有重复键
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • 运行多个 scrapy 蜘蛛的正确方法

    我只是尝试使用在同一进程中运行多个蜘蛛新的 scrapy 文档 http doc scrapy org en 1 0 topics practices html但我得到 AttributeError CrawlerProcess objec
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例
  • PyAudio ErrNo 输入溢出 -9981

    我遇到了与用户相同的错误 Python 使用 Pyaudio 以 16000Hz 录制音频时出错 https stackoverflow com questions 12994981 python error audio recording

随机推荐

  • 我是怎么做到副业月入过万的「全程干货」

    如果你们每天有3 4个小时的空余时间 选择一个好的副业 月入再多一万是没有问题的 当然 选择副业 避坑很重要 我们先来看下选择副业的几个标准 1 低成本 不能有太多的金钱投入 2 低风险 不能有赌博心理 千万不能随便放弃主业 3 受众广 有
  • 不登录,不用任何技术,一分钟下载网易云音乐

    最近在写 Python 爬虫 想爬取网易云的歌曲并下载或者保存 Url 到 MongoDB 发现了一个可以快速下载网易云歌曲的方式 不需要登录 也不需要什么技术 简单几步就可以网易云上的音乐 因此分享给你 希望对你有帮助 如果你有其他的方法
  • 集成学习思想

    一 集成学习 Ensemble Learning 集成学习的思想是将若干个学习器 分类器 回归器 组合之后产生一个新的学习器 集成学习的主要思想 1 Bagging 代表算法是随机森林 Random Forest 2 Boosting 代表
  • springboot 2.x 集成 drools 7.x

    简介 springboot 2 0 4 RELEASE 集成 drools 7 11 0 Final 1 项目结构 2 pom xml文件
  • 51单片机指令系统详解

    指令系统 微型机的功能是由指令系统体现的 所以 寻址方式和指令系统是衡量微型机的重要指标 MSC 51的指令系统一共有111条指令 包括单字节49条 双字节46条和三字节16条 按周期分 有单周期 双周期和三周期指令 在晶振频率为12MHZ
  • 【问题记录系列】java.lang.IndexOutBoundsException:Index: 1,Size:1

    java lang IndexOutBoundsException 1 问题背景 2 问题展示 图片 拍摄图 3 问题解决 图片 debug图一 debug图二 4 解决后的效果 1 问题背景 昨天写好的重置密码的接口 与前端联调的过程中
  • Python opencv 机器学习 7. KMeans k值聚类 两个特征

    import cv2 import numpy as np from matplotlib import pyplot as plt 只有一个特征 只由人们的身高决定T恤大小 x np random randint 25 50 25 2 生
  • No module named ‘chinesecalendar‘

    在学习python的时候又遇见了这个问题 我cmd里面执行 pip install chinesecalendar 命令 执行结果出现successfully说明安装成功了 然后我又在 jupyter里进行 pip install chin
  • 实践:SSDEEP相似度比较

    2020 06 03 其实一开始的时候 我是想看看 他们都是使用什么特征来进行比较 今天下午就想找一些相关的相似度比较的文章 看看有没有相关的实践 然后发现谷歌出来的大量结果都是论文 我是想找一些实际的代码 不过 通过调整关键词到mediu
  • ARM编译器常用的预定义宏

    ARM编译器预定义了许多宏 这些宏提供有关工具链版本号和编译器选项的信息 编译器版本 宏为 ARMCC VERSION 数字形式呈现 使用方法如下 rt kprintf Compiler Version u r n ARMCC VERSIO
  • kudu集群Tablet Server异常:Check failed: _s.ok() Bad status: Service unavailable: Cannot initialize clock

    背景 CDH 6 3 1集群上kudu实例Tablet Server异常无法启动 根据报错信息提示时钟同步问题无法启动Check failed s ok Bad status Service unavailable Cannot initi
  • 串口模拟器VSPD(附VSPD安装包)

    串口通讯想必做硬件开发和软件的人来说都相当了解 以前的电脑 基本标配都包含一个串口 但现在的电脑 基本都没有配置串口了 如果要使用串口的功能 基本就要用一个USB转串口的硬件模块 虚拟串口 虚拟 COM 端口 应该很多人都知道 也就是一种模
  • 设计模式_19 状态模式(含 UML图 和 C++代码)

    设计模式 19 状态模式 19 状态模式 19 1 概念 19 2 结构 19 3 实现 19 3 1 UML图 19 3 2 代码 19 3 3 测试结果 19 4 优缺点 19 4 1 优点 19 4 2 缺点 19 5 使用场景 re
  • Mapper文件注入问题

    Mapper文件注入问题 UserMapper that could not be found 原因分析 解决方案 程序正常运行 但是注入类爆红问题 原因分析 解决方法 UserMapper that could not be found
  • Redirecting functions in shared ELF libraries

    Redirecting functions in shared ELF libraries By Apriorit Inc Anthony Shoumikhin 2 Apr 2010 4 83 13 votes Download elf h
  • 电感的两种模式——DCM和CCM的区别

    DCM断续模式 电流从零开始上升的三角波 CCM连续模式 电流从某一非零值上升的侧梯形波 波形不同 在变压器的初级电流 CCM模式波形为梯形波 而DCM模式为三角波 在变压器的次级整流管波形上 CCM同样为梯形 而DCM模式还是三角波 本质
  • JDK安装以及环境变量配置(操作步骤)

    JDK安装以及环境变量配置 操作步骤 安装包 一 环境准备 Windows10 jdk1 8 0 131 二 下载并安装JDK 安装包下载 三 环境变量配置 1 右键桌面上 我的电脑 gt gt 属性 在弹出的页面上点击 高级系统设置 2
  • C++无穷的表示

    在C 中 有时候会遇到无穷的情形 如何表示无穷 首先 C 每种数据类型都有固定的位数 从而可以用数值位全1来表示最大数据 C 本身也定义了一些这样的常量来供使用 如最大无符号整型数据是UCHAR MAX 十进制数为255 1十六进制数为0x
  • (PPO)近端策略优化学习记录

    PPO 近端策略优化学习记录 proximal policy optimization PPO 是策略梯度方法家族的一员 在PPO被提出来之前 它的哥哥 trust region policy optimization TRPO先被提出 在
  • python学习笔记(二)

    字符串格式化方式 二 Python除了 占位符的方法外 还有另一种高效的格式化语法 具体例子如下 有种JS模板字符串的感觉 通过语法 f 内容 变量 的格式来快速格式化 f的含义是format格式化 ee my name 66kk 3 14