Python裡面的布林運算和迴圈返回

2021-10-07 01:36:56 字數 4692 閱讀 7462

今天是學習python的第三天,每天跟著我學習一小時

先來給你介紹一下布林值。

在計算機的邏輯判斷中,只有兩種結果:真(true)和假(false),計算真假的過程被叫做【布林運算】。

【true】和【false】也被叫做【布林值】,另外【true】和【false】也是python中的關鍵字(首字母大寫),在命名變數時注意不要混淆了。

那麼在python中有哪些【布林值】呢?

在python當中所有的資料都是自帶【布林值】的。

這是python官方提供了布林(bool) 型別來表示真(對)或假(錯)。

我們可以使用【bool()】函式來確定乙個資料的【布林值】。

print

('非0整數的布林值:'

)print

(bool(1

))print

('0的布林值:'

)print

(bool(0

))print

('空的字串的布林值:'

)print

(bool(''

))print

('非空字串的布林值:'

)print

(bool

('abc123'))

print

('空列表的布林值:'

)print

(bool([

]))print

('非空列表的布林值:'

)print

(bool([

1,2,

3]))

我們可以看出【0、』』、】的【布林值】為【false】,【1、『abc123』、[1, 2, 3]】的布林值為【true】。

在python中【布林值】為【false】的資料有:0、空的字串、空的列表或其他序列(例:空的字典)、none、false。

none表示『空』,就是沒有任何東西的意思,好比乙個空盒子,它的【布林值】為【false】。

除此之外所有資料的【布林值】都為【true】。

print

('2 > 1的布林值:'

)print(2

>1)

print

('1 > 2的布林值:'

)print(1

>2)

print

("'喵醬' == '喵醬'的布林值:"

)print

('喵醬'

=='喵醬'

)print

("'喵醬' == '小咖'的布林值:"

)print

('喵醬'

=='小咖'

)

我們都知道【2 > 1】肯定是正確的,所以輸出為【true】,反之【2 < 1】的輸出為【false】。

而【『喵醬』 == 『喵醬』】肯定是正確的,【『喵醬』 == 『小咖』】肯定是錯誤的,所以輸出分別為【true】和【false】。

?結論:比較運算返回的結果其實就是【布林值】。

其實【if語句】和【while迴圈】都需要乙個判斷條件,只有條件為【true】時,才會執行相應的**內容。

python中的邏輯運算子:and(與)、or(或)、not(非)。

?1、and(與):與運算子,並且的意思,兩者都為【true】時結果才為【true】。

# and運算,兩者都為true

print(1

and2

)print(2

and1

)# and運算,兩者都為false

print

(false

and0

)print(0

andfalse

)# and運算,有乙個為false

print(0

and2

)print(2

and0

)

可以看到輸出結果為:2、1、false、0、0、0

你可能會有疑問,為什麼執行的結果不是【true】或者【false】呢?

其實在根本上並沒有違背and邏輯運算的原則。前兩種的輸出的【布林值】其實就是【true】,而後四種的【布林值】其實就是【false】。

and運算的原則:

【and】前後兩者都為【true】時:輸出為後者,布林值為【true】。

【and】前後兩者都為【false】時:輸出為前者,布林值為【false】。

其中有乙個為【false】時:輸出值為【false】的資料,布林值為【false】。

所以【and】運算在兩者都為【true】時輸出才為【true】,只要有乙個不為【true】,輸出就為【false】。

?2、or(或):或運算子,或者的意思,兩者其中有乙個為【true】時結果就為【true】。

# or運算,兩者都為true

print(1

or2)print(2

or1)# or運算,兩者都為false

print

(falseor0

)print(0

o***lse

)# or運算,有乙個為false

print(0

or2)print(2

or0)

可以看到這次的輸出結果為:1、2、0、false、2、2

【or】運算只有當前後兩者的【布林值】都為【false】時輸出的【布林值】才為【false】。

or運算的原則:

【or】前後兩者都為【true】時:輸出為前者,布林值為【true】。

【or】前後兩者都為【false】時:輸出為後者,布林值為【false】。

其中有乙個為【true】時:輸出值為【true】的資料,布林值為【true】。

所以【or】運算只有在兩者都為【false】時才會輸出【false】,只要有乙個為【true】,輸出就為【true】。

?3、not(非):非運算子,取相反值的意思,將【true】輸出為【false】,【false】輸出為【true】。

【not true】就是【false】,【not false】就是【true】。取與原值相反的【布林值】。

# not運算,值為true 

print

(not1)

# not運算,值為false

print

(not

0)

輸出結果為:false、true

not運算的原則:

輸出與原值相反的【布林值】,not(非)運算的輸出結果只能是【true】或【false】。

在乙個判斷語句中,當需要不滿足某個條件就執行相應的**時,可以使用【not】。

我們可以在迴圈中使用【if判斷】給定條件,當滿足某個條件時使用【break】結束迴圈。

# while true 語句會一直迴圈下去

num =

0while

true

:print

(num)

num = num +

1# 當num值為10時使用break結束迴圈

if num ==10:

break

【continue】語句同樣會使迴圈結束掉,但不是真正的『結束』,而是會從當前【continue】的位置跳回迴圈開始的地方,進行下一次迴圈。

# 『時空躍遷』系統

message =

input

('是否啟動『時空躍遷』(y/n):'

)while message ==

'y':

print

('您需要輸入四個id密碼!'

) id =

input

('請輸入第乙個id:'

)if id !=

'5858'

:print

('驗證失敗,請重新輸入!'

)continue

else

: id =

input

('第乙個id驗證通過!請輸入第二個id:'

)if id !=

'2727'

:print

('驗證失敗,請重新輸入!'

)continue

else

: id =

input

('第二個id驗證通過!請輸入第三個id:'

)if id !=

'3636'

:print

('驗證失敗,請重新輸入!'

)

第六關 迴圈語句練習題

購物車程式需求:

啟動程式,讓使用者輸入工資,然後列印商品列表;

允許使用者根據商品編號購買商品;

使用者輸入商品列表後檢測餘額是否足夠,夠就直接扣款,不夠就提醒;

使用者可以一直購買商品,也可以直接退出,退出後列印已購買商品和餘額;

解題思路:

①:先定義好商品列表,通過巢狀的方式

②:通過input語句獲取工資收入

③:定義while迴圈,列印商品列表

④:根據使用者的輸入判斷購買的商品或者是退出

⑤:在進行商品購買時,需要判斷工資餘額是否大於商品**

⑥:如果餘額大於商品**,把該商品加入購物車,購物車用乙個新的列表表示

⑦:退出時,結算購物車中的商品,列印最後的工資

python 布林運算

給定乙個布林表示式和乙個期望的布林結果 result,布林表示式由 0 false 1 true and or 和 xor 符號組成。實現乙個函式,算出有幾種可使該表示式得出 result 值的括號方法。示例 1 輸入 s 1 0 0 1 result 0輸出 2解釋 兩種可能的括號方法是1 0 0...

python布林系列 python 布林運算

python學習手冊 讀書筆記 真值測試 在python中 任何非零數字或非空物件都為真 數字零 空物件以及特殊物件none都被認作是假 比較和相等測試會遞迴地應用在資料結構中 比較和相等測試會返回true或false 1和0的特殊版本 布林and和or運算子會返回真或假的操作物件 python中有...

Python布林運算中0的問題

看到一些書裡面寫的,python中 and 和 or 的定義。比如老齊的那本書寫的是 但是對0有點問題,比如 false or 0 按上面的程式走下來,返回bool 0 應該是false,但實際返回是 0,書中偽 有問題,但是解釋沒問題,如果a的布林值是false,那麼返回的是b的值 a or b ...