Skip to content

Commit eab06c2

Browse files
author
sky.sun
committed
init
1 parent d70aac1 commit eab06c2

18 files changed

+900
-944
lines changed

docs/guide/booleans.md

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# 布尔值
22

3-
在JavaScript中,我们使用`true``false`来表示布尔值,这是编程中最基础的逻辑概念。Python的布尔值概念相同,但有一些细节差异值得注意,特别是在类型转换和真值判断方面,Python提供了更加灵活和直观的处理方式
3+
在 JavaScript 中,我们使用`true``false`来表示布尔值,这是编程中最基础的逻辑概念。Python 的布尔值概念相同,但有一些细节差异值得注意,特别是在类型转换和真值判断方面,Python 提供了更加灵活和直观的处理方式
44

55
## 基本使用
66

7-
JavaScript中布尔值使用小写
7+
JavaScript 中布尔值使用小写
88

99
```javascript runner
1010
// JavaScript 布尔值
@@ -16,7 +16,7 @@ console.log(isComplete); // false
1616
console.log(typeof isActive); // "boolean"
1717
```
1818

19-
Python中布尔值必须首字母大写,这是Python的一个重要特点
19+
Python 中布尔值必须首字母大写,这是 Python 的一个重要特点
2020

2121
```python runner
2222
# Python 布尔值 - 注意大写
@@ -28,7 +28,7 @@ print(is_complete) # False
2828
print(type(is_active).__name__) # bool
2929
```
3030

31-
这个大写的要求源于Python的设计哲学`True``False`实际上是内置的常量对象,就像`None`一样。
31+
这个大写的要求源于 Python 的设计哲学`True``False`实际上是内置的常量对象,就像`None`一样。
3232

3333
## 创建
3434

@@ -49,9 +49,9 @@ print(f"bool(0): {result4}")
4949

5050
## 真值判断
5151

52-
这是Python布尔值最有趣的部分。JavaScript有复杂的真值转换规则,而Python的规则更加直观和一致
52+
这是 Python 布尔值最有趣的部分。JavaScript 有复杂的真值转换规则,而 Python 的规则更加直观和一致
5353

54-
### JavaScript的真值转换
54+
### JavaScript 的真值转换
5555

5656
```javascript runner
5757
// JavaScript 的真值转换(有时令人困惑)
@@ -63,9 +63,9 @@ console.log(Boolean("0")); // true (字符串"0"是真值)
6363
console.log(Boolean("false")); // true (字符串"false"也是真值)
6464
```
6565

66-
### Python的真值转换
66+
### Python 的真值转换
6767

68-
Python的规则更符合直觉:空的容器、零、`None`都被认为是假值,非空的容器和非零数字都是真值。
68+
Python 的规则更符合直觉:空的容器、零、`None`都被认为是假值,非空的容器和非零数字都是真值。
6969

7070
```python runner
7171
# Python 的真值转换 - 更直观
@@ -80,16 +80,16 @@ print(f"bool('hello'): {bool('hello')}") # True (非空字符串)
8080
print(f"bool([1]): {bool([1])}") # True (非空列表)
8181
print(f"bool({{'a': 1}}): {bool({'a': 1})}") # True (非空字典)
8282

83-
# 特别注意:和JavaScript相同的"陷阱"情况
83+
# 特别注意:和 JavaScript 相同的"陷阱"情况
8484
print(f"bool('0'): {bool('0')}") # True (字符串"0"是真值!)
8585
print(f"bool('false'): {bool('false')}") # True (字符串"false"也是真值!)
8686
```
8787

88-
这里需要特别注意:Python和JavaScript在处理字符串`"0"``"false"`时是相同的——它们都是真值!因为它们是非空字符串。这是一个常见陷阱。
88+
这里需要特别注意:Python 和 JavaScript 在处理字符串`"0"``"false"`时是相同的——它们都是真值!因为它们是非空字符串。这是一个常见陷阱。
8989

9090
### 假值的完整列表
9191

92-
Python中被认为是假值的情况
92+
Python 中被认为是假值的情况
9393

9494
```python runner
9595
# Python 中所有的假值情况
@@ -115,7 +115,7 @@ for value in false_values:
115115

116116
## 比较运算符
117117

118-
JavaScript和Python的比较运算符基本相同
118+
JavaScript 和 Python 的比较运算符基本相同
119119

120120
```python runner
121121
# 基本比较运算符
@@ -132,40 +132,40 @@ print(f"{a} <= {b}: {a <= b}") # False (小于等于)
132132

133133
### 类型比较的差异
134134

135-
JavaScript允许不同类型之间的比较,会进行隐式转换:
135+
JavaScript 允许不同类型之间的比较,会进行隐式转换:
136136

137137
```javascript runner
138138
// JavaScript 的隐式类型转换
139-
console.log(5 == "5"); // true (字符串"5"转为数字5)
139+
console.log(5 == "5"); // true (字符串"5"转为数字 5)
140140
console.log(5 === "5"); // false (严格相等,不转换类型)
141141
console.log(true == 1); // true (布尔值转为数字)
142142
console.log(false == 0); // true
143143
```
144144

145-
Python的比较更加严格,不会进行隐式转换:
145+
Python 的比较更加严格,不会进行隐式转换:
146146

147147
```python runner
148148
# Python 的严格比较
149-
print(f"5 == '5': {5 == '5'}") # False (不同类型直接返回False)
149+
print(f"5 == '5': {5 == '5'}") # False (不同类型直接返回 False)
150150
print(f"True == 1: {True == 1}") # True (但布尔值是整数的子类)
151151
print(f"False == 0: {False == 0}") # True
152152
print(f"True is 1: {True is 1}") # False (is 检查身份,不是值)
153153

154154
# 演示布尔值与数字的特殊关系
155-
print(f"True + 5: {True + 5}") # 6 (True在算术运算中等于1)
156-
print(f"False + 5: {False + 5}") # 5 (False在算术运算中等于0)
155+
print(f"True + 5: {True + 5}") # 6 (True 在算术运算中等于 1)
156+
print(f"False + 5: {False + 5}") # 5 (False 在算术运算中等于 0)
157157
```
158158

159-
这里有个有趣的事实:在Python中`bool`类型实际上是`int`类型的子类,所以`True``False`在数学运算中分别等于 1 和 0。
159+
这里有个有趣的事实:在 Python 中`bool`类型实际上是`int`类型的子类,所以`True``False`在数学运算中分别等于 1 和 0。
160160

161-
### Python没有===操作符
161+
### Python 没有===操作符
162162

163-
前端开发者经常问:Python有没有类似JavaScript`===`的严格相等操作符?
163+
前端开发者经常问:Python 有没有类似 JavaScript`===`的严格相等操作符?
164164

165-
**答案是不需要,因为Python的`==`本身就是严格的,不会进行类型转换。**
165+
**答案是不需要,因为 Python 的`==`本身就是严格的,不会进行类型转换。**
166166

167167
```python runner
168-
# Python的==默认就是严格比较
168+
# Python 的==默认就是严格比较
169169
print(f"5 == '5': {5 == '5'}") # False (不同类型)
170170
print(f"5 == 5: {5 == 5}") # True (相同类型相同值)
171171

@@ -178,7 +178,7 @@ print(f"a is b: {a is b}") # False (不同对象)
178178

179179
## 逻辑运算符
180180

181-
JavaScript使用`&&``||``!`而Python使用更接近自然语言的关键字
181+
JavaScript 使用`&&``||``!`而 Python 使用更接近自然语言的关键字
182182

183183
```javascript runner
184184
// JavaScript 逻辑运算符
@@ -202,7 +202,7 @@ print(f"not {a}: {not a}") # False (非运算)
202202

203203
### 短路求值
204204

205-
两种语言都支持短路求值,但Python的行为更加一致
205+
两种语言都支持短路求值,但 Python 的行为更加一致
206206

207207
```python runner
208208
# 短路求值演示
@@ -225,7 +225,7 @@ print(f"结果: {result2}")
225225

226226
### 返回值的差异
227227

228-
JavaScript的逻辑运算符返回参与运算的值之一,而Python也有类似行为
228+
JavaScript 的逻辑运算符返回参与运算的值之一,而 Python 也有类似行为
229229

230230
```javascript runner
231231
// JavaScript 逻辑运算符返回值
@@ -247,7 +247,7 @@ print(f"显示名称: {display_name}")
247247

248248
## 链式比较
249249

250-
Python支持数学式的链式比较,这是JavaScript没有的特性
250+
Python 支持数学式的链式比较,这是 JavaScript 没有的特性
251251

252252
```python runner
253253
# Python 的链式比较
@@ -288,7 +288,7 @@ test_values = [
288288
[], # 空列表
289289
{"key": "value"}, # 非空字典
290290
{}, # 空字典
291-
None, # None值
291+
None, # None 值
292292
]
293293

294294
print("各种值的布尔转换:")
@@ -315,13 +315,13 @@ print(f"str(False): '{str(false_val)}'") # 'False'
315315

316316
## 小结
317317

318-
Python的布尔值系统虽然看起来简单,但提供了强大而直观的逻辑处理能力:
318+
Python 的布尔值系统虽然看起来简单,但提供了强大而直观的逻辑处理能力:
319319

320-
1. **语法差异**Python使用大写的`True`/`False`,逻辑运算符使用英文单词`and`/`or`/`not`
321-
2. **真值判断**Python的真值转换规则更直观,空容器、零值、`None`都是假值
320+
1. **语法差异**Python 使用大写的`True`/`False`,逻辑运算符使用英文单词`and`/`or`/`not`
321+
2. **真值判断**Python 的真值转换规则更直观,空容器、零值、`None`都是假值
322322
3. **类型关系**`bool``int`的子类,`True`/`False`在数学运算中等于 1/0
323323
4. **比较运算**:支持数学风格的链式比较,如`18 <= age < 65`
324324
5. **短路求值**:逻辑运算符支持短路求值和返回参与运算的值
325325
6. **实际应用**:在条件判断、表单验证、特性开关、状态管理等场景中广泛使用
326326

327-
掌握布尔值的这些特性,能让你写出更简洁、更易读的Python代码。特别是Python的真值判断规则和链式比较语法,能让条件逻辑的表达更加自然和直观。
327+
掌握布尔值的这些特性,能让你写出更简洁、更易读的 Python 代码。特别是 Python 的真值判断规则和链式比较语法,能让条件逻辑的表达更加自然和直观。

0 commit comments

Comments
 (0)