Pythonの基本によって習得する必要があるブール値を使用してコードを最適化する独創的な方法

Pythonデータサイエンスを学び、ゲームをプレイし、日本語を学び、プログラミングをすべて1つのパッケージで行います。

独学コース全体で使用されるデータは、「ThreeKingdoms」および「ThreeKingdomsWarriors」シリーズのゲームの内容です。

ブール型は、Pythonの組み込みデータ型の1つです。式の真偽を表すために使用されます。複雑で長いコードの場合、ブール値を使用して大幅に最適化および単純化できることが多く、コードの理解と書き直しが容易になります。
ここに画像の説明を挿入

Pythonブール型

Pythonブール型には、 TrueFalseの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

おすすめ

転載: blog.csdn.net/qq_20288327/article/details/124389936