Python 函数以及参数传递

# ## 函数简介(function)
#     - 函数也是一个对象
#     - 对象是内存中专门用来存储数据的一块区域
#     - 函数可以用来保存一些可执行的代码,并且可以在需要时,对这些语句进行多次的调用
#     - 创建函数:
#         def 函数名([形参1,形参2,...形参n]) :
#             代码块
#         - 函数名必须要符号标识符的规范
#             (可以包含字母、数字、下划线、但是不能以数字开头)
#     - 函数中保存的代码不会立即执行,需要调用函数代码才会执行
#     - 调用函数:
#         函数对象()
#     - 定义函数一般都是要实现某种功能的





# ## 函数的参数
#     - 在定义函数时,可以在函数名后的()中定义数量不等的形参,
#         多个形参之间使用,隔开
#     - 形参(形式参数),定义形参就相当于在函数内部声明了变量,但是并不赋值
#     - 实参(实际参数)
#         - 如果函数定义时,指定了形参,那么在调用函数时也必须传递实参,
#             实参将会赋值给对应的形参,简单来说,有几个形参就得传几个实参




# 1.定义函数时指定形参
def fn2(a , b) :
    # print('a =',a)
    # print('b =',b)
    print(a,"+",b,"=",a + b)
# 调用函数时,来传递实参
fn2(10,20)
fn2(123,456)




# 2.定义一个函数
# 定义形参时,可以为形参指定默认值
# 指定了默认值以后,如果用户传递了参数则默认值没有任何作用
#   如果用户没有传递,则默认值就会生效
def fn(a = 5 , b = 10 , c = 20):
    print('a =',a)
    print('b =',b)
    print('c =',c)
fn(1 , 2 , 3)
fn(1 , 2)
fn()




# 3.实参的传递方式
# 位置参数
# 位置参数就是将对应位置的实参复制给对应位置的形参
# 第一个实参赋值给第一个形参,第二个实参赋值给第二个形参 。。。
# fn(1 , 2 , 3)

# 关键字参数
# 关键字参数,可以不按照形参定义的顺序去传递,而直接根据参数名去传递参数
# fn(b=1 , c=2 , a=3)
# print('hello' , end='')
# 位置参数和关键字参数可以混合使用
# 混合使用关键字和位置参数时,必须将位置参数写到前面
# fn(1,c=30)

def fn2(a):
    print('a =',a)



# 4.函数在调用时,解析器不会检查实参的类型
# 实参可以传递任意类型的对象
b = 123
b = True
b = 'hello'
b = None
b = [1,2,3]

# fn2(b)    
fn2(fn)

def fn3(a , b):
    print(a+b)

# fn3(123,"456")

def fn4(a):
    # 在函数中对形参进行重新赋值,不会影响其他的变量
    # a = 20
    # a是一个列表,尝试修改列表中的元素
    # 如果形参执行的是一个对象,当我们通过形参去修改对象时
    #   会影响到所有指向该对象的变量
    a[0] = 30
    print('a =',a,id(a))

c = 10   
c = [1,2,3]

# fn4(c)

# 如果不想对象被影响,可以用以下方法
fn4(c.copy())
fn4(c[:])
print('c =',c,id(c))

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值