当前位置:首页>python>《Python 从入门到精通》045|字符串格式化入门:从 % 到 format

《Python 从入门到精通》045|字符串格式化入门:从 % 到 format

  • 2026-07-02 10:16:29
《Python 从入门到精通》045|字符串格式化入门:从 % 到 format

前面我们已经学了字符串的切片、查找、替换这些操作。 但在真实开发里,字符串还有一个特别高频的用途:

把变量、数字、文本,有条理地塞进一句完整的话里。

比如:

输出一句欢迎语 打印成绩单 显示商品价格 生成日志信息 整理一条提示文本 把多个数据拼成更专业的展示内容

很多新手一开始会直接用加号拼接:

name = '张三'age = 18print('我叫' + name + ',今年' + str(age) + '岁')

这当然能跑。 但一旦变量多一点、格式复杂一点、数字需要保留小数、输出需要更整齐,这种写法就会越来越别扭。

这时候,字符串格式化就派上用场了。

这一章,我们专门把两个重要阶段讲清楚:

老牌写法 %更灵活的 format()

你先别急着觉得它们像历史包袱。 就算后面你更喜欢用 f-string,这一章也非常有必要学。 因为你以后看别人代码、看旧项目、看很多教程时,依然会经常遇到它们。

一、什么叫字符串格式化

你可以把字符串格式化理解成一句特别直白的话:

先把句子模板写好,再把具体数据填进去。

比如这句话:

我叫某某,今年多少岁

这其实就是一个模板。

如果把具体数据填进去,就变成:

我叫张三,今年18

编程里的字符串格式化,本质上就是在做这件事。

它不是单纯拼接文本, 而是先留出位置,再往里面填值。

这种写法最大的好处就是:

更清晰 更规范 更适合处理复杂输出

二、为什么不建议总是用加号拼接

先看一个最常见的例子:

name = '李四'score = 95print('学生' + name + '的成绩是' + str(score))

能跑,没问题。 但你已经能感觉到一点别扭:

数字要手动 str()句子一长,眼睛会很累 中间漏一个加号就报错 变量一多,代码会越来越乱

再比如:

product = '机械键盘'price = 299.9stock = 120print('商品:' + product + ',价格:' + str(price) + ',库存:' + str(stock))

这种写法还能忍。 可如果后面再加日期、再加状态、再加折扣、再加格式控制,就会明显不顺手。

所以,字符串格式化真正解决的问题,不是 能不能拼, 而是 怎么拼得更整齐、更自然、更容易维护。

三、先认识老牌写法:% 格式化

这是 Python 里比较早期、也特别经典的一种格式化方式。

先看最简单的例子:

name = '张三'print('你好,%s' % name)

输出:

你好,张三

这里的 %s 就像一个占位符。 意思是:

这里先留一个位置,后面再把值塞进来。

后面的 % name,表示把变量 name 填到前面的 %s 位置里。

你可以把它理解成:

模板 % 数据

虽然这个写法看起来有一点年代感,但逻辑其实并不难。

四、%s 是最常见的占位符

在 % 格式化里,%s 非常常用。

它通常表示:

这里放一个字符串形式的内容

看几个例子:

name = 'Python'print('我正在学习%s' % name)

输出:

我正在学习Python

再比如:

city = '杭州'print('我来自%s' % city)

输出:

我来自杭州

你甚至会发现,%s 不只可以放字符串,很多其他类型也能放进去。

比如:

age = 18print('年龄是%s' % age)

输出:

年龄是18

也就是说,%s 很像一个比较宽容的占位符。 它会尽量把数据转换成适合展示的字符串形式。

这也是为什么很多入门教程会先从 %s 讲起。 因为它最省心。

五、如果有多个值,要怎么填

如果模板里有多个占位符,后面就不能只放一个变量了,而要放一个元组。

看例子:

name = '张三'age = 18print('我叫%s,今年%s岁' % (name, age))

输出:

我叫张三,今年18

这里你要注意:

前面有两个占位符 后面就要提供两个值 顺序要一一对应

再看一个:

product = '鼠标'price = 59.9print('商品:%s,价格:%s元' % (product, price))

输出:

商品:鼠标,价格:59.9

这个写法在很多老代码里特别常见。 你以后只要看到:

'某段文本 %s %s' % (值1, 值2)

就知道它是在做字符串格式化。

六、%d 和 %f 是什么

除了 %s,你还经常会看到 %d 和 %f

%d 通常表示整数%f 通常表示浮点数

看例子:

age = 20print('年龄:%d岁' % age)

输出:

年龄:20

再看浮点数:

price = 19.8print('价格:%f元' % price)

输出:

价格:19.800000

这里很多新手会愣一下。

为什么后面多出一串 0?

因为 %f 默认会保留 6 位小数。

这不是错,而是它的默认行为。

七、如何控制小数位数

这在实际开发里特别重要。

因为价格、平均分、比例这些数据,通常不想显示 6 位小数。 我们更常见的是保留 2 位。

写法如下:

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

输出:

价格:19.80

这里的 %.2f 可以这样理解:

f 还是浮点数.2 表示保留 2 位小数

再看一个:

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

输出:

成绩:93.5

这个功能在金额、温度、平均数、百分比显示里非常高频。

八、% 格式化最容易犯的几个错

先说第一个。

占位符数量和数据数量对不上。

比如:

name = '张三'age = 18print('我叫%s,今年%s岁' % name)

这里前面有两个占位符,后面却只给了一个值,就会报错。

第二个错,是类型不匹配。

比如:

text = '十八'print('年龄:%d' % text)

这里 %d 期待整数,但你给的是中文字符串,就不合适。

第三个错,是忘了多个值要放在元组里。

比如:

name = '张三'age = 18print('我叫%s,今年%s岁' % name, age)

这样写就不是你想要的格式化效果了。

所以 % 格式化虽然不难,但它有一个特点:

写法简洁,但对顺序和类型比较敏感。

九、什么时候 % 写法会开始显得吃力

当模板变复杂时,它就会越来越别扭。

比如:

name = '张三'score = 95.6rank = 3print('学生%s,本次考试成绩%.1f分,班级排名第%d名' % (name, score, rank))

这还能接受。 但如果字段更多、顺序更复杂、一个值重复出现、格式控制更细,阅读体验就会明显下降。

你会开始有这种感觉:

我知道它能跑 但看起来有点绕 尤其是值一多,后面的元组很容易眼花

这也是为什么后面慢慢有了更灵活的 format() 写法。

十、format() 是什么

format() 可以理解成:

另一种更现代、更灵活的字符串格式化方式

先看最简单的例子:

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

输出:

你好,张三

这里的 {} 也是占位符。 意思是:

这里先留空,后面再填值

而 .format(name) 就是把变量 name 填进去。

你会发现,这种写法比 % 更直观一点。 尤其是占位符看起来更清爽。

十一、format() 也能一次填多个值

看例子:

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

输出:

我叫李四,今年20

这和 % 的效果类似, 但读起来通常会更顺一点。

再看一个商品例子:

product = '机械键盘'price = 299.9stock = 50text = '商品:{},价格:{}元,库存:{}'.format(product, price, stock)print(text)

输出:

商品:机械键盘,价格:299.9元,库存:50

对于初学者来说,format() 的一个明显优点就是:

不用再记 %s%d%f 这些占位符就能先跑起来

十二、format() 可以按位置指定

这是它比 % 更灵活的一点。

比如:

name = '王五'age = 19text = '我叫{0},今年{1}岁,{0}正在学Python'.format(name, age)print(text)

输出:

我叫王五,今年19岁,王五正在学Python

这里的 {0} 表示用第 1 个值{1} 表示用第 2 个值

这就有什么好处?

如果一个变量在字符串里要重复出现,你不需要重复写多次参数。 直接用位置编号重复引用就行。

这在长文本里很方便。

十三、format() 还能按名字填值

这个功能非常适合可读性要求高的场景。

看例子:

text = '姓名:{name},年龄:{age},城市:{city}'.format(name='张三', age=18, city='北京')print(text)

输出:

姓名:张三,年龄:18,城市:北京

这种写法最大的优点是:

一眼就知道每个位置填的是什么

尤其是变量多的时候,按名字写会比按顺序写更稳。

再比如:

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

你会发现,这种写法很像在给模板字段赋值。 可读性非常强。

十四、format() 为什么在复杂文本里更舒服

因为它更像搭积木。

你可以按顺序填 可以按位置填 可以按名字填

尤其是按名字填这件事,特别适合长句子。

比如:

text = '用户{name}在{city}登录,账户余额为{money}元'.format(name='小王', city='上海', money=520.8)print(text)

你一眼就能看明白,谁对应谁。 不用像 % 那样一直回头数第几个值对应第几个占位符。

这就是 format() 最大的魅力之一:

更适合复杂模板 更适合可读性要求高的代码

十五、format() 也能控制小数位数

这个功能和 % 一样,也非常实用。

比如保留 2 位小数:

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

输出:

价格:19.80

这里的 :.2f 可以理解成:

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

再比如:

score = 93.456print('成绩:{:.1f}'.format(score))

输出:

成绩:93.5

你会发现,这一套逻辑和 % 其实是相通的。 只是写法换了一种风格。

十六、format() 还能控制对齐

这一点在做表格输出、日志对齐时很有用。

比如:

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

输出大概会是:

|Tom       |

这表示给它留出 10 个字符宽度,默认左边正常、右边补空格。

如果你想右对齐:

print('|{:>10}|'.format(name))

输出大概是:

|       Tom|

如果你想居中:

print('|{:^10}|'.format(name))

输出大概是:

|   Tom    |

这种写法在初学阶段可能不是天天用, 但一旦你做成绩单、报表、命令行输出,就会觉得特别好用。

十七、来看一个更像样的成绩单输出

比如有下面这些数据:

name = '张三'chinese = 96math = 91english = 88.5

如果只用加号拼接,句子很容易看着乱。 用 format() 写会舒服很多:

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

输出:

学生:张三,语文:96分,数学:91分,英语:88.5

这已经非常接近真实项目里的展示逻辑了。

你会发现,格式化的重点不在技术有多难, 而在于它让你的输出开始变得整齐、清晰、专业。

十八、再看一个商品展示案例

比如:

product = '蓝牙耳机'price = 199.0discount = 8.5stock = 36

用 % 写:

text = '商品:%s,价格:%.2f元,折扣:%.1f折,库存:%d件' % (product, price, discount, stock)print(text)

用 format() 写:

text = '商品:{},价格:{:.2f}元,折扣:{:.1f}折,库存:{}件'.format(product, price, discount, stock)print(text)

两种都行。 但你会开始慢慢感受到:

简单场景下都差不多 一旦格式要求多起来,format() 往往更清楚

十九、格式化最常见的一个用途:提示信息输出

比如登录欢迎语:

username = 'admin'print('欢迎你,{}'.format(username))

比如成绩提示:

name = '小明'score = 92print('恭喜{},你本次考试得了{}分'.format(name, score))

比如错误提示:

filename = 'data.csv'print('文件{}读取失败,请检查路径'.format(filename))

你会发现,很多程序表面上在做功能, 实际上最后都要把结果组织成一段话展示出来。

而这一步,就是字符串格式化的主战场。

二十、% 和 format 到底该怎么理解它们的关系

你可以先这样理解:

% 是老牌写法,简洁、常见、很多旧代码里都有format() 更灵活,表达能力更强,复杂场景更舒服

它们都不是错的。 只是风格不同,能力层级也略有差别。

入门阶段你最重要的不是站队, 而是都能看懂、都能写基础用法。

因为你后面看别人代码时,很可能两种都会遇到。

二十一、什么时候 % 还挺顺手

比如特别简单的一两项输出:

name = 'Tom'print('你好,%s' % name)

或者保留两位小数:

price = 9.9print('价格:%.2f元' % price)

这类写法很短,很快,也不难看懂。

所以 % 并不是不能用。 只是你要知道,它更适合简单场景。

二十二、什么时候 format 更有优势

比如下面这种情况:

变量多 一个变量要重复出现 有些地方要按名字填 有些数字要控制格式 输出模板比较长

这时候 format() 往往会更舒服。

比如:

text = '用户{name}在{city}下单成功,订单金额为{money:.2f}元,请尽快通知{name}确认收货'.format(    name='张三',    city='杭州',    money=299.9)print(text)

这种写法就很明显比 % 更适合长模板。

二十三、这一章最容易犯的几个错

先说 % 写法里最常见的。

第一,占位符和数据数量不一致。 第二,多个值忘了放进元组。 第三,%d%f 和实际类型不匹配。

再说 format()

第一,花括号数量和参数数量对不上。 第二,位置编号写乱了。 第三,按名字填值时,模板里的名字和后面的参数名写不一致。

还有一个共同的坑:

很多人以为格式化会修改原字符串。 其实不会。 它们都是返回一个新字符串。

所以你一般要么直接 print(),要么把结果接住。

二十四、别把格式化当成死板语法,要把它当成写句子的工具

这一点特别重要。

很多人学这一章时,会把注意力全放在符号上。 看 %s{}:.2f 看得眼花。

其实你只要换个角度,就会轻松很多。

字符串格式化,本质上是在做两件事:

先把句子模板写出来 再把数据优雅地塞进去

这样想以后,你就不会觉得它只是语法题。 而会觉得它是在帮你把输出组织得更像人话。

这在写提示语、日志、报表、消息通知时,真的特别重要。

二十五、练习题:这章一定要手敲

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

1. 用 % 格式化输出一句自我介绍

name = '张三'age = 18print('我叫%s,今年%d岁' % (name, age))

2. 用 % 保留 2 位小数输出价格

price = 29.9print('价格:%.2f元' % price)

3. 用 format() 输出姓名和城市

name = '李四'city = '上海'print('姓名:{},城市:{}'.format(name, city))

4. 用 format() 按名字填值

print('姓名:{name},年龄:{age}'.format(name='王五', age=20))

5. 用 format() 保留 1 位小数输出成绩

score = 93.56print('成绩:{:.1f}'.format(score))

6. 把下面这句商品信息格式化输出

product = '机械键盘'price = 299.0stock = 20text = '商品:{},价格:{:.2f}元,库存:{}件'.format(product, price, stock)print(text)

这些题你自己敲顺以后,格式化这件事就会从 眼熟 变成 手熟。

二十六、本章小结

这一章你要真正带走的,不只是 % 和 format 两种写法,而是一种更专业的输出思维。

加号拼接能解决最基础的问题, 但字符串格式化,才更适合真实开发里的文本组织。

% 写法是经典方式,适合简单场景。format() 更灵活,适合复杂模板和更清晰的表达。%s%d%f 是 % 写法里的常见占位符。{}{0}{name} 是 format() 里的常见占位方式。%.2f 和 {:.2f} 都能控制小数位数。

这一章学会之后,你写出的提示信息、成绩展示、商品信息、日志文本,都会明显更整齐。

下一章我们继续讲 f-string 为什么成了最推荐的格式化方式。 到了那里,你会发现,前面 % 和 format() 已经很实用了,但 Python 后来又把这件事做得更自然了一步。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-04 06:46:33 HTTP/2.0 GET : https://f.mffb.com.cn/a/491784.html
  2. 运行时间 : 0.259734s [ 吞吐率:3.85req/s ] 内存消耗:4,596.68kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=7d90d8c0556b0927b1037fb55ed1dbf9
  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.000755s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000751s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000337s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.005627s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000666s ]
  6. SELECT * FROM `set` [ RunTime:0.001421s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000668s ]
  8. SELECT * FROM `article` WHERE `id` = 491784 LIMIT 1 [ RunTime:0.021540s ]
  9. UPDATE `article` SET `lasttime` = 1783118793 WHERE `id` = 491784 [ RunTime:0.002923s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000309s ]
  11. SELECT * FROM `article` WHERE `id` < 491784 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000495s ]
  12. SELECT * FROM `article` WHERE `id` > 491784 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.012127s ]
  13. SELECT * FROM `article` WHERE `id` < 491784 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.013629s ]
  14. SELECT * FROM `article` WHERE `id` < 491784 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.013759s ]
  15. SELECT * FROM `article` WHERE `id` < 491784 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.025132s ]
0.263823s