目录

python-面试题-基础题

python–面试题–基础题

join() 和 split() 函数

join() 函数可以将指定的字符添加到字符串中。

a=[‘my’, ’name’, ‘shi’, ‘wzngz’]

print(’.’.join(a))

输出结果:my.name.shi.wzngz

split() 函数可以用指定的字符分割字符串

a=“my name shi wzngz "

print(a.split())

输出结果:[‘my’, ’name’, ‘shi’, ‘wzngz’]

1、解释//、%、* *运算符?

//(Floor Division)-这是一个除法运算符,它返回除法的整数部分。

例如:5 // 2 = 2

%(模数)-返回除法的余数。

例如:5 % 2 = 1

**(幂)-它对运算符执行指数计算。a ** b表示a的b次方。

例如:5 ** 2 = 25、5 ** 3 = 125

2、Python中append,insert和extend的区别?

append:在列表末尾添加新元素。

insert:在列表的特定位置添加元素。

extend:通过添加新列表来扩展列表。

例子:

numbers = [1,2,3,4,5]

numbers.append(6)

print(numbers)

[1,2,3,4,5,6]

insert(position,value)

numbers.insert(2,7)

print(numbers)

[1,2,7,3,4,5,6]

numbers.extend([7,8,9])

print(numbers)

[1,2,7,3,4,5,6,7,8,9]

numbers.append([4,5])

[1,2,7,3,4,5,6,7,8,9,[4,5]]

3、break、continue、pass是什么?

break:在满足条件时,它将导致程序退出循环。

continue:将返回到循环的开头,它使程序在当前循环迭代中的跳过所有剩余语句。

pass:使程序传递所有剩余语句而不执行。

4、区分Python中的remove,del和pop?

remove:将删除列表中的第一个匹配值,它以值作为参数。

del:使用索引删除元素,它不返回任何值。

pop:将删除列表中顶部的元素,并返回列表的顶部元素。

  • del——指定索引值删除
  • # del 列表[索引值]
  • del a_list[1]
  • 源列表:[‘Mecell’, 18, ‘Python’, True, None, [1, 2, 3], ‘Python’]

  • del删除数据后的列表:[‘Mecell’, ‘Python’, True, None, [1, 2, 3], ‘Python’]

  • remove——默认移除第一个出现的元素
  • 列表.remove[删除对象]
  • a_list .remove[‘Python’]
  • 源列表:[‘Mecell’, 18, ‘Python’, True, None, [1, 2, 3], ‘Python’]

  • remove删除数据后的列表:[‘Mecell’, 18, True, None, [1, 2, 3], ‘Python’]

  • 从结果可以看出,列表里面有两个’Python’,但是实际上只是删除了第一个,最后一个并没有删除,这就是remove的特点,需要大家注意!
  • pop——括号内不添加索引值,则默认删除列表中的最后一个元素;反之则默认根据索引值删除
  • # 列表.pop() –删除最后一个元素
  • a_list.pop()
  • 源列表:[‘Mecell’, 18, ‘Python’, True, None, [1, 2, 3], ‘Python’]

  • pop删除数据后的列表:

  • [‘Mecell’, 18, ‘Python’, True, None, [1, 2, 3]]
  • # 列表.pop(索引值) –指定索引值删除
  • a_list.pop(3)
  • 源列表:[‘Mecell’, 18, ‘Python’, True, None, [1, 2, 3], ‘Python’]

  • pop删除数据后的列表:[‘Mecell’, 18, ‘Python’, None, [1, 2, 3], ‘Python’]

解释Python中map()函数?

map()函数将给定函数应用于可迭代对象(列表、元组等),然后返回结果(map对象)。

我们还可以在map()函数中,同时传递多个可迭代对象。

numbers = (1, 2, 3, 4)

result = map(lambda x: x + x, numbers)

print(list(result))

zip函数

zip函数获取可迭代对象,将它们聚合到一个元组中,然后返回结果。

zip()函数的语法是zip(*iterables)

例子:

keys = [“name”, “age”, “city”]

values = [“Alice”, 30, “New York”]

print(zip(keys,values))

r1 = list(zip(keys, values))

r2= dict(zip(keys, values))

print(r1)

print(r2)

输出

<zip object at 0x000001D449607800>

[(’name’, ‘Alice’), (‘age’, 30), (‘city’, ‘New York’)]

{’name’: ‘Alice’, ‘age’: 30, ‘city’: ‘New York’}

5、举例说明Python中的range函数?

range:range函数返回从起点到终点的一系列序列。

range(start, end, step),第三个参数是用于定义范围内的步数。

number

for i in range(5):

print(i)

0,1,2,3,4

(start, end)

for i in range(1, 5):

print(i)

1,2,3,4

(start, end, step)

for i in range(0, 5, 2):

print(i)

0,2,4

6、==和is的区别是?

==比较两个对象或值的相等性。

is运算符用于检查两个对象是否属于同一内存对象。

lst1 = [1,2,3]

lst2 = [1,2,3]

lst1 == lst2

True

lst1 is lst2

False

7、如何更改列表的数据类型?

要将列表的数据类型进行更改,可以使用tuple()或者set()。

lst = [1,2,3,4,2]

更改为集合

set(lst) ## {1,2,3,4}

更改为元组

tuple(lst) ## (1,2,3,4,2)

8、Python中注释代码的方法有哪些?

在Python中,我们可以通过下面两种方式进行注释。

三引号,用于多行注释。

单井号#,用于单行注释。

9、什么是lambda函数?

Lambda函数是不带名称的单行函数,可以具有n个参数,但只能有一个表达式。也称为匿名函数。

a = lambda x, y:x + y

print(a(5, 6))

10、iterables和iterators之间的区别?

iterable:可迭代是一个对象,可以对其进行迭代。在可迭代的情况下,整个数据一次存储在内存中。

iterators:迭代器是用来在对象上迭代的对象。它只在被调用时被初始化或存储在内存中。迭代器使用next从对象中取出元素。

List is an iterable

lst = [1,2,3,4,5]

for i in lst:

print(i)

iterator

lst1 = iter(lst)

next(lst1)

1

next(lst1)

2

for i in lst1:

print(i)

3,4,5

11、Python中的生成器是什么?

生成器(generator)的定义与普通函数类似,生成器使用yield关键字生成值。

如果一个函数包含yield关键字,那么该函数将自动成为一个生成器。

A program to demonstrate the use of generator object with next() A generator function

def Fun():

yield 1

yield 2

yield 3

x is a generator object

x = Fun()

print(next(x))

1

print(next(x))

2

12、什么是pickling和unpickling?

pickling是将Python对象(甚至是Python代码),转换为字符串的过程。

unpickling是将字符串,转换为原来对象的逆过程。

13、解释*args和**kwargs?

args,如果在参数名前加,代表这个参数为可变参数

知识点如下:

传参时,接受任意的位置参数

会将其参数整体组装变成一个元组进行存储,整体赋值给变量名为*args

通过上面参数的科普,*args为位置参数

例子1:

def func(*args):

print(type(args))# 调用函数,传入2个数值

func(1, 2)  # 输出的内容为 <class ’tuple’> ,通过元组的格式进行存储

例子2:

def add(* num):

sum = 0

for val in num:

sum = val + sum

print(sum)

add(4,5)

add(7,4,6)

9

17

**kwargs,是当我们想将字典作为参数传递给函数时使用的。

知识点如下:

传参数,接受任意的关键字参数

会将其参数整体组装变成一个字典进行存储,整体赋值给变量名为**kwargs

具体例子如下:

自定义函数

def func(**kwargs):

print(type(kwargs))

调用函数,传入2个数值

func(a=1 , b=2)  # 输出的内容为  <class ‘dict’> ,通过字典的格式进行存储

*args 和 **kwargs 结合

上文已经知道关键字参数要在位置参数之后

具体例子如下:

自定义函数,包含*args和**kwargs

def func(argument, *args, **kwargs):

print(argument)  # 输出1

print(args) # 输出2

print(kwargs) # 输出3