11、Python是按引用调用还是按值调用?
①不可变对象(如字符串、数字和元组等)是按值调用的。
注意下面的例子中,当在函数内部修改时,name的值在函数外部不会发生变化。name的值已分配给内存中该函数作用域的新块。
name = 'chr'
def add_chars(s):
s += 'is'
print(s)
add_chars(name) #=> chris
print(name) #=> chr
②可变对象(如列表等)是通过引用调用的。
注意下面的例子中,函数外部定义的列表在函数内部的修改是如何影响到函数外部的。函数中的参数指向内存中存储li值的原始块。
li = [1,2]
def add_element(seq):
seq.append(3)
print(seq)
add_element(li) #=> [1, 2, 3]
print(li) #=> [1, 2, 3]
12、如何使用reverse函数反转一个列表?
下面的代码对一个列表调用reverse函数,对其进行修改。该方法没有返回值,但是会对列表的元素进行反向排序。
li = ['a','b','c']
print(li) #=> ['a', 'b', 'c']
li.reverse
print(li) #=> ['c', 'b', 'a']
13、字符串乘法是如何工作的?
'cat' * 3 ==> 'catcatcat',该字符串将自身连接3次。
14、列表乘法是如何工作的?
[1,2,3] * 2 ==> [1, 2, 3, 1, 2, 3],输出的列表包含了重复两次的列表[1,2,3]的内容。
15、类中的self指得是什么?
在Python中,self
是类中方法的第一个参数,它表示对当前实例对象的引用。当你调用类的方法时,Python会自动传入当前实例对象作为self
参数,这样在方法内部就可以通过self
来访问该实例对象的属性和方法。
class MyClass:
def __init__(self, x):
self.x = x
def print_x(self):
print(self.x)
# 创建实例对象
obj = MyClass(10)
# 调用实例方法,Python会自动传入当前实例对象作为self参数
obj.print_x() # 输出:10
16、如何在Python中连接列表?
将2个列表相加,就是将它们连接在一起。
17、浅拷贝和深拷贝之间有什么区别?
我们将在一个可变对象(列表)的上下文中讨论这个问题,对于不可变的对象,浅拷贝和深拷贝的区别并不重要。Python中的copy和deepcopy-CSDN博客
1. 引用原始对象。这将新对象li2指向li1所指向的内存中的同一位置。因此,我们对li1所做的任何更改也会在li2中发生。
li1 = [['a'],['b'],['c']]
li2 = li1
li1.append(['d'])
print(li2) #=> [['a'], ['b'], ['c'], ['d']]
2. 创建原始对象的浅拷贝副本。浅拷贝创建一个新对象,新对象和原始对象共享内部内存地址。因此,向原始列表li3中添加新对象不会传播到li4中,但是修改li3中的一个对象将传播到li4中。
li3 = [['a'],['b'],['c']]
li4 = list(li3)
li3.append([4])
print(li4) #=> [['a'], ['b'], ['c']]
li3[0][0] = ['X']
print(li4) #=> [[['X']], ['b'], ['c']]
3. 创建一个深拷贝副本。这是用copy.deepcopy完成的。现在,这两个对象是完全独立的(不共享内存地址),并且对其中一个对象所做的更改不会对另外一个对象产生影响。
import copy
li5 = [['a'],['b'],['c']]
li6 = copy.deepcopy(li5)
li5.append([4])
li5[0][0] = ['X']
print(li6) #=> [['a'], ['b'], ['c']]
18、列表和数组有什么区别?
①列表存在于python的标准库中。数组由Numpy定义。
②列表可以在每个索引处填充不同类型的数据。数组需要同构元素。
③列表上的算术运算可从列表中添加或删除元素。数组上的算术运算按照线性代数方式工作。
④列表还使用更少的内存,并显著具有更多的功能。
19、如何连接两个数组?
使用Numpy的连接函数concatenate来实现。
import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
np.concatenate((a,b)) #=> array([1, 2, 3, 4, 5, 6])
20、你喜欢python的什么?
①简洁易读:Python具有清晰简洁的语法,易于阅读和学习,使得开发者能够更加专注于解决问题而不是语法细节。
②广泛应用:Python在多个领域得到广泛应用,包括Web开发、数据分析、人工智能、科学计算、网络编程等,因此具有很强的适用性。
③大量的库和工具:Python拥有丰富的标准库和第三方库,涵盖了几乎所有领域的功能需求,开发者可以方便地使用这些库来加速开发过程。