我正在使用Python"datetime"模块,即:
>>> import datetime
>>> today = datetime.datetime.now()
>>> print today
2009-03-06 13:24:58.857946
Run Code Online (Sandbox Code Playgroud)
我想计算一年中对闰年敏感的日期.例如,今天(2009年3月6日)是2009年的第65天. 这是基于网络的DateTime计算器.
无论如何,我看到两个选项:
创建一个number_of_days_in_month数组= [31,28,...],判断它是否为闰年,手动总结天数
使用datetime.timedelta进行猜测,然后二元搜索正确的一年:
.
>>> import datetime
>>> YEAR = 2009
>>> DAY_OF_YEAR = 62
>>> d = datetime.date(YEAR, 1, 1) + datetime.timedelta(DAY_OF_YEAR - 1)
Run Code Online (Sandbox Code Playgroud)
这些都感觉很笨重,我有一种直觉,那就是有更多的"Pythonic"方式计算一年中的一天.有什么想法/建议吗?
我正在开发一个包含多个源文件的Python模块,每个源文件都有自己的源代码测试类,这些测试类源自unittest.考虑目录结构:
dirFoo\
test.py
dirBar\
__init__.py
Foo.py
Bar.py
Run Code Online (Sandbox Code Playgroud)
要测试Foo.py或Bar.py,我会在Foo.py和Bar.py源文件的末尾添加它:
if __name__ == "__main__":
unittest.main()
Run Code Online (Sandbox Code Playgroud)
并在任一源上运行Python,即
$ python Foo.py
...........
----------------------------------------------------------------------
Ran 11 tests in 2.314s
OK
Run Code Online (Sandbox Code Playgroud)
理想情况下,我会"test.py"自动搜索dirBar以获取任何unittest派生类,并调用"unittest.main()".在实践中这样做的最佳方法是什么?
我尝试使用Python为dirBar中的每个*.py文件调用execfile,它为找到的第一个.py文件运行一次并退出调用test.py,然后我必须通过添加unittest.main()来复制我的代码每个源文件 - 违反DRY原则.
假设您有一个包含大量变量,函数和子例程的Fortran 90模块.在您的USE陈述中,您遵循哪种惯例:
, only :语法显式声明您正在使用哪些变量/函数/子例程,例如 USE [module_name], only : variable1, variable2, ...?USE [module_name]?一方面,该only子句使代码更加冗长.但是,它会强制您在代码中重复自己,如果您的模块包含许多变量/函数/子例程,那么事情就会开始变得难以驾驭.
这是一个例子:
module constants
implicit none
real, parameter :: PI=3.14
real, parameter :: E=2.71828183
integer, parameter :: answer=42
real, parameter :: earthRadiusMeters=6.38e6
end module constants
program test
! Option #1: blanket "use constants"
! use constants
! Option #2: Specify EACH variable you wish to use.
use constants, only : PI,E,answer,earthRadiusMeters
implicit none …Run Code Online (Sandbox Code Playgroud) 我有一些csh脚本,我需要在开始做之前检查某些环境变量是否已设置,所以我做了这样的事情:
if ! $?STATE then
echo "Need to set STATE"
exit 1
endif
if ! $?DEST then
echo "Need to set DEST"
exit 1
endif
Run Code Online (Sandbox Code Playgroud)
这是很多打字.是否有更优雅的习惯用于检查环境变量是否已经设置?
笔记:
上次我不得不担心安装Python软件包是两年前与Enthought,NumPy和MayaVi2合作的.这种经历给了我挥之不去的噩梦,这些噩梦与在非标准位置($HOME/usr/local2.6/例如)中安装和更新Python包的古怪行为有关.
无论如何,我的工作让我回到安装各种Python包.该Cheeseshop上教程中提到的distutils和EasyInstall除了扩建!我很难找到一个比较这些(和其他)PyPi安装工具的地方,所以我希望进入StackOverflow社区: 每个安装工具的优点和缺点是什么?
有没有办法让python脚本加载和使用环境模块?os.system('module load xxx')因为它在子shell中执行它们不起作用(至少,我认为这是正在发生的事情).
假设用户输入中缀表达式作为字符串?使用C语言评估表达式结果的最简单方法(最简单的意思是短语 t)是什么?
可能的方法是将其转换为后缀然后使用stacks.But它相当长的过程.有没有办法使用像atoi()或eval()这样的函数来简化工作?
我和朋友正在讨论今天午餐时Inf和NaN的存储方式.
以Fortran 90为例.4字节实数可以获得Inf或NaN的值.这是如何在内部存储的?据推测,4字节实数是由32位二进制数内部表示的数字.Inf和NaN是否存储为33位二进制数?
我想在我的Rails应用程序中共享与几个控制器之间的视图无关的代码.我应该在目录结构中的哪个位置放置它?
编辑:有问题的代码,如果所有控制器都使用它来确定它们如何呈现模型数据
python ×4
fortran ×2
module ×2
buildout ×1
c ×1
conventions ×1
csh ×1
datetime ×1
distribute ×1
distutils ×1
easy-install ×1
evaluate ×1
expression ×1
fortran90 ×1
gpgpu ×1
hpc ×1
math ×1
ruby ×1
unit-testing ×1