网站建设注意什么,怎么建立自己的微信商城,wordpress转义,做网站流程函数1 #xff08;1#xff09;定义#xff1a; def 函数名#xff08;参数列表#xff09;函数体 #xff08;2#xff09;参数传递#xff1a; 在python中#xff0c;一切都是对象#xff0c;类型也属于对象#xff0c;变量是没有类型的。 a [1,2,3] a he…函数1 1定义 def 函数名参数列表函数体 2参数传递 在python中一切都是对象类型也属于对象变量是没有类型的。 a [1,2,3] a helloworld 以上代码中[1,2,3]是list类型helloworld是string类型而变量a是没有类型的它仅仅是一个对象的引用一个指针可以是指向list类型对象也可以指向string类型对象。 可更改mutable和不可更改immutable对象 在python中stringtuplesnumbers是不可更改对象而listdictionary等是可修改对象。 ①不可变类型变量赋值a 5后再赋值a 10,这里实际是新生成一个int值对象10再让a指向它而5被丢弃不是改变了a的值相当于新生成了a. ②可变类型变量赋值list [1,2,3,4]后再赋值list[2] 5则是将列表list的第三个元素值更改本身没有动只是内部的一部分值被修改了。 python函数的参数传递 ①不可变类型类似于值传递如 整数number、字符串string、元组tuple。如funa传递的只是a的值没有影响a对象本身。 比如在 funa内部修改 a 的值只是修改另一个复制的对象不会影响 a 本身。 1 def change(a, b):2 传递不可变对象交换两个数的值3 c a4 a b5 b c6 7 x 28 y 39
10 change(x, y)
11
12 print(x, y) 输出结果 2 3 可以发现将x,y的值传入change函数进行交换后输出x,y的值还是原来的值这就是不可变类型传递。 ②可变类型 类似于引用传递如 列表list字典dict。如 funlist则是将 list 真正的传过去修改后fun外部的list也会受影响。 1 def alter_list(list):
2 传递可变对象修改列表的值
3 list[0] 3
4
5 list1 [1, 2, 3, 4, 5]
6 alter_list(list1)
7 print(list1) 输出结果 [3, 2, 3, 4, 5] 可以发现list1中的值发生了改变同样的写法上面的例子中的值没有改变而下面的值却改变这就是因为不可变类型和可变类型的参数传递。 注意python 中一切都是对象严格意义我们不能说值传递还是引用传递我们应该说传不可变对象和传可变对象。 3参数 必须参数位置参数关键字参数默认参数不定长参数。 ①必须参数 调用函数时必须传入一个参数。 1 def func(a):
2 print(a)
3
4 func() # 没有参数会报错 ②位置参数在传递参数时必须与形参的顺序对应。 1 def func(a, b):
2 print(a%s%a)
3 print(b%s%b)
4
5 func(2, 3)
6 func(3, 2) ③关键字参数使用关键字参数允许函数调用时参数的顺序与声明时不一致因为 Python 解释器能够用参数名匹配参数值。 1 def func(a, b):
2 print(a%s%a)
3 print(b%s%b)
4
5 func(a2, b3)
6 func(b3, a2) ④默认参数调用函数时如果没有传递参数则会使用默认参数。 1 def func(a, b3):
2 print(a%s%a)
3 print(b%s%b)
4
5 func(2) ⑤不定长参数 def 函数名(形参1*形参2) 加了星号*的参数会以元组tuple的形式导入存放所有未命名的变量参数。 def 函数名(形参1**形参2) 加了两个星号**的参数会以字典的形式导入。 1 def func1(a, *b):2 print(a)3 print(b)4 5 func1(3, 4, 5, a, [1, 2, 3])6 7 def func2(a, **b):8 print(a)9 print(b)
10
11 func2(3, c4, d5) # 因为**要以字典的形式存储而字典需要key值和value值所以传参的时候要用这种方式 输出结果 3
(4, 5, a, [1, 2, 3])
3
{c: 4, d: 5} 转载于:https://www.cnblogs.com/zuoxide/p/10534307.html