小编Sim*_*got的帖子

在try块中使用return返回try/else

我在python中遇到了一个奇怪的行为.我在python帮助或SE上找不到相关信息,所以这里是:

def divide(x, y):
    print 'entering divide'
    try:
        return x/y
    except:
        print 'error'
    else:
        print 'no error'
    finally:
        print 'exit'

print divide(1, 1)
print divide(1, 0)
Run Code Online (Sandbox Code Playgroud)

输出:

entering divide
exit
1
entering divide
error
exit
None
Run Code Online (Sandbox Code Playgroud)

else如果在返回值中,似乎python不会进入块内try.但是,它总会进入finally阻止.我真的不明白为什么.有人可以用这个逻辑来帮助我吗?

谢谢

python exception-handling

44
推荐指数
4
解决办法
5万
查看次数

Haskell中内置的阶乘函数

我知道这听起来像一个愚蠢的问题,但这里是:Haskell中是否有内置因子?

Google给了我关于Haskell的教程,解释了我如何自己实现它,而且我在Hoogle上找不到任何东西.我不想每次需要时都重写它.

我可以product [1..n]用作替代品,但是有一个真正的Int -> Int阶乘内置函数吗?

haskell factorial

33
推荐指数
3
解决办法
3万
查看次数

高效的python数组到numpy数组转换

我从python标准库得到一个数组格式的大数组(图像为12 Mpix).由于我想对这些数组执行操作,我希望将其转换为numpy数组.我尝试了以下方法:

import numpy
import array
from datetime import datetime
test = array.array('d', [0]*12000000)
t = datetime.now()
numpy.array(test)
print datetime.now() - t
Run Code Online (Sandbox Code Playgroud)

我得到一到两秒之间的结果:相当于python中的循环.

有没有更有效的方法来进行这种转换?

python numpy

23
推荐指数
2
解决办法
4万
查看次数

在python中子类化和覆盖生成器函数

我需要覆盖父类的方法,它是一个生成器,我想知道正确的方法来做到这一点.以下是否有任何问题,或更有效的方法?

class A:
    def gen(self):
        yield 1
        yield 2

class B(A):
    def gen(self):
        yield 3
        for n in super().gen():
            yield n
Run Code Online (Sandbox Code Playgroud)

python python-3.x

15
推荐指数
2
解决办法
3944
查看次数

Python文件操作

我用这个python程序得到了一个错误的"IOError:[Errno 0] Error":

from sys import argv
file = open("test.txt", "a+")
print file.tell() # not at the EOF place, why?
print file.read() # 1
file.write("Some stuff will be written to this file.") # 2
# there r some errs when both 1 & 2
print file.tell()
file.close()
Run Code Online (Sandbox Code Playgroud)

什么似乎是问题?以下这两种情况都可以:

from sys import argv
file = open("test.txt", "a+")
print file.tell() # not at the EOF place, why?
# print file.read() # 1
file.write("Some stuff will be written to this file.") # 2 …
Run Code Online (Sandbox Code Playgroud)

python file-io

14
推荐指数
2
解决办法
1万
查看次数

用aeson解析utctime

我无法让aeson解析UTCTime值.我试图对其进行编码并将其反馈,但这不起作用:

Prelude Data.Aeson Data.Time.Clock> getCurrentTime >>= (print . encode)
"\"2013-10-17T09:42:49.007Z\""
Prelude Data.Aeson Data.Time.Clock> decode "2013-10-17T09:42:49.007Z" :: Maybe UTCTime
Nothing
Prelude Data.Aeson Data.Time.Clock> decode "\"2013-10-17T09:42:49.007Z\"" :: Maybe UTCTime
Nothing
Run Code Online (Sandbox Code Playgroud)

UTCTime类型的FromJSON实例是以下(ref):

instance FromJSON UTCTime where
    parseJSON = withText "UTCTime" $ \t ->
        case parseTime defaultTimeLocale "%FT%T%QZ" (unpack t) of
          Just d -> pure d
          _      -> fail "could not parse ISO-8601 date"
Run Code Online (Sandbox Code Playgroud)

按照此处的格式说明,一切都应该没问题.我错过了什么?

haskell aeson

11
推荐指数
1
解决办法
1613
查看次数

在Haskell中快速排序

阅读Stack Overflow问题在Haskell中使用向量提高性能以描述Haskell中的快速就地快速排序,我为自己设定了两个目标:

  • 实现中位数为3的相同算法,以避免预先排序的向量上的不良表现;

  • 制作并行版本.

结果如下(为简单起见,我们留下了一些小部件):

import qualified Data.Vector.Unboxed.Mutable as MV
import qualified Data.Vector.Generic.Mutable as GM

type Vector = MV.IOVector Int
type Sort = Vector -> IO ()

medianofthreepartition :: Vector -> Int -> IO Int
medianofthreepartition uv li = do
    p1 <- MV.unsafeRead uv li
    p2 <- MV.unsafeRead uv $ li `div` 2
    p3 <- MV.unsafeRead uv 0
    let p = median p1 p2 p3
    GM.unstablePartition (< p) uv

vquicksort :: Sort
vquicksort uv …
Run Code Online (Sandbox Code Playgroud)

sorting haskell quicksort

8
推荐指数
1
解决办法
1438
查看次数

如何使用反应定义编译打字稿

我正在尝试编写一个使用的打字稿模块React.addons.update。但是,我找不到使它编译的方法。

我有一个包含以下文件的文件夹:

我运行以下命令:

node <pathtotsc>\tsc -v
=> message TS6029: Version 1.3.0.0

node <pathtotsc>\tsc react.d.ts test.ts
=> test.ts(2,1): error TS2304: Cannot find name 'React'.
Run Code Online (Sandbox Code Playgroud)

我缺少什么?如何正确引用反应定义?

编辑

node <pathtotsc>\tsc test.ts
test.ts(2,1): error TS2304: Cannot find name 'React'.
Run Code Online (Sandbox Code Playgroud)

typescript reactjs

5
推荐指数
1
解决办法
5038
查看次数

在yesod中提供特定的html文件

我正在尝试使用静态文件路由,webservice api和域根目录的家庭地址来设置服务器.我的yes应用程序看起来像这样:

mkYesod "App" [parseRoutes|
/static StaticR Static getStatic
/ HomeR GET
... api routes
|]
Run Code Online (Sandbox Code Playgroud)

现在我发现了如何提供静态文件以及如何处理api请求.但我坚持这个getHomeR定义.我只是想提供一个index.html文件.我可以手动读取它并将其作为字符串传递.但是有没有一个有效的内置解决方案来提供特定的html文件?

haskell yesod

3
推荐指数
1
解决办法
645
查看次数

将[0-255]整数范围转换为[0.0-1.0]浮点范围

在WxWidget中,颜色由RGB整数三元组表示.要使用[0.0-1.0] float三元组表示与其他库交互,需要进行转换.

WxPython,Numpy或Python中是否已存在这样的转换函数?

python wxwidgets wxpython type-conversion

1
推荐指数
1
解决办法
8268
查看次数