关于python基础

参数

主要是分为必选参数、默认参数、可选参数以及关键字可选参数

必选参数

就是普通的传参

def hanshu(canshu):
  print(canshu)

默认参数

就是给可选参数传一个默认值;如果参数中有默认参数,那顺序一定是放在最后面的

#错误例子
def hanshu(a=1,b):
#正确例子
def hanshu(a,b=1):

可选参数

*args可选参数是在定义一个新的对象时,返回出来是一个元组(我理解的时候调用参数时hanshu(1,2,3)也是传入了一个参数)

def hanshu(*args):
  print(args)
  print(type(args))
hanshu(1,2,3)
#结果返回
(1,2,3)
<class tuple>

关键字可选参数

**kwargs关键字可选参数是在定义一个新的对象时,要传入一个字典,或者字典中的key:vlue;当在函数内部直接打印的话,需要在字典的形参名前加两个星号

def hanshu(**kwargs):
  print(**kwargs)
  print(type(kwargs))
hanshu("name":"zhangsan","age":1)

如果一个函数中是def hanshu(*args,**kwargs):可选参数一定要在关键字可选参数前面;但是传参时不用分清楚顺序,python会自动识别

局部变量和全局变量

这两个是啥意思,就是字面意思
如果一个函数中的局部变量和全局变量的变量名是一样的,当调用函数时,会优先采用局部变量;可以理解为强龙压不过地头蛇

name='zhangsan'
def hanshu():
  name='lisi'
  return name
print(hanshu())
##结果
lisi

如果说想要在函数中引用全局变量需要加入global关键字

name='zhangsan'
def hanshu():
  global name
  return name
print(hanshu())
##结果
zhangsan

如果想要在函数中修改全局变量

name='zhangsan'
def hanshu():
  global name
  name = 'lisi'
print(hanshu())
print(name)
##结果
lisi
lisi

值传递和引用传递

python有值传递也有引用传递;对于不可变对象(字符串、元组、整数、浮点型等)是值传递;对于可变对象(字典、集合、列表等)是引用传递《直接赋值除外》

a = 1
b = a
b = 2
print(a)
print(b)
#结果
1
2
a = [1,2,3,4]
b = a
b = [1,2,3,4,5]
print(a)
print(b)
#结果
[1,2,3,4]
[1,2,3,4,5]
a = [1,2,3]
b = a
b.append(4)
print(a)
print(b)
#结果
[1, 2, 3, 4]
[1, 2, 3, 4]
a = 'abc'
b = a
c = b.upper()
#结果
abc
abc
ABC

匿名函数和递归函数

匿名函数

在python中lamda关键词修饰的只能有单个表达式的函数叫做匿名函数
直接冲基础代码剖析

hanshu = lambda x,y:x if x>y else y
result = hanshu(4,6)
print(result)
##结果
6
def hanshu(n):
  return lambda a:a * n
ceshi1 = hanshu(1)
ceshi2 = hanshu(3)
print(ceshi1(1))
print(ceshi2(3))
##结果
1
9

递归函数

可以理解为递归。。比较有名的算法《斐波那契》就是本身调用本身

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值