我知道一个小蟒蛇,就是这个。 我的目标是创建一个程序,它需要一些用户输入并打印出两件事:
(原谅无用的视觉辅助工具)
mon-sun list如:
mon tues wed ...
jon 1 alex 3 sam 2
和具有相同信息的日历:
feb
1 2 3 4...
jon alex sam
joe lun fred
8 9 10
问题:我是否打算从头开始构建自己的日历?或者以某种方式修改说python标准库附带的现有日历模块更合乎逻辑?或者我完全以错误的方式解决这个问题,应该考虑......(某事)
我一直在扫描calendar module for python并且不相信我可以控制那么多代码。但建立我自己的东西似乎同样困难。
附加:该程序很可能没有人使用,但理论上它需要在Windows上运行,我还没有想出(Gui或Web应用程序),安全性或如何保存/备份/访问用户数据。
答案 0 :(得分:2)
据我所知,看起来您想要构建某种日历/日程安排应用程序。正如你所注意到的,实际上有很多细节涉及到这样的工作。在这个过程中,您将遇到程序员遇到的最常见问题之一。
我应该使用现有的库还是自己构建一些东西?
关于此主题,quite bit discussion this tutorial,最终归结为环境。
所以,我会尝试稍微解决你的情况。作为一个初学者,使用大量代码很难,做一些你以前没有做过的事情也很难,同时做两件事都会让人感到沮丧。出于这个原因,我建议采取两种途径之一:
查找描述类似于您想要做的事情的教程并遵循它。
将您的注意力缩小到可以解决的最小问题,然后编写代码来实现这一目标。
使用选项一,我想你会有一些运气搜索“待办事项列表”教程。这比完整的日历简单一点,但是在这个空间里有足够的空间来做有趣的事情。事实上,程序员经常编写待办事项列表软件。通过一点点快速谷歌搜索,我发现了about your first project如何使用Django制作待办事项列表网站。我不确定它是否非常好,但如果不是,那肯定是其他的。
对于选项二,您将要从显着缩小的范围开始。我首先考虑的问题是“如何存储日历?”您可能会考虑使用带有days(由整数表示)作为键的python字典,以及将待办事项列表作为值。然后你可以开始接近“我该如何显示这个?”的问题。
我建议坚持把东西打印到终端上给初学者。除非你的目标是学习GUI或网络编程,否则在这个方向上的偏离将花费大量时间来解决你想要解决的任何问题。
我刚看到你的问题The Mythical Man Month。我想赞同Ben Taitelbaum给出的建议
也不要过于担心界面,因为你要决定这个版本很糟糕,你需要在某些时候抛弃它。那么(而不是更早的时刻)将是思考界面的正确时机
并扩展它以包括你的内部。如果您决定构建与python的日历模块分开的东西,那么您可能会将其抛弃并重新开始。如果您决定使用python的日历模块构建一些东西,那么您也可能会将其抛弃并重新开始。
作为一个说明,建立一些东西扔掉它并不是一件坏事。它实际上在书{{3}}中深入描述。虽然描述是关于专业软件工程,但我认为它也适用于初学者。如果您以前从未解决过这类问题,那么很难知道解决问题的最佳方法。解决问题的最佳方法可能是接受您的第一个解决方案不起作用,但无论如何都要构建它。