V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wxf666  ›  全部回复第 29 页 / 共 34 页
回复总数  665
1 ... 21  22  23  24  25  26  27  28  29  30 ... 34  
2022-08-05 11:07:06 +08:00
回复了 shadow1949 创建的主题 程序员 SQL 苦手来请教各位大佬了。
@shadow1949 ,我还好奇一件事

假如表中就两项:

1. 2022-08-05 (周五) num: 100
2. 2022-08-06 (周六) num: 200

周六前五天,num 的平均值,你计划算出啥结果?

1. null
2. 不出现在结果列表
3. (100) / 1 = 100 (因为跳过周末)
4. (200 + 100) / 2 = 150 (因为包括当天)
2022-08-05 09:43:10 +08:00
回复了 shadow1949 创建的主题 程序员 SQL 苦手来请教各位大佬了。
马也,题目还有补充信息。。还要算节假日?
2022-08-05 09:39:14 +08:00
回复了 shadow1949 创建的主题 程序员 SQL 苦手来请教各位大佬了。
数据库新手试答一下

前面有大佬说了,任意连续 7 天必包含周六周日。只需算过去 7 天非周六周日的平均数即可

『 MySQL 语法(应该是这样吧)』:

WITH
  orig_data(date, num) AS (
   VALUES
    ROW('2022-07-29', 1), ROW('2022-07-23', 5),
    ROW('2022-07-30', 2), ROW('2022-07-21', 11),
    ROW('2022-07-31', 3), ROW('2022-06-11', 22),
    ROW('2022-08-01', 4), ROW('2022-06-10', 12),
    ROW('2022-08-02', 5),
    ROW('2022-08-03', 6),
    ROW('2022-08-04', 7),
    ROW('2022-08-05', 8)
 )

SELECT *,
    avg(CASE WHEN weekday(date) < 5 THEN num ELSE null END)
    OVER (ORDER BY date(date) RANGE INTERVAL 6 DAY PRECEDING) avg
  FROM orig_data


『结果』:

   date    num   avg
————— —— ————
2022-06-10   12   12.0000
2022-06-11   22   12.0000
2022-07-21   11   11.0000
2022-07-23   5   11.0000
2022-07-29   1   1.0000
2022-07-30   2   1.0000
2022-07-31   3   1.0000
2022-08-01   4   2.5000
2022-08-02   5   3.3333
2022-08-03   6   4.0000
2022-08-04   7   4.6000
2022-08-05   8   6.0000
2022-08-05 08:26:16 +08:00
回复了 shadow1949 创建的主题 程序员 SQL 苦手来请教各位大佬了。
『前五天』包括当天吗?比如,2022-07-23 『前五天』是( 23, 22, 21, 20, 19 )还是( 22, 21, 20, 19, 18 )?

『跳过周末,往前顺延』要将周末计算在内吗?比如,是(周一日六五四三二)还是(周一五四三二)?
2022-08-05 04:24:03 +08:00
回复了 UN2758 创建的主题 问与答 SQL 不会写了,求问一个简单 SQL 语句
@UN2758 2 楼 3 楼都是同一个思路『窗口函数』吧。。

都是计算出类似下表后,再取『排名 = 1 』的行:


班级 课程 选课数 排名
—— —— ——— ———
1 班 语文   2     1
1 班 数学   2     1
2 班 语文   2     1
2 班 数学   1     2
3 班 数学   2     1
3 班 语文   1     2
2022-08-04 20:51:19 +08:00
回复了 tangbj 创建的主题 程序员 求教, Excel 存储的题库,怎么快速生成题本和解析
@GodThemselves @tangbj 又搜了搜,大致瞅了瞅,

『 docxtpl 』这个 python 库可以做到类似 18 楼 那样,预先建一个『模板.docx 』,然后填充 3000 题,最后保存成新文件(有点类似 9 楼 说的邮件合并?)

实在要用 Excel 存数据的话,『 pandas 』应该能比较好地满足楼主的需求:读取 Excel 、根据条件筛选


话说 @tangbj ,你的原始数据长啥样的?

不知你是不是被『如何把所有题型塞一张表里』难住了。其实不一定要全部塞一张表里的
@bulay emm ,没有经验,连你的原始需求是啥都猜不出来。。等大神指点了
2022-08-04 17:15:06 +08:00
回复了 tangbj 创建的主题 程序员 求教, Excel 存储的题库,怎么快速生成题本和解析
@GodThemselves 文档生成这块,我也没啥经验

刚搜了搜,python 居然没有多少操控 markdown 的,几乎全是 markdown 转 html 的。。

虽说按楼主要求直接生成 markdown 很容易(还要处理下转义):

for index, pro in enumerate(problems):
  fp.write(f'{index + 1}.({pro.题型}){pro.题目}\n')
  if pro.题图:
   fp.write(f'![]({pro.题图})\n')
  for j, choice in enumerate(filter(None, (pro.A, pro.B, pro.C, pro.D))):
   fp.write(…)

但通用性太差了,专为楼主需求定制,没长进多少经验……

我自己的话,若想答,总想能干的更通用些,答案以后也更可能有用
@bulay Emm…… ssh 动态端口转发?
2022-08-04 16:48:54 +08:00
回复了 tangbj 创建的主题 程序员 求教, Excel 存储的题库,怎么快速生成题本和解析
@GodThemselves 看起来,你的源码和 @tangbj 的需求还有距离,比如:『要根据筛选条件,比如根据年份、根据难度等』、要包含目录』…… @tangbj 真要改起来,估计要学不少东西……

有可能做成一个 word 模板,python 按需填入吗?这样改起来方便,也能先用 word 自定义样式了


比如,『问题模板.docx 』:


(标题一样式,居中){{ 分类 3 }}

{{ for 问题 in problems }}

<word 的编号列表>({{ 问题.题型 }}){{ 问题.题目 }}

{{ if 问题.题图 is not None }}
{{ docx.添加图片(问题.题图) }}
{{ end }}

  A.{{ 问题.A }}
  B.{{ 问题.B }}
{{ if 问题.题型 != '判断题' }}
  C.{{ 问题.C }}
  D.{{ 问题.D }}
{{ end }}

{{ next }}



『答案模板.docx 』:


(标题一样式,居中){{ 分类 3 }}

{{ for 问题 in problems }}

<word 的编号列表>正确答案:{{ 问题.正确答案 }}   {{ 问题.年份 }}   {{ 问题.考点 }}

{{ 问题.解析 }}

{{ if 问题.解析图 is not None }}
{{ docx.添加图片(问题.解析图) }}
{{ end }}

{{ next }}
现在 Python 一般用多线程干啥呢?

应该干不了 CPU 密集型的活儿吧,那应该是 IO 密集型?

换做协程,会不会舒服点
2022-08-04 12:27:04 +08:00
回复了 cccmm 创建的主题 Python 不使用第三方包可以操作 excel 吗
要不你自己用 Office 内置的 VBA 宏实现呗
2022-08-03 18:00:58 +08:00
回复了 tangbj 创建的主题 程序员 求教, Excel 存储的题库,怎么快速生成题本和解析
@GodThemselves 看起来,要写的 python 代码只需输出 markdown ,

后续是由楼主的 markdown 转 pdf 工具来完成余下的工作(估计有自定义的 css ?),

这就很舒服啦~
2022-08-03 17:28:51 +08:00
回复了 guotao 创建的主题 问与答 设计个开发者专用的手机浏览器,会有这个需求吗?
chrome://inspect ?
2022-08-03 17:25:40 +08:00
回复了 tangbj 创建的主题 程序员 求教, Excel 存储的题库,怎么快速生成题本和解析
@tangbj 个人觉得,python 干这活儿会很快

有点怀疑,你这场景这么具体,真的能找到现成源码么。。

把路径当字符串存进数据库,很正常啊


我觉得,你放点数据出来,可能有人看着简单,顺手帮你写了代码也说不定
2022-08-03 16:50:13 +08:00
回复了 tangbj 创建的主题 程序员 求教, Excel 存储的题库,怎么快速生成题本和解析
@buliugu 3000 题,用不上多线程吧。。

就算数据库 B+树 3 层,3000 题每题都在不同页上,最差也就随机读 6000 页而已(第一层 root 页被缓存)

对于 SQLite 4K 一页,也就随机读 6000 次 4K

现在随便一个固态 4K 的 IOPS 都几万几十万了吧


实在不行,丢 RamDisk 呗,每题 1KB ,10W 数据大概也就占 100MB 内存吧

不想用 RamDisk ,SQLite 也有读取整个数据库文件至内存的选项
2022-08-03 16:29:00 +08:00
回复了 tangbj 创建的主题 程序员 求教, Excel 存储的题库,怎么快速生成题本和解析
咋觉得放进数据库里( SQLite 都行),写个小脚本,几秒钟都生成好了呢
2022-08-03 16:19:04 +08:00
回复了 coldx11 创建的主题 问与答 re split 正则表达式
我怀疑你原正则是『,(?![^(]*))』

匹配一个『,』,但它后面不能是字符串『「任意个非左括号字符」+「一个右括号字符」』

regex101 可能适合你
2022-08-03 15:48:50 +08:00
回复了 yuhangch 创建的主题 Python Python 能不能像 node 一样管理包
@shyling 你直接说会碰到啥问题吧,搞得讳莫如深的样子
2022-08-03 15:09:01 +08:00
回复了 yuhangch 创建的主题 Python Python 能不能像 node 一样管理包
@shyling 依靠什么环境变量?即使不 source <venv>/bin/activate ,直接运行 .py 文件也没问题啊
1 ... 21  22  23  24  25  26  27  28  29  30 ... 34  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1926 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 20ms · UTC 16:15 · PVG 00:15 · LAX 08:15 · JFK 11:15
Developed with CodeLauncher
♥ Do have faith in what you're doing.