python题目训练(随时更新)

时间:2022-11-19 14:50:55

1.

1 def func(arg,li=[]):
2     li.append(arg)
3     return li
4 v1 = func(1)
5 v2 = func(2,[])
6 v3 = func(3)
7 print(v1)
8 print(v2)
9 print(v3)

最终输出结果为:
[1,3]
[2,]
[1,3]

1 def func(arg,li=[]): 2  li.append(arg) 3     return li 4 v1 = func(1) 5 print(v1) 6 v2 = func(2,[]) 7 print(v2) 8 v3 = func(3) 9 print(v3)

最终输出结果为:
[1]
[2,]
[1,3]

执行v1时,li就创建在内存,v2时,传入新的[],所欲i创建另一内存,v3时使用v1创建的内存

2.

 1 n1 = [11,22,33,44,55]  2 n2 = n1  3 n3 = n1[:]  4         
 5 n1[0]=666
 6 n3[1]=999
 7         
 8 print(n1)  9 print(n2) 10 print(n3)

最终结果为:
[666, 22, 33, 44, 55]
[666, 22, 33, 44, 55]
[11, 999, 33, 44, 55]

因为n2 = n1,所以二者指向同一内存,n3 = n1[:]为切片,重新复制一份给n3

 

2018-09-06 13:34:41

3.

 1 var v = 123;  2 function foo(){  3     var v = 456;  4     function inner(){  5  console.log(v)  6  }  7     return inner  8 }  9 
10 result = foo() 11 console.log(result())

输出结果:

456

4.

 1 Name='root';  2 Age = 18;  3 function Foo(name,age){  4     this.Name = name;  5     this.Age = age;  6     this.Func = function(){  7         console.log(this.Name,this.Age);  8         (function(){  9              console.log(this.Name,this.Age); 10  })(); 11  } 12 } 13 obj = new Foo('alex',666); 14 obj.Func()

输出结果:
alex',666
root 18

3.4解析:

 1 this关键字:  2  每个函数中都有this  3     函数调用时,this=window  4     类new时, this=obj  5     
 6     function func(){  7         #当作函数执行函数时,this=window  8         console.log(this)  9  } 10  func() 11     
12     function Func(){ 13         
14  } 15     obj = new Func() 16 
17 js中无字典,只有对象: 18     Name = 'lxs'
19     obj = { 20         name:'root', 21         age:18, 22         Func:function(){ 23         #this = obj 24             console.log(this.name) #root 25             function.inner(){ 26                 #this = window 27                 console.log(this.Name) #lxs 28  } 29  inner() #相当于window.inner() 30         
31  } 32     
33  } 34  相当于new成了对象obj 35     通过一个对象调用类内部的方法时,this = 对象 36     obj.Func()  Func内部的对象 = obj 37  结果为: 38  root 39  lxs 40     
41     Name = 'lxs'
42     obj = { 43         name:'root', 44         age:18, 45         Func:function(){ 46         #this = obj 47             console.log(this.name) #root 48             var that = this
49             function.inner(){ 50                 
51  console.log(that.Name) #root 52  } 53  inner() #相当于window.inner() 54         
55  } 56     
57  } 58  obj.Func() 59  结果为:root root 60     
61     
62  自执行函数: 63         function.inner(){ 64                 
65  console.log(that.Name) 66  }() 67  相当于: 68             function.inner(){ 69                 
70  console.log(that.Name) 71  } 72             inner()