python 面试题集锦

  1. 如何在Python中实现多线程

    Python有一个多线程库,但是用多线程来加速代码的效果并不是那么的好,

    Python有一个名为Global Interpreter Lock(GIL)的结构。GIL确保每次只能执行一个“线程”。一个线程获取GIL执行相关操作,然后将GIL传递到下一个线程。

    虽然看起来程序被多线程并行执行,但它们实际上只是轮流使用相同的CPU核心。

    所有这些GIL传递都增加了执行的开销。这意味着多线程并不能让程序运行的更快。

    是否可以考虑协程?

  2. 循环names列表,打印每个元素的索引值和元素,当索引值为偶数时,把对应的元素改成-1。(考点列表元素,索引循环)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    for index,i in enumerate(names):

    if index%2==0:

    names[index]=-1

    print("索引 %d 为偶数,值已重置 ",index)

    print(names)