首页 > 解决方案 > hamcrest:如何输入布尔值

问题描述

我不确定为什么在我拥有此代码时会看到错误。all_is_valid 以黄色突出显示,当我将鼠标悬停在上面时,我看到下面的错误消息。如何避免不突出显示它?

预期类型“Matcher[bool]”(匹配泛型类型“Matcher[T]”),改为“bool”

all_is_valid=True  
actual = None
if not actual:
    all_is_valid = False
    assert_that(True, all_is_valid,"test failed")

标签: pythonhamcrestpyhamcrest

解决方案


尝试将您的输入转换为 bool 不会像那样工作。Python 认为任何非空字符串为 True。所以做 bool(input()) 和做 input() != '' 基本一样。即使输入不是“真”,两者都返回真。只需将直接给出的输入与字符串 "True 和 "False" 进行比较:`isTrue = True while isTrue:

isTrue = bool(int(input("Continue? 1 for yes, 0 for no: ")))`

推荐阅读