@@ -149,6 +149,8 @@ python最先的格式化字符串方法是%,但他的致命缺点是支持的
149
149
* [字符串处理支持多种操作](https://www.runoob.com/python3/python3-string.html)
150
150
* round ()保留几位小数 返回浮点数x的四舍五入值。
151
151
* eval ()神奇公式: 用来执行一个字符串表达式,并返回表达式的值。
152
+
153
+
152
154
# # OOP
153
155
# ## *args and **kwargs
154
156
* 当你不确定你的函数里将要传递多少参数时你可以用* args.例如,它可以传递任意数量的参数
@@ -172,7 +174,9 @@ python最先的格式化字符串方法是%,但他的致命缺点是支持的
172
174
cabbage = vegetable
173
175
apple = fruit
174
176
` ` `
175
- 未完待续
177
+ 正如前面所说的,args类型是一个tuple,而kwargs则是一个字典dict,并且args只能位于kwargs的前面。
178
+
179
+
176
180
* 正则表达式
177
181
* ` re.match(pattern, string, flags=0)` 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match ()就返回None
178
182
* pattern:匹配的正则表达式
@@ -191,4 +195,54 @@ python最先的格式化字符串方法是%,但他的致命缺点是支持的
191
195
print(re.search(' www' , ' www.runoob.com' ).span()) # 在起始位置匹配
192
196
print(re.search(' com' , ' www.runoob.com' ).span()) # 不在起始位置匹配
193
197
` ` `
194
- * 未完待续……
198
+ * 未完待续……在 Python 中,参数通常是通过** 对象引用** 传递的。但理解参数传递时,需要区分** 可变类型** 和** 不可变类型** 。
199
+
200
+ # # 基本数据类型(不可变类型)
201
+ - ** 例子:** ` int` (整数), ` float` (浮点数), ` bool` (布尔值), ` str` (字符串), ` tuple` (元组)
202
+ - ** 行为:** 当你将不可变的数据类型(如整数、浮点数或布尔值)作为参数传递给函数时,实际上传递的是该对象引用的** 副本** 。这意味着函数不能直接修改原始对象。在函数内部对参数进行的修改,只会影响局部变量的副本,** 不会改变函数外部的原始对象** 。
203
+
204
+ ** 例子:**
205
+ ` ` ` python
206
+ def modify_value(x):
207
+ x = 10
208
+ print(" 函数内部:" , x)
209
+
210
+ a = 5
211
+ modify_value(a)
212
+ print(" 函数外部:" , a)
213
+ ` ` `
214
+
215
+ ** 输出:**
216
+ ` ` `
217
+ 函数内部: 10
218
+ 函数外部: 5
219
+ ` ` `
220
+
221
+ 在这个例子中,` a` 在函数外部的值依然是 ` 5` ,因为在函数内部修改的只是局部变量 ` x` 的副本。
222
+
223
+ # ## 可变数据类型
224
+ - ** 例子:** ` list` (列表), ` dict` (字典), ` set` (集合)
225
+ - ** 行为:** 当你将可变数据类型(如列表或字典)作为参数传递时,传递的是对原始对象的引用。** 因此,在函数内部修改对象时,外部的原始对象也会被修改** 。
226
+
227
+ ** 例子:**
228
+ ` ` ` python
229
+ def modify_list(lst):
230
+ lst.append(4)
231
+ print(" 函数内部:" , lst)
232
+
233
+ my_list = [1, 2, 3]
234
+ modify_list(my_list)
235
+ print(" 函数外部:" , my_list)
236
+ ` ` `
237
+
238
+ ** 输出:**
239
+ ` ` `
240
+ 函数内部: [1, 2, 3, 4]
241
+ 函数外部: [1, 2, 3, 4]
242
+ ` ` `
243
+
244
+ 在这个例子中,` my_list` 在函数外部也发生了变化,因为函数内部的 ` lst` 和外部的 ` my_list` 指向同一个对象。
245
+
246
+ # ## 总结
247
+ - ** 不可变类型:** 传递的是值(引用的副本),在函数内部的修改** 不会** 影响外部的原始对象。
248
+ - ** 可变类型:** 传递的是引用,函数内部对对象的修改** 会** 影响外部的原始对象。
0 commit comments