day 7:函数,字符串切片

一、不定长参数

全局变量:顶格写的变量,在任何地方都可以使用 局部变量:

在代码组中定义,只能在代码组中使用

#函数定义
def opration(a,b,c,d):
    sum1 = a + b + c + d
    print(sum1)
opration(1,2,3,4)

#使用容器作为参数
def opration(*args):
    sum1 = 0
    for var in args:
        sum1+=var
    return sum1
res = opration(1,2,3,4)
print(res)

# * 垃圾回收站,他不能接收关键字参数,不能接收关键字参数
#带* 的参数要放在形参的最后面
def opration(a,b,c,*d):
    print(a)
    print(b)
    print(c)
    print(d)
opration(1,2,3,4,5,6,7)

# **接收不定长关键字参数,只能放在最后
def opration(a,b,c,d,*args,**kwargs):
    print(a,b,c,d)
    print(args)
    print(kwargs)
opration(1,2,3,4,5,6,7,A = 9,B = 0)

二、函数闭包

函数闭包:内部函数调用外部函数的变量(非全局变量, 则称内部函数为闭包 即调用一个函数,返回一个新的函数来,称为闭包

def func():
    num = 1
    def func1():
        num=2
        print(num)
    print(num)
    func1()
    print(num)
func() #1,2,1

#先return inner这个函数,之后res代表inner,而num1传入了20
def outer(num1):
    def inner(num2):
        return num1 + num2
    return inner
res = outer(20)
result = res(10)
print(result)

#在使用闭包的时候,在内部没有引用的外部变量才可以
#而内部有使用时,代码会运行内部的变量,而导致没定义的报错
# def outer(a):
#     def inner():
#         a = a+1
#         return a
#     return inner
# res = outer(1)
# result = res()
# print(result)
def outer(a):
    def inner():
        a[0] = a[0]+1   #使用容器后,并没有定义a,而是对a的一个取值
        return a
    return inner
res = outer([1])
result = res()
print(result)

三、字符串和列表的切片

[开始索引:结束索引:间隔] 切片操作(结束索引取不到)

不加结束索引代表从开始索引取到最后

间隔缺省则是1

str1 = "停车坐爱枫林晚,霜叶红于二月花"
print(str1[-3],str1[-2],str1[-1])
print(str1[-3:])
print(str1[::2])
print(str1[4:0:-1])
print(str1[::-1 ])

var = range(100)
print(var[25:31])
print(var[70:83:3])
print(var[90:84:-1])
print(var[99:69:-5])
print(var[-10:-30:-2])

print(var[90:200]) #a取到90到99
print(var[150:200])#取出来为空。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值