当前位置:首页>python>用Grok大模型快速自学python (递归式学习)

用Grok大模型快速自学python (递归式学习)

  • 2026-02-21 19:26:43
用Grok大模型快速自学python (递归式学习)
直接编一段工作用得着的python程序,然后逐点解释里面的python知识点。
参考之前大火的递归学习法:
AI正在拉开真正的学习差距:告别知识
AI时代的学习方法——递归学习法
我问:

   最近有些质量流量控制器 Mass Flow Controller 需要进行测试,需要编程写测试程序如按5 SLPM的流量设定值、分别跑1 / 2 / 5小时的时间,然后总共进行4个循环。  我想今天就能自己手搓出这样一个完整的python测试程序。请你作为我得老师,形象的深入浅出第一性原理教我所需要的每个代码,让我1.5小时内学会,按你的思路即可,不给你上课限制,你尽情发挥,教会我就行。有理有据别瞎编。 不要包括参数配置或串口通讯等模块设置,直接给出最核心的测试模块即可。谢谢

Grok说:

已思考 17 秒

以下是我作为你的专属Python老师,为你量身定制的1.5小时快速上手教学目标:今天让你自己手搓出一个完整、可运行的核心测试程序,实现“设定5 SLPM流量 → 分别运行1小时 / 2小时 / 5小时 → 总共4个大循环”。

我完全尊重你的要求:不涉及任何串口配置、设备连接、alicat库导入、端口设置,只教最核心的测试逻辑模块(时间控制、循环、数据记录)。我会把真实设备控制部分用占位函数代替(以后你只需把这几行换成真正的alicat命令即可),这样你今天就能跑通整个程序、看到完整效果。

教学原则:

  • 第一性原理:从最底层拆解问题 → 为什么需要这个代码 → 它到底在干什么

  • 形象比喻:把抽象概念变成你熟悉的工厂流水线、仪表盘

  • 一步一步手把手:每敲完一段代码就立刻运行看效果

  • 只教今天必须的:不讲面向对象、不讲异常处理、不讲复杂库,只用最基础的Python标准库

总时长控制在1.5小时:

  • 0~20min:基础准备 + 时间控制

  • 20~50min:单次时长测试 + 数据记录

  • 50~80min:多时长嵌套 + 4个大循环

  • 80~90min:完整程序整合 + 你自己改运行

准备工作(2分钟):

  1. 打开任意Python编辑器(推荐Thonny或VS Code,或直接IDLE)

  2. 新建文件 mfc_test_core.py

  3. 随时保存、随时运行(F5)

────────────────────────────────

第一步:理解整个测试的“流水线”结构(10分钟)

你的测试需求拆解成最原始的步骤:

  1. 【一次设定】把流量设定为5 SLPM(只做一次,或每次循环开头都设都行)

  2. 【内层循环】依次运行三个时长:1小时 → 2小时 → 5小时在每个时长内:不断读取当前流量并记录(就像仪表盘每10秒拍一次照片)

  3. 【外层循环】把上面的“1h+2h+5h”整个流程重复4次

  4. 所有数据保存到同一个CSV文件,方便以后用Excel打开看曲线

形象比喻:就像工厂做耐久性测试——先把阀门开到5 SLPM(设定),然后让它跑1小时拍照记录 → 继续跑2小时继续拍照 → 再跑5小时继续拍照,这算一个完整批次;重复4个批次。

────────────────────────────────

第二步:掌握Python的时间控制(15分钟)

Python里控制“等待多久”用 time 模块。

import time# 示例1:睡10秒print("开始")time.sleep(10)  # 程序暂停10秒,什么都不干print("已经过去了10秒")# 示例2:计算已经过去了多久start_time = time.time()  # 记录当前时间戳(秒)time.sleep(5)elapsed = time.time() - start_timeprint(f"过去了 {elapsed:.1f} 秒")  # 大约5.0秒

第一性原理time.time() 返回从1970年1月1日到现在过去了多少秒(浮点数),两次相减就是真实流逝的时间,比time.sleep(3600)一睡到底更灵活(因为我们可以中间做事情,比如每10秒记录一次数据)。

请你现在敲上面代码运行,感受时间流逝。

────────────────────────────────

第三步:学会写数据到CSV文件(15分钟)

测试最重要的是留下数据痕迹。我们用最简单的CSV(Excel能直接打开)。

import csvimport time# 第一次运行时创建文件并写标题行withopen('mfc_test_log.csv''w', newline=''as file:    writer = csv.writer(file)    writer.writerow(['时间戳''循环次数''当前阶段''已运行秒数''当前流量SLPM'])print("CSV文件创建完成,标题已写入")

运行后你会看到当前文件夹多了一个 mfc_test_log.csv 文件,打开是:

时间戳,循环次数,当前阶段,已运行秒数,当前流量SLPM

后续追加数据用模式 'a'(append):

withopen('mfc_test_log.csv''a', newline=''as file:    writer = csv.writer(file)    writer.writerow(['2026-02-01 10:30:05'1'1小时阶段'36005.02])

形象理解:CSV就像工厂的纸质记录本,第一页写好表头,以后每次测量都往下一行写。

请你现在运行上面两段代码,确认文件生成和能追加。

────────────────────────────────

第四步:写“单次时长测试”核心函数(20分钟)

我们定义一个函数:run_duration(hours, cycle_num, phase_name)

功能:运行指定小时数,每10秒记录一次数据(流量用占位函数获取)

import csvimport timefrom datetime import datetime# 占位函数:以后你替换成真正的读取流量函数defget_current_flow():return5.0# 模拟返回5.0 SLPM,实际替换成 controller.get()['mass_flow']defrun_duration(hours, cycle_num, phase_name):    duration_seconds = hours * 3600    start_time = time.time()    record_interval = 10# 每10秒记录一次while (time.time() - start_time) < duration_seconds:        elapsed = time.time() - start_time        current_flow = get_current_flow()        timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')# 追加写入CSVwithopen('mfc_test_log.csv''a', newline=''as file:            writer = csv.writer(file)            writer.writerow([timestamp, cycle_num, phase_name, f'{elapsed:.0f}', f'{current_flow:.3f}'])print(f"循环{cycle_num} - {phase_name} - 已运行{elapsed:.0f}秒,当前流量{current_flow:.3f} SLPM")        time.sleep(record_interval)  # 等待10秒再下一次记录print(f"{phase_name} 完成!总用时 {hours} 小时")

为什么这样写(第一性原理)

  • while 循环不断检查是否到时间 → 灵活,可以中间做事

  • 每10秒记录一次 → 既不太密集占资源,又足够捕捉波动

  • datetime.now() → 给人看的真实时间

  • elapsed:.0f → 整数秒显示

  • 所有数据一行一行追加 → 文件不会乱

请你现在把上面代码敲进去运行:

run_duration(0.01671'测试阶段')  # 0.0167小时 ≈ 1分钟,方便你快速看到效果

你会看到控制台疯狂打印,每10秒一行,CSV文件也在快速增加行数。1分钟后自动结束。

────────────────────────────────

第五步:加上“设定流量”占位 + 完整4循环结构(20分钟)

现在把所有拼起来:

# 占位函数:以后替换成真正的设定函数defset_flow_setpoint(slpm):print(f"=== 已设定流量为 {slpm} SLPM ===")# 实际替换成:controller.set_setpoint(slpm)# 主程序开始print("=== MFC耐久性测试启动 ===")# 只需要设定一次(或每次循环开头都设都行,这里设一次)set_flow_setpoint(5.0)# 先写CSV表头(如果文件不存在)try:withopen('mfc_test_log.csv''x', newline=''as file:        writer = csv.writer(file)        writer.writerow(['时间戳''循环次数''当前阶段''已运行秒数''当前流量SLPM'])except FileExistsError:pass# 文件已存在,不再写表头# 外层4个大循环for cycle inrange(15):  # 1到4print(f"\n>>> 开始第 {cycle} 个大循环 <<<")    run_duration(1, cycle, '1小时阶段')    run_duration(2, cycle, '2小时阶段')    run_duration(5, cycle, '5小时阶段')print(f"第 {cycle} 个大循环完成!\n")print("=== 全部4个循环测试完成!数据已保存到 mfc_test_log.csv ===")

完整程序到此结束!

快速验证(把所有run_duration的小时数改小):

  • 把三个 run_duration 的小时改成 0.0167(≈1分钟)

  • 运行整个程序 → 大约12分钟后结束,你会看到:

    • 控制台清晰打印每个阶段进度

    • CSV文件有几百行数据,打开Excel就是漂亮的记录表

────────────────────────────────

第六步:你现在自己动手(10分钟)

请立即做以下修改并运行:

  1. 把三个时长改成 0.0333 小时(≈2分钟),跑通确认逻辑正确

  2. 再改回真实时长(1, 2, 5),但只跑1个cycle(把range(1,5)改成range(1,2)),确认不会出错

  3. 随意改记录间隔(record_interval = 30),看CSV行数变化

做完这三步,你就真正自己手搓出了一个完整的MFC测试核心程序

以后真正接设备时,只需要:

  • 把 set_flow_setpoint(5.0) 替换成 alicat 的设定命令

  • 把 get_current_flow() 替换成 alicat 的读取流量命令

  • 把 record_interval = 10 改成你想要的频率

你已经掌握了Python测试程序的最核心骨架:时间控制 + 循环嵌套 + 数据记录

恭喜你!今天就完成了从0到1的突破。现在就去跑程序吧,跑完告诉我你的CSV文件有多少行了,我等着给你庆祝!🚀

你说:

请第一性原理详细解释如下每一个行程序,及出现的概念;有理有据别瞎编;包括: 什么是import,还有哪些类似表达方式? 什么是time库?怎么用? 什么是time.sleep,还有哪些类似表达方式? 什么是print,还有哪些类似结果输出的表达方式? 什么是elapsed ,这个变量不需要提前定义吗 like C++要求的那样?然后还有哪些类似表达方式?  import time  # 示例1:睡10秒 print("开始") time.sleep(10)  # 程序暂停10秒,什么都不干 print("已经过去了10秒")  # 示例2:计算已经过去了多久 start_time = time.time()  # 记录当前时间戳(秒) time.sleep(5) elapsed = time.time() - start_time print(f"过去了 {elapsed:.1f} 秒")  # 大约5.0秒

Grok说:

已思考 6 秒

你好!继续我们今天的Python速成课🚀我们现在来第一性原理地拆解你贴出的这段代码——每一行、每一个概念都从最底层逻辑讲清楚,为什么Python要这样设计,它在干什么,有没有其他方式能达到同样效果。我会用你熟悉的“工厂流水线”和“仪表盘”比喻,让你彻底懂透,而不是死记。

代码全段如下(带行号方便讲解):

1import time23# 示例1:睡10秒4print("开始")5  time.sleep(10)  # 程序暂停10秒,什么都不干6print("已经过去了10秒")78# 示例2:计算已经过去了多久9  start_time = time.time()  # 记录当前时间戳(秒)10 time.sleep(5)11 elapsed = time.time() - start_time12print(f"过去了 {elapsed:.1f} 秒")  # 大约5.0秒

逐行第一性原理解释

第1行:import time

  • 这是干什么?这行告诉Python解释器:“我要使用一个叫time的工具箱(模块),请把它加载进来。”加载后,程序就能调用time工具箱里的各种功能(比如暂停、取当前时间)。

  • 第一性原理:为什么需要import?Python的核心设计哲学是**“电池内置,但不全塞给你”**。Python自带很多强大工具(标准库),但为了让程序启动快、内存占用小,默认只加载最基本的功能。当你需要时间相关功能时,必须明确说“我要用time这个工具箱”,这就是import的意义——按需加载,避免浪费

  • 类似表达方式(其他导入写法)

    1. from time import sleep, time→ 只导入time工具箱里的两个工具(sleep和time),以后直接写sleep(10)而不用time.sleep(10)。更简洁,但导入多了会让代码可读性变差。

    2. from time import *→ 把time工具箱里所有工具都导入(不推荐,因为容易名字冲突)。

    3. import time as t→ 导入后给它起别名t,以后写t.sleep(10),适合工具箱名字太长时用。

第3-6行:示例1(睡10秒)

第4行:print("开始")

  • 这是干什么?把字符串"开始"输出到屏幕(控制台)。就像工厂流水线上的显示屏,告诉你当前状态。

  • 第一性原理:为什么需要print?程序运行时默认是“黑箱”,你看不到内部在干什么。print最原始的调试和反馈手段,让人类能实时观察程序行为。

  • 类似结果输出方式

    1. logging.info("开始")(需import logging)→ 更专业,支持日志级别、写文件、带时间戳,常用于正式程序。

    2. sys.stdout.write("开始\n")(需import sys)→ 底层方式,几乎和print一样,但更灵活。

    3. 直接返回字符串(在函数里return "开始")→ 不打印,但把结果传给调用者。

第5行:time.sleep(10)

  • 这是干什么?让整个程序暂停执行10秒,什么都不干(CPU几乎不占用)。10秒后自动继续下一行。

  • 第一性原理:time库是什么?怎么用?time 是Python标准库中的一个模块,专门处理“时间”相关操作。它的底层调用了操作系统的时钟接口,能精确控制时间。使用方式:先import time,然后用time.函数名()调用里面的工具。

    常见time库功能(你以后会常用):

    • time.sleep(seconds) → 暂停(最常用)

    • time.time() → 返回当前时间戳(从1970-01-01 00:00:00 UTC到现在过去了多少秒,浮点数)

    • time.monotonic() → 单调递增时间(不受系统时间修改影响,更适合计时)

    • time.perf_counter() → 高精度性能计时

  • time.sleep的类似表达方式

    1. 没有真正等价的内置函数,但可以用低效方式模拟:

      start = time.time()while time.time() - start < 10:pass# 空循环狂转CPU,浪费电,不推荐

    2. asyncio.sleep(10)(需在异步函数里)→ 用于现代异步编程,不阻塞整个程序。

    3. 第三方库如pygame.time.wait(10000)(毫秒)→ 游戏开发常用。

第6行:print("已经过去了10秒")同第4行,输出结束提示。

第8-12行:示例2(精确计时)

第9行:start_time = time.time()

  • 这是干什么?当前时刻的时间戳(一个浮点数,如1738387200.123)存到变量start_time里。就像你在工厂按下秒表开始计时。

第10行:time.sleep(5)同上,暂停5秒。

第11行:elapsed = time.time() - start_time

  • 这是干什么?再次取当前时间戳,减去开始时的时间戳,得到真实流逝的秒数,存到变量elapsed

  • 第一性原理:elapsed变量为什么不需要提前定义?(和C++对比)

    这触及了编程语言的核心差异:动态类型 vs 静态类型

    为什么Python这样设计?Python的哲学是“让程序员少写重复代码,专注逻辑”。变量声明是重复劳动(类型通常能推断出来),所以干脆省掉。这也是为什么Python适合快速原型、脚本、工程师工具,而C++适合底层高性能系统。

    • C++(静态类型语言)编译器必须在编译时就知道所有变量的类型和内存大小,所以你必须提前声明:

      double start_time;  // 必须先声明start_time = time(NULL);

      不声明就报错,目的是早期发现错误、优化性能。

    • Python(动态类型语言)解释器在运行时才决定变量类型。你直接赋值就自动创建变量,无需提前声明。

      elapsed = 3.14# 自动创建浮点型变量elapsed = "hello"# 同一变量还能改成字符串!(C++不行)

      优点:写代码极快、灵活;缺点:运行时才报错(如果拼错变量名)。

  • elapsed的类似表达方式

    1. time.monotonic()更稳(不受系统时间调整影响):

      start = time.monotonic()time.sleep(5)elapsed = time.monotonic() - start

    2. time.perf_counter()最高精度(适合性能测试):

      start = time.perf_counter()time.sleep(5)elapsed = time.perf_counter() - start

第12行:print(f"过去了 {elapsed:.1f} 秒")

  • f-string(格式化字符串):Python 3.6+引入的最优雅输出方式。{elapsed:.1f}意思是:把elapsed变量的值插入这里,保留1位小数(f=float)。类似方式:

    • 老方式:print("过去了 %.1f 秒" % elapsed)

    • print("过去了 {} 秒".format(elapsed))

    • print("过去了", elapsed, "秒")(最简单)

小结:这段代码的核心价值

它展示了Python处理时间的最底层模式

  1. 要用时间功能 → import time

  2. 要暂停 → time.sleep()

  3. 要精确计时 → 两次time.time()相减(秒表原理)

这正是我们后面MFC测试程序的核心骨架:用时间戳控制循环运行多久,中间不断记录数据

现在请你立即做个小练习(5分钟):

  1. time.sleep(10)改成time.sleep(3)

  2. elapsed:.1f改成:.0f(不显示小数)

  3. 运行看看输出变化

做完告诉我结果,我继续带你进入下一个阶段:把这个计时逻辑放进while循环,做真正的“跑1小时记录数据”!🔥

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-28 18:06:38 HTTP/2.0 GET : https://f.mffb.com.cn/a/475521.html
  2. 运行时间 : 0.267405s [ 吞吐率:3.74req/s ] 内存消耗:4,990.30kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=c483482472ffd4988847903887846403
  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.000892s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001365s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.002556s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000726s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001439s ]
  6. SELECT * FROM `set` [ RunTime:0.016717s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001762s ]
  8. SELECT * FROM `article` WHERE `id` = 475521 LIMIT 1 [ RunTime:0.010789s ]
  9. UPDATE `article` SET `lasttime` = 1772273198 WHERE `id` = 475521 [ RunTime:0.014237s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000650s ]
  11. SELECT * FROM `article` WHERE `id` < 475521 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001237s ]
  12. SELECT * FROM `article` WHERE `id` > 475521 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001203s ]
  13. SELECT * FROM `article` WHERE `id` < 475521 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.028596s ]
  14. SELECT * FROM `article` WHERE `id` < 475521 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.006395s ]
  15. SELECT * FROM `article` WHERE `id` < 475521 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.005370s ]
0.271659s