課程
/后端開發
/Python
/初識Python
知識點里面說的是‘a=T’or 'a=F',得‘a=T’,可是老師明明說的是?在計算?a or b?時,如果 a 是 False,則整個計算結果必定取決于 b,因此返回 b?!產=T‘or和'a=F'難道都不是False嗎?
2015-12-20
源自:初識Python 3-9
正在回答
a = 'python'
print 'hello,', a or 'world'
b = ''
print 'hello,', b or 'world'
看到樓主代碼如上, 在編程語言中經常有一種概念,叫做‘最短路徑’。
以 Python中的 or 語句來說,如果or前面為True,則直接返回or前面的值,如果or前面為False 則直接返回or后面的值。?
同時Python還有一個特性就是 bool值的隱性轉換,雖然int 和str是不能隱形轉換的(比如:a=1 ?b='2' ?c=a+b ?這樣的語句是會報TypeError的)
但是其他數據類型往bool值轉換時卻支持隱形轉化,所以 樓主代碼中 a or 'world' ,因為a 被賦值為‘python’。這里就會做隱性的bool轉換(就字符串類型而言,空字符轉=False, 非空字符串=True),在根據‘最短路徑’原則:or前面為True,則直接返回前面的值,所以 a or 'world' 就是 'python' 了。下面關于b的 同理,我就不羅嗦了。?
yljhaha 提問者
我們所做的這題是根據老師所講的最短路徑來求的,但是例題那個是根據這個“Python把0、空字符串''和None看成?False,其他數值和非空字符串都看成?True”,‘a=T’和‘a=F’都是字符串,值為真,所以a=T
這里'a=T'和'a=F'只是一個字符串,但他們不是空字符串,所以是真值,True
記住在用到or時,法則是有一真則為真且返回真。老師說的在計算a or b時,a是假此時肯定要看b是真還是假啊,當同為假時就返回后一個值也就是b的值
舉報
學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-12-20
a = 'python'
print 'hello,', a or 'world'
b = ''
print 'hello,', b or 'world'
看到樓主代碼如上, 在編程語言中經常有一種概念,叫做‘最短路徑’。
以 Python中的 or 語句來說,如果or前面為True,則直接返回or前面的值,如果or前面為False 則直接返回or后面的值。?
同時Python還有一個特性就是 bool值的隱性轉換,雖然int 和str是不能隱形轉換的(比如:a=1 ?b='2' ?c=a+b ?這樣的語句是會報TypeError的)
但是其他數據類型往bool值轉換時卻支持隱形轉化,所以 樓主代碼中 a or 'world' ,因為a 被賦值為‘python’。這里就會做隱性的bool轉換(就字符串類型而言,空字符轉=False, 非空字符串=True),在根據‘最短路徑’原則:or前面為True,則直接返回前面的值,所以 a or 'world' 就是 'python' 了。下面關于b的 同理,我就不羅嗦了。?
2016-02-15
我們所做的這題是根據老師所講的最短路徑來求的,但是例題那個是根據這個“Python把0、空字符串''和None看成?False,其他數值和非空字符串都看成?True”,‘a=T’和‘a=F’都是字符串,值為真,所以a=T
2015-12-25
這里'a=T'和'a=F'只是一個字符串,但他們不是空字符串,所以是真值,True
2015-12-20
記住在用到or時,法則是有一真則為真且返回真。老師說的在計算a or b時,a是假此時肯定要看b是真還是假啊,當同為假時就返回后一個值也就是b的值