2018-10-10浅拷贝和深拷贝及函数概念和相关操作

2018-10-10  本文已影响0人  MW演员

1.拷贝

将变量中的值复制一份,产生新的数据,然后将新的数据对用的地址返回

2.浅拷贝

import copy
a1 = [1, 2]
a2 = {'b': 10}
list1 = [a1, a2]
浅拷贝
list2 = copy.copy(list1)
list2[0].append(100)
print(list2)
print(list1)
深拷贝
import copy
list3 = copy.deepcopy(list1)
list3[0].append(100)
print(list3)
# print(list2)
print(list1)

一、函数就是对实现某一特定功能的代码段的封装

1.函数的分类
2.声明函数

语法:def 函数名(参数列表)
                 函数体
def: pthon中声明函数的关键字
函数名:与变量一样,必须是标识符,不能是关键字,遵守PEP8的命名规范(所有字母小写,多个单词之间用下划线隔开),见名知义
(): 固定写法
冒号:固定写法
参数列表:又叫形参列表,参数1,参数2.....参数可有多个也可以没有
参数是用来从函数的外部给函数里面传值用的
函数体:就是实现特定功能的代码段

二、声明函数

写一个函数打印两个数的和
def two_num_sum(a, b):
    print(a + b)

two_num_sum(4, 6)

def print_star(n):
    print('*' * n)
求连续整数和
def sum_n(n):
    sum1 = 0
    for x in range(n + 1):
        sum1 += x
    print(sum1)

sum_n(100)

三、声明函数时不会执行函数体,只有被调用时才会被执行

1.函数调用

函数名(实参列表)
函数名:必须声明过得函数
():固定写法
实参列表:数据1,数据2,.....可以有多个或没有,用来给形参赋值的

四、格式

1.函数名(实参列表)
2.函数的调用的过程
五、位置参数和关键参数

1. 位置参数:在传值过程中,用按实参顺序 一一对应给形参赋值(一定要保证每个形参都必须有值)

2. 关键字参数:形参1 = 值1,形参2 = 值2,......

def func1(a, b, c):
    print(a, b, c)
# 位置参数
func1(10,20,30)
#关键参数
func1(c = 200, b = 100, a = 300)

3. 默认参数
函数声明时可以给参数设置默认值,但是有默认值的参数列表必须放在最后
注意:有默认值的形参可以不传参数

def func2(a, c, b = 0):
    print(id(a))
    print(a, b, c)
num = 100
print(id(num))
# func2(10,20)
func2(num, c = 200) # 位置参数和关键字参数混合使用

4. 不定长参数
参数个数不确定时,可以在形参前面加*号将形参变为元祖,用来接收多个参数
如果函数有多个参数,那么不定长参数要放在后面

# 计算多个数的和
def sum1(*args):
    sum2 = 0
    for x in args:
        sum2 += x

    print(sum2)
sum1(1, 2, 3)

五、函数返回值

1. 概念
就是函数调用表达式的值,就是return关键字后面的表达式的值
Python中所有的函数都有返回值,返回值默认是None(当没有遇到return时函数的返回值就是None)
2. 说明
函数调用表达式 : 就是调用函数的那个语句(函数名(实参列表))
return :关键字,只能在函数体中,用来返回返回值和结束函数
任何函数都有返回值(当没有遇到return时函数的返回值就是None)

def func1():
    print('hello')
i = func1()
print(i, type(i))

3. 将函数的返回值作为列表的元素

def func1():
    print('hello')
i = [func1(), 100]
print(i)

** 4. 函数执行过程中遇到return就直接结束,把return后面的的结果作为返回值**

a = [1, 2]

def add_yuansu(b):
    c = b[:]
    c.append(100)
    return c
print(a, add_yuansu(a))

注意:
函数返回值的确定:如果函数的功能会产生新的数据就将数据返回

# 计算一个数的阶乘
def jie_ceng(num):
    sum1 = 1
    for x in range(1, num + 1):
        sum1 *= x
    return sum1
a = jie_ceng(5)
print(a)
上一篇下一篇

猜你喜欢

热点阅读