当前位置:首页>python>《Python 从入门到精通》046|f-string 为什么成了最推荐的格式化方式

《Python 从入门到精通》046|f-string 为什么成了最推荐的格式化方式

  • 2026-07-02 11:48:24
《Python 从入门到精通》046|f-string 为什么成了最推荐的格式化方式

上一章我们已经讲了两种字符串格式化方式:

一种是老牌的 %另一种是更灵活的 format()

它们都能用,也都很重要。 因为你以后看旧代码、看别人的项目、看很多教程时,依然会经常碰到。

但如果你问现在写 Python 时,哪种格式化方式最自然、最好写、最值得优先掌握,答案大概率就是:

f-string

这不是因为它更高级,也不是因为它更花哨。 而是因为它真的更顺手。

你会发现,很多以前要绕一下、写长一点、看起来有点别扭的格式化操作,到了 f-string 这里,一下就变得很自然。

这一章,我们就把 f-string 彻底讲透。

不是只讲语法,而是讲明白它为什么后来成了很多人最爱用的格式化方式。

一、什么是 f-string

先看一个最简单的例子:

name = '张三'print(f'你好,{name}')

输出:

你好,张三

这里你会发现,字符串前面多了一个字母 f

这个 f 的意思可以简单理解成:

这是一个支持格式化的字符串

只要你在字符串前面加上 f, 那么字符串里的大括号 {} 就不再只是普通字符了,而会被当成一个可以放变量、表达式、结果的位置。

也就是说:

f'你好,{name}'

本质上就是:

先写一段字符串模板 再把变量 name 的值直接塞进去

这就是 f-string 的核心。

二、f-string 为什么第一眼就让人舒服

因为它非常接近人写句子的习惯。

比如上一章用 format() 写:

name = '李四'age = 20text = '我叫{},今年{}岁'.format(name, age)print(text)

而 f-string 写法是:

name = '李四'age = 20text = f'我叫{name},今年{age}岁'print(text)

你一眼就会觉得,后者更顺。

为什么?

因为变量就在它该出现的位置上。 你不需要先写一堆空的占位符,再回头去数第几个值填第几个坑。 你看到哪里,就知道那里会放什么。

这就是 f-string 最大的魅力之一:

可读性特别强

尤其是字符串稍微一长,这种优势会越来越明显。

三、f-string 和前两种写法放在一起看

我们拿同一个例子对比一下。

假设有这几个变量:

name = '王五'score = 93.5

用加号拼接:

print('学生' + name + '的成绩是' + str(score))

用 %

print('学生%s的成绩是%.1f' % (name, score))

用 format()

print('学生{}的成绩是{:.1f}'.format(name, score))

用 f-string:

print(f'学生{name}的成绩是{score:.1f}')

你会发现,f-string 看起来最短,也最直白。

变量名直接写在大括号里 格式控制也直接跟在变量后面 不用再单独补一个 .format(...)也不用再去想 %s%.1f 这些占位符和后面的值怎么一一对应

这就是为什么很多人一学到 f-string,就很难再回去用前两种写法写日常代码。

四、f-string 的基本用法其实特别简单

最基础的一条规则就是:

字符串前面加 f变量放到 {} 里

比如:

name = 'Python'print(f'我正在学习{name}')

输出:

我正在学习Python

再比如:

city = '杭州'print(f'我来自{city}')

输出:

我来自杭州

是不是比 % 和 format() 更像自然语言。

你几乎不用额外记什么复杂规则,就能先写起来。

五、f-string 可以一次放多个变量

当然可以。

比如:

name = '小明'age = 18city = '苏州'print(f'我叫{name},今年{age}岁,来自{city}')

输出:

我叫小明,今年18岁,来自苏州

这在日常输出里非常常见。

比如学生信息、商品信息、订单信息、提示语、欢迎语,基本都能这样写。

你会发现,大括号特别像一个个透明的小窗口。 变量是什么,最后窗口里就显示什么。

六、f-string 不只能放变量,还能直接放表达式

这是它特别爽的一点。

先看一个简单例子:

a = 10b = 20print(f'{a} + {b} = {a + b}')

输出:

10 + 20 = 30

注意最后那个 {a + b}。 这里不是变量,而是一个表达式。

这说明在 f-string 里,你不只是能塞变量, 还可以直接塞运算结果。

再比如:

price = 100discount = 0.8print(f'折后价是{price * discount}元')

输出:

折后价是80.0

这就特别方便。

以前你可能要先算出一个结果,再定义变量,再格式化。 现在很多简单场景,直接写在大括号里就行。

七、为什么这一点很实用

因为真实写代码时,很多展示内容本来就带一点计算。

比如:

总价 平均分 折后价 库存差值 完成百分比 两个时间的差

比如学生平均分:

chinese = 90math = 95english = 88print(f'平均分是{(chinese + math + english) / 3}')

比如商品总价:

price = 59.9count = 3print(f'总价为{price * count}元')

你会发现,这种写法让 输出 和 计算 自然地连在了一起。

这就是 f-string 为什么会让人觉得顺手。 因为它不像是在拼字符串,更像是在把结果直接写进句子里。

八、f-string 也能调用简单方法

比如:

name = 'python'print(f'{name.upper()}')

输出:

PYTHON

再比如:

text = '  hello  'print(f'处理后的结果是:{text.strip()}')

输出:

处理后的结果是:hello

这说明,大括号里并不只是能放一个变量名。 只要是合理的表达式、方法调用、结果计算,都可以写进去。

不过这里有个建议:

能写,不代表应该写得太复杂。

简单表达式放进去很舒服。 但如果你把很长很绕的逻辑全塞进一对大括号里,代码就会变得难读。

这一点后面我会再专门提醒。

九、f-string 怎么控制小数位数

这也是最常见、最实用的功能之一。

比如一个价格:

price = 19.8print(f'价格:{price:.2f}元')

输出:

价格:19.80

这里的 :.2f 和上一章 format() 的规则非常像。

你可以这样理解:

冒号后面写格式要求.2f 表示保留 2 位小数

再看一个:

score = 93.4567print(f'成绩:{score:.1f}分')

输出:

成绩:93.5

这说明 f-string 并不是只是看起来简洁,它连格式控制能力也一起继承过来了。

所以你可以把它理解成:

既有 format() 的格式能力 又有更自然的写法

十、f-string 控制整数、浮点数输出时特别舒服

比如你做成绩单:

name = '张三'score = 96.235print(f'学生{name}的成绩是{score:.2f}分')

输出:

学生张三的成绩是96.24

再比如你做商品展示:

product = '蓝牙音箱'price = 299discount = 8.5print(f'商品:{product},价格:{price:.2f}元,折扣:{discount:.1f}折')

输出:

商品:蓝牙音箱,价格:299.00元,折扣:8.5

你会发现,f-string 最大的一个优点就是:

变量和格式控制写在一起

不像 % 那样前面一套规则、后面一串值分开看。 也不像 format() 那样模板和参数是两块。

它几乎把所有东西都摆在你眼前了。

十一、f-string 还能控制对齐

这个在表格输出、日志排版、命令行展示里很实用。

比如:

name = 'Tom'print(f'|{name:10}|')

输出大概是:

|Tom       |

也就是给它留出 10 个字符宽度。

如果你想右对齐:

print(f'|{name:>10}|')

输出大概是:

|       Tom|

如果你想居中:

print(f'|{name:^10}|')

输出大概是:

|   Tom    |

你会发现,这一套规则和 format() 很像。 因为 f-string 本来就吸收了很多 format() 的能力。

这也是为什么它后来会越来越受欢迎。 因为它不是牺牲能力来换简洁,而是尽量把两者都保住了。

十二、来看一个更完整的成绩单例子

假设有下面这些数据:

name = '李四'chinese = 95math = 91english = 88.6

如果用 f-string 输出:

print(f'学生:{name},语文:{chinese}分,数学:{math}分,英语:{english:.1f}分')

输出:

学生:李四,语文:95分,数学:91分,英语:88.6

再进一步,如果你还想顺手带上总分:

print(f'学生:{name},总分:{chinese + math + english:.1f}分')

输出:

学生:李四,总分:274.6

你看,这里就很能体现 f-string 的优势。

展示 计算 格式控制

几乎都能放在一条表达里自然完成。

十三、再看一个商品结算场景

比如:

product = '机械键盘'price = 299.0count = 2discount = 0.9

输出订单信息:

print(f'商品:{product}')print(f'单价:{price:.2f}元')print(f'数量:{count}')print(f'折后总价:{price * count * discount:.2f}元')

输出大概是:

商品:机械键盘单价:299.00数量:2折后总价:538.20

这种写法放在真实项目里真的很自然。 因为你不需要先写很多中间变量,也不需要反复拼接。

当然,如果计算逻辑本身已经比较复杂,那还是建议先算好,再格式化。 这一点等下我会专门说。

十四、f-string 为什么会成为最推荐的方式

这里我们把原因说透一点。

第一,写法最直观。 变量就写在它出现的位置上,不用跳来跳去看。

第二,可读性强。 尤其是变量多的时候,别人一眼就知道哪一块输出对应哪个值。

第三,支持表达式。 很多简单计算、方法调用、格式控制都能直接写进去。

第四,格式能力不弱。 小数、宽度、对齐,这些常见需求都能处理。

第五,日常开发真的省心。 写提示语、日志、报表、调试信息时,体验非常顺。

所以它后来越来越受欢迎,并不是因为大家嫌旧写法土, 而是因为它确实更符合写代码时的直觉。

十五、f-string 和 format 放在一起,谁更推荐

如果是现在自己写新代码, 大多数日常场景下,f-string 更推荐。

比如:

name = '张三'score = 95.6print(f'学生{name}的成绩是{score:.1f}分')

通常就会比:

print('学生{}的成绩是{:.1f}分'.format(name, score))

更自然一点。

但这不代表 format() 没用了。

因为:

你以后还是会看到它 你还是需要看懂它 某些场景里它依然很好用

所以最稳的学习方式不是二选一,而是:

理解 %会用 format()日常优先掌握 f-string

这样最全面。

十六、f-string 也有边界,不是什么都该往里塞

这一点非常重要。

很多人学到这里,会觉得太方便了,于是什么都想往大括号里写。

比如很复杂的计算、很多层判断、很长的方法链,全部塞进去。 这就会让字符串看起来很乱。

比如这种写法虽然能跑,但就不太建议:

a = 10b = 20c = 30print(f'结果是{(a + b) * c / (a - 3) + (b * 2 - c / 5)}')

你当然能这么写。 但读起来已经有点费劲了。

更好的方式通常是:

先把复杂逻辑算好 再把结果放进 f-string

比如:

a = 10b = 20c = 30result = (a + b) * c / (a - 3) + (b * 2 - c / 5)print(f'结果是{result}')

这样代码会更清楚。

所以一个很实用的原则是:

简单表达式可以直接放 复杂逻辑先算再放

f-string 是为了让代码更清晰, 不是为了把所有逻辑都挤进一行。

十七、f-string 最适合哪些场景

特别适合这些地方:

打印提示信息 拼展示文本 输出成绩、价格、数量 生成日志内容 快速调试变量 写脚本时看运行结果 做命令行工具的文本输出

比如调试时:

name = 'Tom'age = 18print(f'name={name}, age={age}')

这种写法非常顺手。

你以后写代码调试变量,经常会不自觉地就用上。

十八、一个特别常见的实战场景:欢迎语

比如:

username = 'admin'login_time = '2026-03-26 10:30'

输出欢迎信息:

print(f'欢迎你,{username},本次登录时间是 {login_time}')

如果你还想加点格式:

balance = 520.678print(f'当前账户余额:{balance:.2f}元')

这种需求你以后做用户系统、自动化脚本、后台工具时都会经常见到。

十九、一个特别常见的实战场景:循环里批量输出

比如你有学生名单:

students = ['张三''李四''王五']

批量输出:

for name in students:    print(f'欢迎{name}来到Python课堂')

这在 for 循环里尤其顺手。 因为变量每次变化,f-string 就能自然地跟着展示新内容。

再比如打印编号:

for i in range(14):    print(f'第{i}次执行完成')

这种提示信息在脚本里特别高频。

二十、f-string 和字符串方法结合起来也很顺

比如:

name = 'python'print(f'大写后是:{name.upper()}')

再比如:

text = '  hello world  'print(f'清理后结果:{text.strip()}')

再比如:

filename = 'report.pdf'print(f'文件后缀检查结果:{filename.endswith(".pdf")}')

你会发现,f-string 很适合把 处理动作 和 展示结果 放在同一个地方表达出来。

当然,还是那句话:

简单的这样写很舒服 太复杂了就别硬塞

二十一、f-string 最容易犯的几个错

先说第一个。

忘了在字符串前面加 f

比如:

name = '张三'print('你好,{name}')

输出会是:

你好,{name}

因为这时候它只是普通字符串,大括号不会生效。

正确写法是:

print(f'你好,{name}')

第二个错,是大括号没配对好。 比如少写一个、或者写多一个,就会报错。

第三个错,是把太复杂的逻辑一股脑塞进去,导致代码难读。 这个前面已经提醒过。

第四个错,是格式控制位置写错。 比如小数位规则应该写在变量后面、冒号后面:

price = 19.8print(f'{price:.2f}')

别把顺序写乱。

二十二、什么时候不适合硬用 f-string

如果你只是处理一段完全固定的普通文本,那当然没必要上 f-string。

比如:

print('欢迎来到Python世界')

这就够了。

再比如,如果格式模板本身来自外部输入,或者你需要更偏模板化、配置化的写法,有时候 format() 也 still 很合适。

所以不是说学了 f-string 以后,别的方法都该扔。 而是说:

日常绝大多数需要把变量塞进字符串里的场景,f-string 通常是第一选择

二十三、把三种写法最后再一起看一遍

比如:

name = '小明'score = 92.567

% 写法:

print('学生%s的成绩是%.1f分' % (name, score))

format() 写法:

print('学生{}的成绩是{:.1f}分'.format(name, score))

f-string 写法:

print(f'学生{name}的成绩是{score:.1f}分')

三种都能用。 但你大概率已经能感觉到:

f-string 最像你脑子里原本想写出来的样子。

这就是它为什么后来越来越成为推荐写法。

二十四、练习题:这章非常值得自己手敲

下面这些小练习很典型,建议你自己写一遍。

1. 用 f-string 输出一句自我介绍

name = '张三'age = 18print(f'我叫{name},今年{age}岁')

2. 用 f-string 输出商品和价格,价格保留 2 位小数

product = '鼠标'price = 59.9print(f'商品:{product},价格:{price:.2f}元')

3. 在 f-string 里直接计算两个数的和

a = 10b = 20print(f'{a} + {b} = {a + b}')

4. 用 f-string 输出三门成绩的平均分,保留 1 位小数

chinese = 90math = 95english = 88print(f'平均分:{(chinese + math + english) / 3:.1f}')

5. 用 f-string 控制名字在 10 个字符宽度里右对齐

name = 'Tom'print(f'|{name:>10}|')

6. 先把字符串去掉两边空格,再用 f-string 展示结果

text = '  hello python  'print(f'处理后的结果是:{text.strip()}')

这些题不难,但特别能帮你把 f-string 的手感建立起来。

二十五、本章小结

这一章你真正要带走的,不只是一个新语法,而是一种更自然的格式化方式。

f-string 的核心很简单:

字符串前面加 f变量或表达式放进 {}需要格式控制时,在里面继续写规则

它之所以后来成了很多人最推荐的格式化方式,原因也很清楚:

写法直观 可读性强 支持表达式 格式控制方便 非常适合日常开发

如果说 % 是经典老写法,format() 是更灵活的过渡写法, 那 f-string 就更像是把格式化这件事真正写顺了的一种方式。

从这一章开始,你以后写提示语、成绩单、商品信息、日志内容,大概率都会越来越自然地想到 f-string。

下一章我们继续讲 转义字符与原始字符串:路径问题一次讲明白。 到那一章,你会发现,字符串不只是格式化会让人犯迷糊,路径里的斜杠、换行、制表符这些东西,也常常是新手的大坑。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-04 00:12:53 HTTP/2.0 GET : https://f.mffb.com.cn/a/492074.html
  2. 运行时间 : 0.110830s [ 吞吐率:9.02req/s ] 内存消耗:4,480.08kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=ee4155c2a47a259c55b8e8728a594309
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000567s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000853s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000368s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000270s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000487s ]
  6. SELECT * FROM `set` [ RunTime:0.000195s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000740s ]
  8. SELECT * FROM `article` WHERE `id` = 492074 LIMIT 1 [ RunTime:0.000474s ]
  9. UPDATE `article` SET `lasttime` = 1783095173 WHERE `id` = 492074 [ RunTime:0.022636s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.008547s ]
  11. SELECT * FROM `article` WHERE `id` < 492074 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000825s ]
  12. SELECT * FROM `article` WHERE `id` > 492074 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000452s ]
  13. SELECT * FROM `article` WHERE `id` < 492074 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001379s ]
  14. SELECT * FROM `article` WHERE `id` < 492074 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001028s ]
  15. SELECT * FROM `article` WHERE `id` < 492074 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000882s ]
0.112724s