首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分析条件语句

分析条件语句
EN

Software Engineering用户
提问于 2015-11-12 09:24:18
回答 1查看 1.3K关注 0票数 0

我用Python3编写了一个小实用程序,帮助我将我的音乐收藏从NAS复制到移动设备上。它的有用之处在于它将自动地将flac文件转换为ogg-vorbis (以节省空间),并根据它们的音频标记(即艺术家、专辑、日期等)排除一些文件。

我对排斥特性的局限性不满意,我想改进它,但我遇到了一个心理障碍,我正在寻找如何继续前进的建议。

我希望用户编写一个排除文件,该文件如下所示:

代码语言:javascript
复制
exclude {
    artist is "U2"

    artist is "Uriah Heep" {
        album is "Spellbinder"
        album is "Innocent Victim"
    }
}

这将转化为:

代码语言:javascript
复制
exclude if 
(artist = "U2") OR 
(artist = "Uriah Heep" AND (album = "Spellbinder" OR album = "Innocent Victim"))

将有更多的条件,如子字符串匹配和日期范围。

我一直在检查铺层,但我很难理解如何解析这种类型的嵌套结构,以及如何表示产生的条件,以便在复制操作期间应用排除筛选器时,可以在代码中执行它。

EN

回答 1

Software Engineering用户

发布于 2015-11-18 00:17:45

语言不可知论的答案(我不知道python):

因为您的结构是一棵树,所以您需要将其存储为树。你需要知道你的树是只有两个或两个以上,这可能会影响处理它的方式(递归或蛮力)。

如果你不需要优化速度,你可以从一个天真的算法开始。

将您的树与处理算法匹配。

从最高层开始。

为每个分支循环1/循环,直到找到匹配(排除)为止,如果没有匹配,则返回调用方而不排除。

2/如果节点在下一级别没有分支,则返回给调用方,并进行排除。

[3]如果节点在下一层有分支或叶子,那么从一个层次开始,从操作1开始。

HTH

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/302382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档