python爬梯子day2

函数(二)

1.1函数参数

<1>. 缺省参数
定义:`

调用函数时,缺省参数的值如果没有传入,则取默认值`

def printinfo(name, age=35):
   # 打印任何传入的字符串
   print("name: %s" % name)
   print("age %d" % age)

# 调用printinfo函数
printinfo(name="miki") 
 # 在函数执行过程中 age去默认值35
printinfo(age=9 ,name="miki")

<2>. 不定长参数
定义:

有时可能需要一个函数能处理比当初声明时更多的参数, 这些参数叫做不定长参数,声明时不会命名。

def functionname([formal_args,] *args, **kwargs):
   """函数_文档字符串"""
   function_suite
   return [expression]

<3>. 缺省参数在*args后面

def sum_nums_3(a, *args, b=22, c=33, **kwargs):
    print(a)
    print(b)
    print(c)
    print(args)
    print(kwargs)

sum_nums_3(100, 200, 300, 400, 500, 600, 700, b=1, c=2, mm=800, nn=900)

1.2 拆包、交换变量的值

<1>拆包

使用不同变量对容器类型中的每一个数据进行保存,这种操作称为拆包
容器类型: 字符串,range, 列表,元组,字典,集合

#利用拆包获取字符串中的每一个数据
my_str = "abc"
my_list = [2,3]
my_dict = {"name":"张飞","age":20}

#这里对字符串拆包,对每一个数据进行保存
v1,v2,v3 = my_str
#对字典进行拆包,注意点:默认是对key进行拆包
data1,data2 = my_dict.values()
#对range进行拆包
value1,value2 = range(1,5,2)# =>[1, 3]
#对函数的返回值进行拆包,获取每一个数据
v1,v2,v3 = return_value()
#对列表
data1,data2 =my_list

1.3 引用(一)

引用就是使用变量保存了数据在内存中的一个地址
num = 1 # 提示:变量本质上存储的是数据在内存中的地址

# 提示:id函数获取的是一个10进制的内存地址
num_id =id(num)
print("num:",num,"内存地址为",num_id)

1.3 可变、不可变类型

所谓可变类型与不可变类型是指:数据能够直接进行修改,如果能直接修改那么就是可变,否则是不可变

1.可变类型(修改数据,内存地址不会发生变化)有: 列表、字典、集合
2.不可变类型(修改数据,内存地址必定发生变化)有: 数字、字符串、元组

1.4 引用(二)

引用当做实参

def test1(b):  # 变量b一定是一个局部变量,就看它指向的是谁,可变还是不可变
    b += b  
    # b = b+b
    print(b)

# a = [11, 22]
a = 100
test1(a)
print(a)
#分别使用可变类型和不可变类型,测试 += 和 =+ 的行为,
#根据引用变化的方式可以分析出不同结果的底层原理

总结: Python中函数参数是传递引用,也就是数据的内存地址
对于不可变类型,修改形参,不影响实参
对于可变类型来说,修改形参,会影响实参

1.5函数使用的注意事项

1. 自定义函数

函数类型:

无参数、无返回值

def 函数名():
    语句

无参数、有返回值

def 函数名():
    语句
    return 需要返回的数值
#函数中,可以有多个return语句,
#但是只要执行到一个return语句,那么就意味着这个函数的调用完成

有参数、无返回值

def 函数名(形参列表):
    语句
#在调用函数时,如果需要把一些数据一起传递过去,被调用函数就需要用参数来接收

有参数、有返回值

def 函数名(形参列表):
    语句
    return 需要返回的数值
2.调用函数
函数名([实参列表])

调用时,实参的个数和先后顺序应该和定义函数中要求的一致
如果调用的函数有返回值,那么就可以用一个变量来进行保存这个值

3.作用域

在一个函数中定义的变量,只能在本函数中用(局部变量) a=100

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值