V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wxf666  ›  全部回复第 26 页 / 共 31 页
回复总数  602
1 ... 18  19  20  21  22  23  24  25  26  27 ... 31  
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 文件也没问题啊
2022-08-03 13:29:23 +08:00
回复了 yuhangch 创建的主题 Python Python 能不能像 node 一样管理包
@yuhangch ,最基础的 virtualenv 都能支持项目级依赖啊,Pycharm 默认的虚拟环境就是这货
2022-08-03 13:24:57 +08:00
回复了 yuhangch 创建的主题 Python Python 能不能像 node 一样管理包
@shyling 『伪装版的全局』是啥意思?我在一个 venv 里安装包,会有文件装到这个目录外面?
2022-08-03 08:43:56 +08:00
回复了 UN2758 创建的主题 问与答 SQL 不会写了,求问一个简单 SQL 语句
『 SQLite 测试通过(排版原因,每行代码开头有 _ 和 全角空格)』

WITH
  orig_data(class, stu, course) AS (
   VALUES
   ('1 班', '学生甲', '语文'), ('2 班', '戊', '语文'), ('3 班', '辛', '语文'),
   ('1 班', '学生乙', '语文'), ('2 班', '己', '语文'), ('3 班', '壬', '数学'),
   ('1 班', '学生丙', '数学'), ('2 班', '庚', '数学'), ('3 班', '癸', '数学'),
   ('1 班', '学生丁', '数学')
 ),

  table_with_rank(class, course, rank) AS (
   SELECT class, course, RANK() OVER (PARTITION BY class ORDER BY COUNT(*) DESC) rank
    FROM orig_data
_   GROUP BY class, course
 )

SELECT class, GROUP_CONCAT(course) courses
  FROM table_with_rank
_WHERE rank = 1
_GROUP BY class


『结果(可能出现多个并列第一的课程,此时用「,」分隔)』

class   courses
----- -------
  1 班 语文,数学
  2 班 语文
  3 班 数学
1 ... 18  19  20  21  22  23  24  25  26  27 ... 31  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2618 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 23ms · UTC 08:18 · PVG 16:18 · LAX 01:18 · JFK 04:18
Developed with CodeLauncher
♥ Do have faith in what you're doing.