python基础学习——函数作业

1、列举布尔值为False的值

  空、0、False、[]、{}、()、None

2、根据范围获取其中3和7整除的所有数的和,并返回调用者:符合条件的数字个数以及符合条件的数字的综合,如:def func(start,end)

def func(start,end):
    count=0
    sumn=0
    for i in range(start,end):
        if i%3==0 and i%7==0:
            count +=1
            sumn  +=i
    return count,sumn
t1=func(1,43)
print(t1)

3、函数的默认返回值是None

4、简述break/continue/return的区别

  break结束当前层的循环

  continue结束本次循环进入下一次循环

  return结束函数,并返回结果,默认为None

5、简述三元运算书写格式并举例说明

  变量=值一 if 条件一 else 值二

6、简述lambda表达式书写格式并举例

  匿名函数:函数名=lambda 形参:功能,不写函数名也可以,节约内存空间,调用完内存随机被释放

  eg:lambdax :x=x-1

7、使用set集合获取两个列表L1=[11,22,33],L2=[22,33,44]中相同的元素集合

L1=[11,22,33]
L2=[22,33,55]
L3=set(L1)&set(L2)
print(L3)

8、简述函数的位置参数、关键字参数、默认参数、可变长参数的特点以及注意事项

  位置参数:按形参的位置参入,形参与实参必须一一对应

  关键字参数:位置无需固定

  默认参数:形参直接指定默认值的参数

  可变长参数:*列表相关,**字典相关

9、读取执行结果

def func(*y,**z):
    print(y,z)
func(*[1,22,33],{"name":"cc","age":18})
#结果:(1, 22, 33, {'age': 18, 'name': 'cc'}) {}
#方式二:
def func(*y,**z):
    print(y,z)
func(*[1,22,33],**{"name":"cc","age":18})
#结果:(1, 22, 33) {'name': 'cc', 'age': 18}
def func(x,*z,**y): #一个**y要在*z的前面
    print(x,y,z)
func(1,2,3)

#结果:1 {} (2, 3)
def func(x,*y,**z):
    print(x,y,z)
func(1,name=2,age=3)
#结果:1 () {'name': 2, 'age': 3}
def func1(x=1,*y,**z):
    print(x,y,z)#3:1,y空(),{"name":"Fuck]
    return y    #4:返回y空表
    print(x)    #本函数已经返回,返回下面的内容不执行
def func2(arg):
    ret=func1(name=arg) #2:执行func1
    print(ret)     #5,执行完4后func1返回为空列表,所以ret是空元组
result=func2("Fuck") #第一步:函数执行
print(result)     #6 func2无返回return,所以fun2的执行结果为空None

#结果:
1 () {'name': 'Fuck'}
()
None
def func(arg):
    arg.append(55)
li=[11,22,33,44]
func(li)
print(li)
li=func(li) #li已经重新赋值了,所以是None
print(li)

#结果:[11, 22, 33, 44, 55]
None
def func(a1):
    return a1+100
func=lambda a1:a1+200  #func(a1)和func 相同函数。后一个func覆盖前一个func(a1)
ret=func(10)
print(ret)
#结果 210

 9、一个函数嵌套调用另一函数

name="CC"
def outer(func):
    name="娜娜"
    func() #结果就是执行的show,show和func调用的是同一个内存
def show():
    print(name)
outer(show)

10、递归1-8的阶乘

#1-8的阶乘
def f(n):
    if n==1:
        return 1
    return n*f(n-1)  #8*f(7) 7*f(6)....2*f(1) 1,然后从1开始向上递归
ret=f(8)
print(ret)

11、写程序利用withs实现同时打开两个文件(一读一写,并将读取的内容写入到写入模式的文件中)

#写程序利用withs实现同时打开两个文件(一读一写,并将读取的内容写入到写入模式的文件中)

with open("a","r") as x,open("b","w") as y:
    y.write(x.read())

猜你喜欢

转载自www.cnblogs.com/xucuiqing/p/11762033.html