如果:布爾查詢
x = 0
b = x==0
和I打印是將打印 '真'
但如果我沒有:
x = 0的
B = X == 3
我打印它會是假的。 而不是它打印false我將如何採取布爾值'b'來打印我想要的文本?
讓我進一步解釋:
bool = all(n > 0 for n in list)
if bool != 'True':
print 'a value is not greater than zero'
但它打印什麼?
如果:布爾查詢
x = 0
b = x==0
和I打印是將打印 '真'
但如果我沒有:
x = 0的
B = X == 3
我打印它會是假的。 而不是它打印false我將如何採取布爾值'b'來打印我想要的文本?
讓我進一步解釋:
bool = all(n > 0 for n in list)
if bool != 'True':
print 'a value is not greater than zero'
但它打印什麼?
這是什麼意思?
x = 0
if x != 3:
print "x does not equal 3"
雖然很好,但這個問題變形了;也許這不再合適。 – 2009-12-17 19:28:15
>>> x = 0
>>> if not x == 3: print 'x does not equal 3'
x does not equal 3
LTE我進一步解釋:
>>> list = [-1, 1, 2, 3]
>>> if not all(n > 0 for n in list): print 'a value is not greater than zero'
a value is not greater than zero
# => or shorter ...
>>> if min(list) < 0: print 'a value is not greater than zero'
a value is not greater than zero
注意list
是一個內置的,不應該被用來作爲一個變量名。
>>> list
<type 'list'>
>>> list = [1, 2, "value not greater than 0"]
>>> list
[1, 2, "value not greater than 0"]
>>> del list
>>> list
<type 'list'>
...
的if
語句作爲其他的答案表明一種可能性(你可以添加一個else
條款打印特定在每種情況下的東西)。更直接的是if/else
操作:
print('equality' if b else 'diversity')
你也可以使用索引,因爲假有int值0和真實的int值1:
print(['different', 'the same'][b])
但我覺得有點少可讀性比if
變體可讀。
a = lambda b :("not true","true")[b == 3]
print a(3)
會爲你做它,如果你想要把它放在一個拉姆達
這是我在OP進一步解釋問題時想到的第一件事。 – 2009-12-17 16:34:33
如果OP不確定如何正確使用布爾變量,那麼lambda表達式的概念可能會稍微高級。 – 2009-12-17 16:56:40
在我看來,他理解布爾人就好,但他們之間的關係與字符串以及作業之間混淆。 – 2009-12-21 02:50:34
你需要做印刷自己,大家都建議在這裏。
值得注意的是,某些語言(例如,斯卡拉,紅寶石,Groovy中)有語言功能,使您能夠編寫:
x should be(3)
這將報告:
0 should be 3 but is not.
在Groovy中,與Spock testing framework,你可以寫:
def "my test":
when: x = 0
expect: x == 3
那就輸出:
條件不滿意:
x == 3
| | |
0 | 3
false
雖然我不認爲這可能幹淨利落。
刪除引號真:
bool = all(n > 0 for n in list)
if bool != True:
print 'a value is not greater than zero'
或者,你也可以檢查錯誤:
bool = all(n > 0 for n in list)
if bool == False:
print 'a value is not greater than zero'
有寫它的其他一些「捷徑」的方式,但由於你初學者讓我們不要混淆不必要的話題。
我想也許下面將有助於緩解你的一些困惑......
>>> 0==0
True
>>> 'True'
'True'
>>> (0==0) == 'True'
False
>>> (0==0) == True
True
>>>
>>> 'True' is not True
True
「真」是一個字符串
真正是一個布爾
他們什麼都沒有除了巧合之外,彼此之間也是如此。字符串值恰好與布爾文字具有相同的字母。但這只是一個巧合。
這是功課嗎?請用[作業]標記作業。 – 2009-12-17 16:17:13
對不起,我錯過了寫下這個問題 – harpalss 2009-12-17 16:19:01
@harpalss,所以編輯你的問題,使其正確,很容易! – 2009-12-17 16:19:52