Pythonデータサイエンスを学び、ゲームをプレイし、日本語を学び、プログラミングをすべて1つのパッケージで行います。
独学コース全体で使用されるデータは、「ThreeKingdoms」および「ThreeKingdomsWarriors」シリーズのゲームの内容です。
ブール型は、Pythonの組み込みデータ型の1つです。式の真偽を表すために使用されます。複雑で長いコードの場合、ブール値を使用して大幅に最適化および単純化できることが多く、コードの理解と書き直しが容易になります。
記事ディレクトリ
Pythonブール型
Pythonブール型には、 TrueとFalseの2つの可能性しかありません。
ブール型は、組み込みパラメーターを介して表示できます。
type(False)
<class 'bool'>
type(True)
<class 'bool'>
キーワードとしてのPythonブール値
ブール値を変数に割り当てることはできますが、値をTrueに割り当てることはできません。
var = True
var
True
Trueはキーワードであるため、値を割り当てることはできません。同じルールがFalseにも適用されます。
True = 5
File "<stdin>", line 1
SyntaxError: cannot assign to True
数値としてのPythonブール値
ブール値はPythonでは数値型として扱われ、算術演算をブール値に適用したり、数値と比較したりすることができます。
True == 1
True
False == 0
True
True + (False / True)
1.0
lines = """絶世の美女で、歌舞に優れていた。\n\r
司徒・王允のもとで実の娘同然に育てられる。
"""
line_list = lines.splitlines()
line_list
['絶世の美女で、歌舞に優れていた。', '', '司徒・王允のもとで実の娘同然に育てられる。']
"絶世の美女" in line_list[0]
True
"絶世の美女" in line_list[1]
False
0 + False + True
1
["絶世の美女" in line for line in line_list]
[True, False, False]
True + False + False # 等价于 1 + 0 + 0
1
len(line_list)
3
ブール演算子
Pythonブール値にはTrueまたはFalseの2つの可能なオプションしかないため、演算子は、入力の可能な各組み合わせに割り当てる結果に関して完全に指定できます。
入力のない演算子、TrueおよびFalseは、入力を受け入れないブール演算子として扱うことができます。演算子の1つは常にTrueを返し、もう1つは常にFalseを返します。
ブール値ではなく演算子。
A | Aではありません | 身元 | はい | いいえ |
---|---|---|---|---|
真 | 誤り | 真 | 真 | 誤り |
誤り | 真 | 誤り | 真 | 誤り |
ブール値と演算子
A | B | AとB |
---|---|---|
真 | 真 | 真 |
誤り | 真 | 誤り |
真 | 誤り | 誤り |
誤り | 誤り | 誤り |
ブール値または演算子
A | B | AまたはB |
---|---|---|
真 | 真 | 真 |
誤り | 真 | 真 |
真 | 誤り | 真 |
誤り | 誤り | 誤り |
比較演算子
演算子は、2つのオブジェクト間に関係があるかどうかをチェックします。比較演算子と呼ばれるこれらの演算子は、常にブール値を返します。
(==)に等しく、(!=)に等しくない。
# 数字的比较
1 == 1
True
1 == 1.0
True
1 == 2
False
1 <> 2
True
順次比較>、> =、<、<=。
# 字典无顺序,因此无法比较
{
1: 3} < {
2: 4}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'dict' and 'dict'
# 字符串和整数是分开排序,不可比较。
1 <= "1"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '<=' not supported between instances of 'int' and 'str'
# 常规操作
1 <= 1
True
1 < 1
False
2 > 3
False
2 >= 2
True
オブジェクトID演算子をチェックします。
x = []
y = []
x is x
True
x is not x
False
x is y
False
x is not y
True
メンバー演算子が含まれているかどうかを確認します。
# 数字操作
small_even = [2, 4]
1 in small_even
False
2 in small_even
True
10 in small_even
False
# 字符串操作
"三国志" in "三国時代の歴史書『三国志』"
True
"無双" in "三国時代の歴史書『三国志』"
False
チェーン比較演算子。
# 比较运算符可以形成链
1 < 2 < 3
True
1 < 2 and 2 < 3
True
1 < 3 < 2
False
1 < 3 and 3 < 2
False
1 < 2 < 1
False
1 == 1.0 < 0.5
False
1 == 1.0 == True
True
1 < 3 > 2
True
1 < 2 < 3 < 4 < 5
True
# 短路链评估
2 < "2"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'int' and 'str'
3 < 2 < "2"
False
# 比较链的短路评估可以防止其他异常
3 < 2 < (1//0)
False
演算子の混合と連鎖。
a = 0
a is a < 1
True
(a is a) < 1
False
a is (a < 1)
False
Pythonブールテスト
ブール値の最も重要な使用法は、ifステートメントです。判定結果がTrueの場合、ステートメントが実行されます。
1 == 1
True
if 1 == 1:
print("yes")
yes
1 == 2
False
if 1 == 2:
print("yes")
ブール値としてはありません。
bool(None)
False
ブール値としての数値。
# 非零整数都为真
bool(3), bool(-5), bool(0)
(True, True, False)
import math
[bool(x) for x in [0, 1.2, 0.5, math.inf, math.nan]]
[False, True, True, True, True]
ブール値としてのシーケンス。
# len(n) 结果为非0、非空都为真。
bool([1]), bool([])
(True, False)
bool((1,2)), bool(())
(True, False)
bool({
1,2,3}), bool(set())
(True, False)
bool({
1: 2}), bool({
})
(True, False)
bool("hello"), bool("")
(True, False)
bool(b"xyz"), bool(b"")
(True, False)
ブール値としての他のタイプ(def、class)。
# 自定义函数 def 默认为真
def func():
pass
bool(func)
True
# 自定义类 class 默认为真
class Dummy:
pass
bool(Dummy())
True
NumPy配列。
from numpy import array
x = array([0])
len(x)
1
bool(x)
False
演算子(and、or、not)と関数。
not 1
False
not 0
True
# 短路求值,返回真值
1 and 2
2
0 and 1
0
1 or 2
1
0 or 2
2
# all()检查其所有元素
all([1, 2, 3])
True
all([0, 1, 2])
False
# any()检查其所有元素
any([1, 0, 0])
True
any([False, 0, 0.0])
False