我有一个用Python编写的控制台程序.它使用以下命令询问用户问题:
some_input = input('Answer the question:', ...)
Run Code Online (Sandbox Code Playgroud)
我将如何测试中,含有一个呼叫的功能input使用pytest?我不想强迫测试人员多次输入文本只完成一次测试运行.
该LogisticRegression.predict_proba功能究竟返回了什么?
在我的例子中,我得到这样的结果:
[[ 4.65761066e-03 9.95342389e-01]
[ 9.75851270e-01 2.41487300e-02]
[ 9.99983374e-01 1.66258341e-05]]
Run Code Online (Sandbox Code Playgroud)
从其他计算中,我知道,使用sigmoid函数,第二列是概率.该文件说,第一列是n_samples,但那是不可能的,因为我的样品的评价,这是文字和数字没有.文档还说,第二列是n_classes.这当然不可能,因为我只有两个类(即+1和-1),并且该函数应该是关于计算真正属于类的样本的概率,而不是类本身.
真正的第一列是什么?它为什么存在?
python machine-learning probability scikit-learn logistic-regression
我试图筛选Vec<Vocabulary>这里Vocabulary是一个自定义的struct,它本身包含一个struct VocabularyMetadata和Vec<Word>:
#[derive(Serialize, Deserialize)]
pub struct Vocabulary {
pub metadata: VocabularyMetadata,
pub words: Vec<Word>
}
Run Code Online (Sandbox Code Playgroud)
这用于处理Web应用程序中的路由,其中路由如下所示:/word/<vocabulary_id>/<word_id>.
这里是我当前的代码试图filter在Vec<Vocabulary>:
let the_vocabulary: Vec<Vocabulary> = vocabulary_context.vocabularies.iter()
.filter(|voc| voc.metadata.identifier == vocabulary_id)
.collect::<Vec<Vocabulary>>();
Run Code Online (Sandbox Code Playgroud)
这不起作用.我得到的错误是:
the trait `std::iter::FromIterator<&app_structs::Vocabulary>` is not implemented for `std::vec::Vec<app_structs::Vocabulary>` [E0277]
Run Code Online (Sandbox Code Playgroud)
我不知道如何实施任何FromIterator,也不知道为什么这是必要的.在同一个Web应用程序中的另一个路径中,我执行以下相同的文件,其工作原理:
let result: Vec<String> = vocabulary_context.vocabularies.iter()
.filter(|voc| voc.metadata.identifier.as_str().contains(vocabulary_id))
.map(encode_to_string)
.collect::<Vec<String>>();
result.join("\n\n") // returning
Run Code Online (Sandbox Code Playgroud)
所以它似乎String实现了FromIterator.
但是,我没有得到,为什么我不能简单地Vec从the filter或collect方法中获取元素. …
我正在Spyder IDE中进行实验并了解到,可以使用#%%分隔符定义单元格.现在我找不到它,但是可以使用降价,就像在Jupyter笔记本中一样吗?
今天我尝试将我的一些"最终"值(我的班级成员)从一个类外包给一个Enum.我运行了我编写的单元测试并注意到,测试需要比以前更长的时间才能完成.当我把这些"最终"值重新放回课堂时,一切都恢复了原来的速度.这里是我在Enum中访问它们时的一个例子:
class SpecialCharacters(Enum):
TONE_NUMBERS = ["0", "1", "2", "3", "4"]
Run Code Online (Sandbox Code Playgroud)
像这样访问它:
SpecialCharacters.TONE_NUMBERS.value
Run Code Online (Sandbox Code Playgroud)
它们在类中时访问值的示例:
self.TONE_NUMBERS
Run Code Online (Sandbox Code Playgroud)
所以我想知道为什么当我将值放入Enum时,我的测试需要花费3倍(!)的时间.它应该是对另一个班级成员的简单调用,但我认为这不会产生如此大的差异.
(将它们外包的目标是它们可用于其他类,而其他类不必访问与它们无关的类.)
我的python版本是3.4.
我想找到一个最好的字体来显示utf-8字符tk.Text.
我让python使用这段代码打印tk已知的所有姓氏:
print(font.families(root=self.parent))
Run Code Online (Sandbox Code Playgroud)
以及使用此代码的所有已知名称:
print(font.names(root=self.parent))
Run Code Online (Sandbox Code Playgroud)
然而,族的输出是一个字体列表,其名称由一个或多个单词组成.用这样的单词设置一个很容易:
text = tk.Text(master=self.frame)
text.configure(font='helvetica 12')
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用由多个单词组成的字体名称时,我收到一个错误:
_tkinter.TclError: expected integer but got <second word of the family name>
Run Code Online (Sandbox Code Playgroud)
我不能设计它,因为它是一个tk而不是一个ttk小部件,所以很遗憾我做不到:
style.configure('My.TText', fontsize=12, font='<family name with multiple words>')
Run Code Online (Sandbox Code Playgroud)
我还试图简单地删除姓氏的空格,如下所示:
text.configure(font='fangsongti')
Run Code Online (Sandbox Code Playgroud)
但这会导致tkinter使用一些后备字体.我检查了它的名字,如:
text.configure(font='fangsongtisdngfjsbrgkrkjgbkl')
print(text.cget('font'))
Run Code Online (Sandbox Code Playgroud)
这导致打印出我作为姓氏输入的确切字符串.因此它只接受所有内容,除了多个措辞名称.
我找到了一些看起来不错的字体,但只有一定的尺寸,我不确定它们是否适用于大多数系统:
# helvetica 12
# gothic 13
# mincho 13
Run Code Online (Sandbox Code Playgroud)
如何设置名称由多个单词组成的字体?如果我不能,具有一个措辞名称的字体适合显示utf-8字符,例如普通字体大小的中文(但不是唯一!)字符,并且在大多数系统上都可用?
使用以下功能,我已经设法防止笔记本计算机中的输出被截断:
pd.set_option('display.max_colwidth', 200)
pd.set_option('display.max_columns', 0)
Run Code Online (Sandbox Code Playgroud)
但是,它仍然会破坏某些单元格中的长行(不会截断!)。我如何防止它这样做?
(我不在乎总表有多宽,因为我可以简单地滚动笔记本单元的输出...)
我有一个Cow:
use std::borrow::Cow; // Cow = clone on write
let example = Cow::from("def")
Run Code Online (Sandbox Code Playgroud)
我想def退出它,以便将它追加到另一个String:
let mut alphabet: String = "ab".to_string();
alphabet.push_str("c");
// here I would like to do:
alphabet.push_str(example);
Run Code Online (Sandbox Code Playgroud)
这不起作用,我没有看到适当的方法Cow来获取&str或String退出.
在 JavaFX Scene Builder 中,我可以为 aControl或的最小、最大和首选宽度和高度选择一个值Container。有预定义的值,如USE_COMPUTED_SIZE.
我得出的结论是,我不喜欢在当前项目中使用 FXML,原因有几个,现在我想知道在不使用 FXML 时如何设置这些值。
我该怎么做呢?
我试过以下代码:
initializeControls();
addControls();
setMinHeight(Control.USE_COMPUTED_SIZE);
setMinWidth(Control.USE_COMPUTED_SIZE);
addActionListeners();
addFocusChangeListeners();
Run Code Online (Sandbox Code Playgroud)
但是,在尝试创建舞台时会导致异常:
Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: The width and height must be >= 0. Got: width=-1; height=-1
at com.sun.glass.ui.Window.setMinimumSize(Window.java:984)
at com.sun.javafx.tk.quantum.WindowStage.setMinimumSize(WindowStage.java:291)
at javafx.stage.Stage.impl_visibleChanging(Stage.java:1154)
at javafx.stage.Window$9.invalidated(Window.java:743)
at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:109)
at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:143)
at javafx.stage.Window.setShowing(Window.java:841)
at javafx.stage.Window.show(Window.java:856)
at javafx.stage.Stage.show(Stage.java:255)
at dictionary.MainApp.trainVocablesButtonActionPerformed(MainApp.java:281)
at dictionary.MainApp.lambda$addActionListeners$2(MainApp.java:240)
at dictionary.MainApp$$Lambda$281/81350454.handle(Unknown Source)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) …Run Code Online (Sandbox Code Playgroud) 我想为 Haskell 的教程程序构建一个环境,因为我想尝试学习这门语言。所以我阅读了 Cabal 并且已经在我的机器上安装了它,因为我有时会更新 pandoc。我遵循了一些教程,其中指出您应该运行:
$ cabal sandbox init
$ cabal install --only-dependencies
$ cabal build
Run Code Online (Sandbox Code Playgroud)
要设置环境。但是,如果我尝试这样做,我会收到以下消息:
$ cabal sandbox init
Writing a default package environment file to
/home/xiaolong/development/Haskell/cabal.sandbox.config
Using an existing sandbox located at
/home/xiaolong/development/Haskell/.cabal-sandbox
Run Code Online (Sandbox Code Playgroud)
(ls命令输出)
$ ls
cabal.sandbox.config
Run Code Online (Sandbox Code Playgroud)
进而:
$ cabal install --only-dependencies
cabal: Error reading local package.
Couldn't find .cabal file in: .
Run Code Online (Sandbox Code Playgroud)
嗯?突然需要一个.cabal文件?这让我很困惑。我需要采取哪些步骤来获得一个环境,在该环境中我可以简单地安装软件包,然后使用该环境运行我选择的任何教程的代码?
这是另一个建议所描述的工作流程的教程。有什么我失踪了。
(我的印象是,cabal 沙箱与 python virtualenvs 相当,在某种程度上很有用,不需要在系统范围内安装软件包,而是可以将它们安装在一个目录中,然后使用该环境运行程式。)
python ×5
rust ×2
cabal ×1
enums ×1
filtering ×1
fonts ×1
haskell ×1
height ×1
input ×1
java ×1
javafx ×1
markdown ×1
pandas ×1
performance ×1
probability ×1
pytest ×1
python-3.x ×1
sandbox ×1
scikit-learn ×1
spyder ×1
string ×1
struct ×1
testing ×1
text ×1
tkinter ×1
unit-testing ×1
vector ×1
virtualenv ×1
widget ×1
width ×1