>  기사  >  백엔드 개발  >  Python 인터뷰에서 가장 자주 묻는 질문은 무엇입니까?

Python 인터뷰에서 가장 자주 묻는 질문은 무엇입니까?

WBOY
WBOY앞으로
2023-05-13 09:34:051251검색

Python 기본 면접 질문

1. Python 데이터 구조는 무엇인가요?

    List(목록)
  • Tuple(tuple)
  • Dictionary(dict)
  • Set(set)
  • 2. Python에서 리스트와 튜플의 차이점은 무엇입니까? 튜플은 정말 불변인가요?
  • List: 목록은 변경 가능한 유형이며 데이터는 동적으로 변경될 수 있습니다.
  • Tuple: 고정된 크기를 갖는 불변 유형입니다
  • 3. 생성기와 반복자는 무엇인가요? 그들 사이의 차이점은 무엇입니까?
  • Iterator

역할: 루프 코드를 단순화하고 메모리를 절약합니다

    이동한 위치를 기억할 수 있는 객체입니다. 반복기 개체는 모든 요소에 액세스할 때까지 컬렉션의 첫 번째 요소부터 액세스하기 시작합니다. Iterator는 앞으로만 갈 수 있고 뒤로는 갈 수 없습니다.
  • Iterator에는 iter()와 next()라는 두 가지 기본 메서드가 있습니다.

  • Generator

  • Function: 많은 메모리 절약

Yield를 사용하는 함수를 Generator라고 합니다. Generator는 반복 작업에만 사용할 수 있는 함수입니다. is An iterator

원리: 생성기를 호출하는 과정에서 Yield를 만날 때마다 함수는 현재 실행 중인 모든 정보를 일시 중지하고 저장하고 Yield 값을 반환하며 다음 번( ) 메소드가 실행됩니다4. 클로저란 무엇인가요? 데코레이터란 무엇입니까? 데코레이터는 무슨 일을 하나요? 데코레이터를 사용해 본 적이 있나요? 데코레이터의 예를 작성해주세요

클로저란 함수를 구성하는 언어와 이들 언어의 실행 환경을 함께 패키징한 파이썬의 객체를 말합니다

데코레이터는 기능을 추가하는 간단한 방법입니다. 동일한 기능을 다른 함수나 클래스에 빠르게 삽입할 수 있습니다. 구문: "@장식자 이름"이 함수 앞에 추가됩니다. 예:

5. 익명 함수를 사용하면 어떤 이점이 있나요?

익명 함수

: 람다를 사용하여 생성된 함수 소위 익명 함수는 함수가 더 이상 def 문과 같은 표준 형식으로 정의되지 않음을 의미합니다.

혜택

:

1. Python을 사용하여 일부 실행 스크립트를 작성할 때 람다를 사용하면 함수 정의 프로세스를 절약하고 코드를 더욱 간소화할 수 있습니다.

2. 다른 곳에서 재사용되지 않는 일부 추상 함수의 경우 함수 이름을 지정하기 어려울 때가 있습니다. 람다를 사용하면 이름 지정 문제를 고려할 필요가 없습니다.

3. 특정 상황에서는 코드를 더 쉽게 이해하려면 람다를 사용하세요.

Python 인터뷰에서 가장 자주 묻는 질문은 무엇입니까?

애플리케이션 시나리오

: map(), filter(), sorted(), Reduce() 등과 같은 일부 내장 함수와 함께 사용되는 경우가 많습니다.

표현 형식 : 람다 매개변수 목록: 람다 본문

Case:

frame.applymap(lambda x: '%.2f' % x)
frame.apply(lambda x: x.max() - x.min())

6. Python의 작동 효율성을 높이는 방법

생성기를 사용하여 메모리 최적화

루프 최적화: 다중 if elif 조건 판단, 발생할 가능성이 가장 높은 조건을 먼저 작성할 수 있어 프로그램 판단 횟수를 줄이고 효율성을 높일 수 있습니다. 알고리즘 시간 최적화: 알고리즘의 시간 복잡도는 프로그램의 실행 효율성에 가장 큰 영향을 미칩니다. Python에서는 적절한 데이터 구조를 사용하여 시간 복잡도를 최적화할 수 있습니다. 예를 들어 목록과 집합에서 특정 요소를 검색하는 시간 복잡도는 각각 O(n) 및 O(1)입니다

7. 중고 수업? 상속에 대해 알고 계시나요? 상속을 활용한 예시를 작성해주세요. 상속: 상위 개체의 속성 및 기능과 더불어 사용자 지정 속성 및 기능을 획득하여 개체의 하위 개체 또는 클래스의 하위 클래스가 되는 것을 의미합니다. map()、filter()、sorted()、reduce()

表达式格式lambda 参数列表: lambda体

案例

rrreee

6、如何提高 Python 的运行效率吗

使用生成器优化内存

循环的优化:多个if elif条件判断,可以把最有可能先发生的条件放到前面写,这样可以减少程序判断的次数,提高效率

优化算法时间:算法的时间复杂度对程序的执行效率影响最大,在Python中可以通过选择合适的数据结构来优化时间复杂度,如list和set查找某一个元素的时间复杂度分别是O(n)和O(1)

7、用过类吗?知道继承吗?请写一个例子,用到继承。

继承:指通过获取父对象的属性和能力,再加上自定义的属性和能力而成为一个对象的子对象或一个类的子类。

Python 인터뷰에서 가장 자주 묻는 질문은 무엇입니까?

重写:方法名取一样,方法重写

Python 인터뷰에서 가장 자주 묻는 질문은 무엇입니까?

8、深拷贝和浅拷贝

  • 浅拷贝,改变原始对象中为可变类型的元素的值,会同时影响拷贝对象;改变原始对象中为不可变类型的元素的值,不会响拷贝对象。

  • 深拷贝,除了顶层拷贝,还对子元素也进行了拷贝。经过深拷贝后,原始对象和拷贝对象所有的可变元素地址都没有相同的了

9、列举8个常用模块都有那些?

os模块:提供了不少与操作系统相关联的函数.

sys模块:通用工具脚本经常调用命令行参数.

re模块:为高级字符串处理提供了正则表达式工具。对于复杂的匹配和处理,正则表达式提供了简洁、优化的解决方案:

random模块

파이썬 인터뷰에서 가장 자주 묻는 질문은 무엇입니까🎜🎜반복 쓰기: 메서드 이름은 동일하고 메서드가 다시 작성됩니다🎜🎜가장 자주 발생함 Python 인터뷰에서 질문함 문제점은 무엇입니까?🎜🎜8. Deep Copy 및 Shallow Copy🎜🎜🎜🎜Shallow Copy, 원본 개체의 변수 유형 요소 값을 변경하면 복사된 개체에도 영향을 줍니다. 원본 객체의 불변 유형 요소의 값은 복사된 객체에 영향을 주지 않습니다. 🎜🎜🎜🎜전체 복사는 최상위 복사 외에 하위 요소도 복사합니다. 딥 카피 후 원본 객체와 복사된 객체의 모든 가변 요소 주소가 더 이상 동일하지 않습니다🎜🎜🎜🎜9. 일반적으로 사용되는 모듈 8개 중 나열된 것은 무엇입니까? 🎜🎜os 모듈: 운영 체제와 관련된 다양한 기능을 제공합니다. 🎜🎜sys 모듈: 일반적인 도구 스크립트는 종종 명령줄 매개변수를 호출합니다.🎜🎜 모듈: 고급 문자열 처리를 위한 정규식 도구를 제공합니다. 복잡한 일치 및 처리를 위해 정규식은 간결하고 최적화된 솔루션을 제공합니다. 🎜🎜<code>무작위 모듈: 난수 생성을 위한 도구를 제공합니다. 🎜

json 모듈: Python에서 json 데이터를 구문 분석하고 Python 형식 간에 변환하는 메서드를 제공합니다.json模块:提供Python解析json数据的方法,和python格式相互转化的方法

time模块:python中用于处理时间的模块

logging模块:python中关于日志处理的模块

xml模块

time 모듈: Python에서 시간을 처리하기 위한 모듈

로깅 모듈: python

에서 로그 처리를 위한 모듈xml 모듈: Python 크롤러

10에서 html 태그를 찾기 위한 모듈? (알아두세요)

Python은 참조 카운팅 메커니즘을 주요 전략으로 채택하고 있으며, 마크 클리어와 세대별 수집의 두 가지 메커니즘(세대 간 재활용, 세대 간 재활용)은 보조 전략입니다

카운팅 메커니즘

: Python The GC 모듈은 주로 참조 카운팅을 사용하여 가비지를 추적하고 수집합니다. 참조 카운팅을 기반으로 "mark-clear"를 사용하면 컨테이너 개체에서 발생할 수 있는 순환 참조 문제를 해결할 수도 있습니다. 세대별 수집을 통해 공간과 시간을 교환하여 가비지 수집의 효율성을 더욱 향상시킵니다.

Mark-Clear

:: mark-clear의 출현은 순환 참조를 깨뜨립니다. 즉, 순환 참조를 생성할 수 있는 객체에만 초점을 맞춥니다. 단점: 이 메커니즘으로 인해 발생하는 추가 작업은 메모리 블록에 비례합니다. 재활용해야 합니다. 🎜🎜🎜세대 분리 재활용🎜 원리: 시스템의 모든 메모리 블록은 생존 시간에 따라 서로 다른 컬렉션으로 구분됩니다. 각 컬렉션은 "세대"가 됩니다. 가비지 수집 빈도는 "세대"의 생존 시간에 따라 증가합니다. .크고 축소되었습니다. 즉, 객체의 수명이 길어질수록 가비지일 가능성이 낮아지고 가비지 수집 빈도를 줄여야 합니다. 따라서 이 생존 시간을 측정하는 방법은 다음과 같습니다. 일반적으로 여러 번의 가비지 수집 작업을 통해 측정됩니다. 객체가 더 많은 가비지 수집을 거쳤을 경우 해당 객체의 생존 시간이 더 길다고 결론을 내릴 수 있습니다. 🎜

위 내용은 Python 인터뷰에서 가장 자주 묻는 질문은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제