我尝试解析一个文件。它是一个 3d 点列表。我编写了这个函数来提取一行的第一个和第二个数字。现在我想检查从 String 到 Float(read function) 的转换是否成功。如果转换成功,我想返回 Point(Just Point2D),而在尝试失败时返回 Nothing。问题是这个案例想要一个 IO 但得到一个简单的。代码是从这篇文章中抽象出来的:Haskell 中的异常处理
-- | reads out of a splitted line the first and second of the list and returns a list of Points2D
pointExtraction
:: [String]
-> Maybe Point2D
pointExtraction (x:y:tail) = do
let result = try ( evaluate (createPoint x y )) :: IO (Either SomeException Point2D)
case result of
Left ex -> Nothing
Right point -> (Just point)
createPoint :: String -> String -> Point2D …Run Code Online (Sandbox Code Playgroud) 我想使用 numpy 数组来替换 Pandas 数据帧中的子集数据帧。
例如:一个熊猫数据框df。
df_subset = df.loc[[1,3,5,7,9], ["A", "B", "C"]]
Run Code Online (Sandbox Code Playgroud)
这里,子集数据帧的维度为(5, 3):
下面是 numpy 数组示例,其形状与我想替换为的子集数据帧相同:
replace_value = np.array([[1, 2, 3], [4, 4, 4], [1, 6, 8], [1, 3, 6], [8, 0, 1]])
Run Code Online (Sandbox Code Playgroud)
有没有类似的方法:
df_subset.values = replace_value
Run Code Online (Sandbox Code Playgroud)
我希望的是我替换的值会直接改变df. 这意味着如果我df再次使用相同的索引和列进行子集化,我将获得与我replace_value如上分配的 numpy 数组一样的确切值。
>>> output = "10.1.1.2\11.1.1.2$11.1.1.2\10.1.1.2"
>>> output.split("$")
['10.1.1.2\t.1.1.2', '11.1.1.2\x08.1.1.2']
Run Code Online (Sandbox Code Playgroud) 我目前正在为期权定价编写一些代码,同时我一直在尝试使用 Python 数据类进行试验。这里我有两个类,Option()and Option2(),前者用数据类语法编写,后者用传统类语法编写。
from dataclasses import dataclass, field
from typing import Optional
@dataclass
class Option:
is_american: Optional[bool] = field(default=False)
is_european: Optional[bool] = not is_american
class Option2:
def __init__(is_american=False):
self.is_european = not is_american
if __name__ == "__main__":
eu_option1 = Option()
print(f"{eu_option1.is_european = }")
eu_option2 = Option2()
print(f"{eu_option2.is_european = }")
Run Code Online (Sandbox Code Playgroud)
输出给出
eu_option1.is_european = False
eu_option2.is_european = True
Run Code Online (Sandbox Code Playgroud)
然而,非常奇怪的事情发生了。注意在这种Option2()情况下,默认情况下is_american是如何设置False的,因此is_european必须是True并且确实如此,所以这是预期的行为。
但在这种dataclass Option()情况下,is_american也False默认设置为。但是,无论出于何种原因,数据类都没有触发is_european: Optional[bool] …
我在这里找到了几个据称可以解决此问题的解决方案,但由于某种未知的原因,它们都不适合我。
我需要忽略给定文件夹中除一个特定文件之外的所有内容。容易,对吧?没那么快。
对于这些问题,我已经尝试了几乎所有建议的答案:
...但我并没有比开始时更进一步。
这是要包含的文件的路径:
D:\Projects\Website\Website\bin\Settings.json
Run Code Online (Sandbox Code Playgroud)
回购协议位于:
D:\Projects\Website
Run Code Online (Sandbox Code Playgroud)
我的.gitignore文件是由 Visual Studio 生成的,因此它包含以下条目:
[Bb]in/
Run Code Online (Sandbox Code Playgroud)
根据上面问题的许多答案,我应该能够做这样的事情:
!/Website/[Bb]in/Settings.json
Run Code Online (Sandbox Code Playgroud)
...但这行不通。该文件仍然被忽略。
这些排列都不起作用:
!*/Settings.json
!**/Settings.json
![Bb]in/Settings.json
![Bb]in/**/Settings.json
![Ww]ebsite/[Bb]in/Settings.json
!Website/bin/Settings.json
!/Website/bin/Settings.json
Run Code Online (Sandbox Code Playgroud)
我还尝试将一个单独的.gitignore文件放入bin:
# Don't block Settings.json
!Settings.json
!.gitignore
Run Code Online (Sandbox Code Playgroud)
没有运气。
如何阻止除文件[Bb]in之外的所有内容Settings.json?
预期结果:
Website\bin\Settings.json不被忽略
实际结果:
Website\bin\Settings.json继续被忽略
我想知道:写这个:
(<$>) :: (a -> b) -> Parser a -> Parser b
(<$>) f p1 s = case p1 s of
Just (r1 , s') -> Just (f r1, s')
Nothing -> Nothing
Run Code Online (Sandbox Code Playgroud)
而不是这个:
(<$>) :: (a -> b) -> Parser a -> Parser b
f <$> p1 = \s -> case p1 s of
Just (r1 , s') -> Just (f r1, s')
Nothing -> Nothing
Run Code Online (Sandbox Code Playgroud)
改变什么?
我正在模拟蒙蒂霍尔问题,这个片段是交换部分。
import random
i = 0
eliminated = 0
while i < 10:
i += 1
randFirstChoice = random.randint(1,3)
if randFirstChoice == 1:
eliminated += random.choice(2, 3)
elif randFirstChoice == 2:
eliminated += random.choice(1, 3)
elif randFirstChoice == 3:
eliminated += random.choice(1, 2)
print(eliminated)
Run Code Online (Sandbox Code Playgroud)
每当我运行这个时,我都会收到错误
类型错误: choice() 需要 2 个位置参数,但给出了 3 个
它给出的错误行号是 3 个条件语句。我很困惑,因为我认为这random.choice会让我在两个数字之间随机选择,据我所知,这就是我试图做的。
我运行了这个简单的代码:
import time
print(time.perf_counter())
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,输出是9851.549930951。该代码运行时间不到一秒,而且我没有使用perf_counter_ns. 这在其他程序中也是一个问题。perf_counter对于线程完成执行所需的秒数,输出 9000+ 而不是 0.9。输出总是很快,但答案总是 9000+,如 9851.549930951 中所示。
我想使用像这样的分隔符将一个大文本文件拆分为多个文本文件[TEST],如下所示:
texttexttext
texttexttext
texttexttext
[TEST] title1
texttexttext1
texttexttext1
texttexttext1
[TEST] title2
texttexttext2
texttexttext2
texttexttext2
[TEST] title3
texttexttext3
texttexttext3
texttexttext3
Run Code Online (Sandbox Code Playgroud)
它应该分成多个文本文件:
title1.txt 包含:
texttexttext1
texttexttext1
texttexttext1
Run Code Online (Sandbox Code Playgroud)
title2.txt 包含:
texttexttext2
texttexttext2
texttexttext2
Run Code Online (Sandbox Code Playgroud)
title3.txt 包含:
texttexttext3
texttexttext3
texttexttext3
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
错误是
teclat.vhdl:57:12:需要“if”而不是“process”
这end if是它应该在的地方。我不明白为什么它不能像缺少end ifalways一样编译。
architecture v1 of teclat is
begin
process(Buttons, COL, ROW) begin
if (Buttons(1) = '1') then
COL <= "100";
ROW <= "100";
else if (Buttons(2) = '1') then
COL <= "010";
ROW <= "100";
else if (Buttons(3) = '1') then
COL <= "001";
ROW <= "100";
else
ROW <= "111";
end if;
end process;
end v1;
Run Code Online (Sandbox Code Playgroud)