1、继续整理函数相关知识点,写博客。
2、写函数,接收n个数字,求这些参数数字的和。(动态传参)
def sum1(*args):
sum = 0
for i in args:
sum += i
return sum
print(sum1(1,3,4,5,7,8))
3、读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么?
a=10
b=20
def test5(a,b):
print(a,b)
c = test5(b,a) #将b的值20位置传参传到a,a的值10传给b 函数无返回值,因此默认返回值为None
print(c)
答:a = 20 b = 10 c = None
4、读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么?
a=10
b=20
def test5(a,b): #20,10
a = 3 #再将3赋值给a
b = 5 #再将5赋值给b
print(a,b) #因此此处打印 3,5
c = test5(b,a) #调用函数时将b的值20传给a,a的值10传给b
print(c)
答:a = 3 b = 5 c = None
相关面试题(先从纸上写好答案,然后在运行):
1,有函数定义如下:
def calc(a,b,c,d=1,e=2):
return (a+b)*(c-d)+e
请分别写出下列标号代码的输出结果,如果出错请写出Error。
print(calc(1,2,3,4,5))_____ print(calc(1,2))____print(calc(e=4,c=5,a=2,b=3))___
print(calc(1,2,3))_____ print(calc(1,2,3,e=4))____print(calc(1,2,3,d=5,4))_____
2
报错,位置参数没有做到一一对应,c没有传值
24
8
10
报错,关键字参数在位置参数之前,
2,下面代码打印的结果分别是_list1=[10,"a"]________,___list2=[123]______,___ist3=[10,"a"]______.
def extendList(val,list=[]):
list.append(val)
print(list)
return list
list1 = extendList(10)
list2 = extendList(123,[])
list3 = extendList('a')
print('list1=%s'%list1,id(list1))
print('list2=%s'%list2,id(list2))
print('list3=%s'%list3,id(list3))
5,继续写昨天的作业。
6,默写:1,形参的接收顺序。
2,什么是命名空间,什么是全局名称空间,什么是局部名 称空间,什么是内置名称空间。
3,什么是全局作用域,什么是局部作用域。
4,名称空间的加载顺序,取值顺序。
5,解释一下什么是global,什么是nonlocal。