>  기사  >  백엔드 개발  >  60개의 Python 인터뷰 질문 및 답변이 선택되었습니다! 새해에 일자리를 구할 때 꼭 읽어야 할 책

60개의 Python 인터뷰 질문 및 답변이 선택되었습니다! 새해에 일자리를 구할 때 꼭 읽어야 할 책

云罗郡主
云罗郡主원래의
2019-01-28 13:25:107833검색

2019년 최신 Python 인터뷰 질문 60개와 답변! 새해에 일자리를 찾을 때 꼭 읽어야 할 책, 파이썬을 위한 혜택. [추천 튜토리얼: Python 튜토리얼]

60개의 Python 인터뷰 질문 및 답변이 선택되었습니다! 새해에 일자리를 구할 때 꼭 읽어야 할 책

1. Python의 특징과 장점은 무엇인가요?

답변: 생략했습니다.

2. 람다 함수란? 그 이점은 무엇입니까?

람다 함수는 임의 개수의 인수(선택적 인수 포함)를 취하고 단일 표현식 값을 반환하는 함수입니다. Lambda 함수는 명령을 포함할 수 없으며 둘 이상의 표현식을 포함할 수 없습니다. 람다 함수에 너무 많은 것을 집어넣으려고 하지 마세요. 더 복잡한 것이 필요하다면 일반 함수를 정의하고 원하는 만큼 길게 만드세요.

lambda 함수는 선택적 매개변수를 포함하여 여러 매개변수를 허용할 수 있지만 표현식은 하나만 있습니다:

>>> g = 람다 x, y: x*y

>>> 3,4)

12

>>>g = 람다 x, y=0, z=0: x+y+z

>>>g (1)

1

> ;>> g (3, 4, 7)

14

람다 함수를 변수에 할당하지 않고 직접 사용할 수도 있습니다:

>>> =0 :x+y+z) (3,5,6)

14

함수가 매우 간단하고 명령이 없고 표현식이 하나만 있는 경우 람다 함수를 고려해 볼 수 있습니다. 그렇지 않으면 함수를 정의하는 것이 좋습니다. 결국 함수에는 많은 제한이 없습니다.

3. 깊은 복사와 얕은 복사의 차이점은 무엇인가요?

딥 카피는 객체 자체를 다른 객체에 복사하는 것입니다. 즉, 개체 복사본을 변경해도 원본 개체는 영향을 받지 않습니다. Python에서는 deepcopy() 함수를 사용하여 전체 복사를 수행합니다.

>>> import copy

>>> 얕은 복사는 개체의 참조가 다른 개체에 복사되는 것입니다. 따라서 복사본을 변경하면 원본 개체에 영향을 미칩니다. 얕은 복사를 수행하려면 copy() 함수를 사용하세요. 사용 방법은 다음과 같습니다.

>>> b=copy.copy(a)

4. ?

try… 각 예외 분기를 순차적으로 실행해 보십시오. 발생한 예외가 제외의 예외 그룹과 일치하면 해당 명령문을 실행하십시오. 모든 예외가 일치하지 않으면 예외는 이 코드를 호출하는 다음으로 높은 수준의 try 코드로 전달됩니다.

try 아래의 문이 정상적으로 실행되면 else 블록 코드가 실행됩니다. 예외가 발생하면 실행되지 않고 finally 문이 있으면 항상 마지막에 실행됩니다.

5. Python에서 난수를 생성하는 방법은 무엇입니까?

답변: 무작위 모듈무작위 정수: 무작위.randint(a,b): 무작위 정수 반환 x,a<=x<=b

random.randrange(start,stop,[,step]): 반환 종료 값을 포함하지 않는 범위(시작, 중지, 단계)의 임의의 정수입니다.

Random 실수: random.random( ): 0과 1 사이의 부동 소수점 숫자를 반환합니다.

random.uniform(a,b): 지정된 범위 내의 부동 소수점 숫자를 반환합니다.

6 다중 구현 방법. -파이썬에서 스레딩?

a. Python에는 멀티스레딩 패키지가 있지만 멀티스레딩을 통해 코드 속도를 높이려면 일반적으로 이를 사용하는 것이 좋지 않습니다. b. Python에는 GIL(GlobalInterpreter Lock)이라는 구조가 있습니다. GIL은 언제든지 하나의 "스레드"만 실행될 수 있도록 보장합니다. 한 스레드가 GIL을 가져와 약간의 작업을 수행한 후 GIL을 다음 스레드로 전달합니다.

c. 이는 매우 빠르게 발생하므로 사람의 눈에는 스레드가 병렬로 실행되는 것처럼 보이지만 실제로는 동일한 CPU 코어를 사용하여 교대로 실행되는 것입니다.

d. 이러한 모든 GIL 패스는 실행에 오버헤드를 추가합니다. 즉, 코드를 더 빠르게 실행하려면 일반적으로 스레딩 패키지를 사용하는 것이 좋지 않습니다.

7. 파이썬에서 삼항 연산자를 사용하는 방법은 무엇입니까?

삼항 연산자는 조건문을 표시하는 데 사용되는 연산자입니다. 여기에는 참 또는 거짓 값으로 평가되는 명령문이 포함됩니다. 구문: ​​삼항 연산자 구문은 다음과 같습니다.

[on_true] if [표현식] else [on_false]

예:

x, y = 25,50

big = x if x <

x

8. Python의 상속을 예를 들어 설명하세요.

상속을 통해 한 클래스는 다른 클래스의 모든 멤버(예: 속성 및 메서드)를 얻을 수 있습니다. 상속은 코드 재사용성을 제공하므로 애플리케이션을 더 쉽게 만들고 유지 관리할 수 있습니다. 우리가 상속받은 클래스를 슈퍼클래스라고 하고, 상속받은 클래스를 파생/하위클래스라고 합니다. 다음은 Python에서 지원하는 다양한 유형의 상속입니다:

a. 단일 상속 - 파생 클래스는 단일 슈퍼클래스의 멤버를 얻습니다.

b. 다중 수준 상속 - 파생 클래스 d1은 기본 클래스 base1에서 상속되고, d2는 base2에서 상속됩니다.

c. 계층적 상속 - 기본 클래스에서 원하는 만큼의 하위 클래스를 상속할 수 있습니다.

d 다중 상속 - 파생 클래스는 여러 기본 클래스에서 상속됩니다.

9. Flask가 무엇이며 그 이점을 설명하세요.

Flask는 "Werkzeug, Jinja2 및 Good Intentions" BSD 라이센스를 기반으로 하는 Python 웹 마이크로프레임워크입니다. Werkzeug와 Jinja2는 종속성 중 두 가지입니다. 이는 외부 라이브러리에 대한 종속성이 거의 없음을 의미합니다. 업데이트에 대한 종속성과 보안 버그가 적어 프레임워크를 가볍게 만듭니다.

세션을 사용하면 기본적으로 한 요청에서 다른 요청까지의 정보를 기억할 수 있습니다. 플라스크에서 세션은 사용자가 세션 콘텐츠를 보고 수정할 수 있도록 서명된 쿠키를 사용합니다. Flask.secret_key 키가 있는 경우에만 사용자가 세션을 수정할 수 있습니다.

10. 파이썬에서 사전이란 무엇인가요?

Python에 내장된 데이터 유형을 사전이라고 합니다. 키와 값 사이의 일대일 관계를 정의합니다. 사전에는 한 쌍의 키와 해당 값이 포함되어 있습니다. 사전은 키로 색인화됩니다.

예를 들어 보겠습니다.

다음 예에는 몇 가지 키인 Country, Capital & PM이 포함되어 있으며 해당 값은 각각 India, Delhi 및 Modi입니다.

dict={'국가':'인도','수도':'델리','PM':'모디'}

print dict[국가]

India

print dict[수도]

Delhi

print dict[PM]

Modi

11. 음수 지수란 무엇이며 왜 사용되나요?

Python의 시퀀스는 색인이 생성되며 양수와 음수로 구성됩니다. 양수는 '0'을 첫 번째 인덱스로 사용하고 '1'을 두 번째 인덱스로 사용합니다.

음수의 인덱스는 시퀀스의 마지막 인덱스인 '-1', 마지막에서 두 번째 인덱스인 '-2' 등으로 시작합니다.

12. Python을 사용하여 텍스트 문자열을 쿼리하고 바꾸는 방법은 무엇입니까?

sub() 메서드를 사용하여 쿼리하고 바꿀 수 있습니다. sub 메서드의 형식은

a.sub (replacement, string[,count=0])

b입니다.

c. 문자열은 대체해야 하는 텍스트입니다

d. count는 최대 대체 수를 나타내는 선택적 매개변수입니다

13. Python의 and-or 구문

과 C 표현식을 설명하세요. a: b는 유사하지만 a가 false인 경우 bool과 a 또는 b는 C 표현식 bool ? a : b처럼 작동하지 않습니다.

and-or 트릭은 함수로 캡슐화되어야 합니다.

defchoose(bool, a, b): return (booland[a]or[b])[0]

[a]는 비어 있지 않은 목록이므로 결코 false가 될 수 없습니다. a가 0, '' 또는 다른 false 값이더라도 list[a]에는 요소가 하나 있으므로 true입니다.

14 목록에서 중복된 요소를 삭제하는 Python 코드를 작성하세요

1, set(list)

2 함수를 사용하고, 사전 함수

>>> a= [1,2,4,2,4,5,6,5,7,8,9,0]

>>b={}

>>b=b .fromkeys (a)

>>c=list(b.keys())

>>> c

15. 인용 부호? ㅋㅋㅋ quote: s4 = '가자'

큰따옴표: s5 = "가자"

s6 = '나는 "파이썬"을 정말 좋아해요! ’

이것이 작은따옴표와 큰따옴표 모두 문자열을 나타낼 수 있는 이유입니다.

16. Python을 종료할 때 모든 메모리 할당이 해제됩니까?

답은 '아니오'입니다. 객체 순환 참조 또는 전역 네임스페이스 참조가 있는 변수는 Python이 종료될 때 해제되지 않는 경우가 많습니다. 또한 C 라이브러리에 보관된 일부 내용은 해제되지 않습니다.

17. Python에서 search()와 match()의 차이점은 무엇인가요?

match() 함수는 문자열 시작 부분에서 RE 일치 여부만 감지합니다. search()는 일치 항목을 찾기 위해 전체 문자열을 검색합니다. 즉, match()는 일치 항목이 성공한 경우에만 반환합니다. 위치 0, 시작이 아닌 경우 일치에 성공하면 match()는 없음을 반환합니다.

18. Python에서 목록의 항목을 무작위로 추출하는 방법은 무엇입니까?

아래 예시를 고려하세요.

from Random import shuffle

x = ['Keep', 'The', 'Blue', 'Flag', 'Flying', 'High']

shuffle(x)

print(x)

다음 코드의 출력은 다음과 같습니다.

['Flying', 'Keep', 'Blue', 'High', 'The', 'Flag']

19. 파이썬에서 컴파일하고 링크하는 과정은 어떻게 되나요?

컴파일 및 링크를 사용하면 새 확장을 오류 없이 올바르게 컴파일할 수 있으며 컴파일 프로세스를 통과한 경우에만 링크할 수 있습니다. 동적 로딩을 사용하는 경우 시스템 제공 스타일에 따라 다릅니다. Python 인터프리터를 사용하여 구성 설정 파일을 동적으로 로드할 수 있으며 인터프리터가 다시 빌드됩니다.

다음 단계가 필요합니다.

a. 시스템 컴파일러에서 지원하는 모든 이름과 언어로 파일을 만듭니다. 예를 들어 file.c 또는 file.cpp

b. 이 파일을 사용 중인 배포판의 Modules/ 디렉터리에 넣으세요.

c. Modules/ 디렉터리에 있는 Setup.local 파일에 한 줄을 추가합니다.

d. spam file.o를 사용하여 파일을 실행합니다.

e. 이 재빌드 인터프리터를 성공적으로 실행한 후 최상위 디렉터리에서 make 명령을 사용합니다.

f. 파일이 변경된 경우 "make Makefile" 명령을 사용하여 buildMakefile을 실행하세요.

20. Python은 "re" 모듈의 Split(), sub(), subn() 메서드를 설명합니다.

문자열을 수정하기 위해 Python의 "re" 모듈은 3가지 방법을 제공합니다.

split() - 정규식을 사용하여 주어진 문자열을 목록으로 "분할"합니다.

sub() - 정규식 패턴과 일치하는 모든 하위 문자열을 찾아 다른 문자열로 바꿉니다.

subn() - sub()와 유사하며 새 문자열과 대체된 서수도 반환합니다.

21.range와 xrange의 차이점은 무엇인가요?

대부분의 경우 xrange와 range는 기능적으로 동일하며 둘 다 사용할 정수 목록을 생성하는 방법을 제공합니다. 유일한 차이점은 range가 Python 목록 객체를 반환하고 xrange가 xrange 객체를 반환한다는 것입니다.

이것은 xrange가 실제로 런타임처럼 정적 목록을 생성하지 않는다는 것을 의미합니다. 양보(Yieling)라는 특별한 기법을 이용해 필요에 따라 가치를 만들어낸다. 이 기술은 생성기라는 개체와 함께 작동합니다. 즉, 매우 큰 범위가 있고 10억과 같은 목록을 생성하려는 경우 xrange를 사용할 함수입니다.

사용 중인 휴대폰과 같이 메모리에 민감한 시스템을 사용하는 경우 특히 그렇습니다. 범위는 정수 배열을 생성하는 데 사용되는 만큼 많은 메모리를 사용하여 메모리 오류가 발생하고 프로그램이 중단될 수 있기 때문입니다. .

22. Django, Pyramid 및 Flask의 차이점.

Flask는 요구 사항이 더 간단한 소규모 애플리케이션에 주로 사용되는 "마이크로 프레임워크"입니다. Flask에서는 외부 라이브러리를 사용해야 합니다.

피라미드는 대규모 애플리케이션에 적합합니다. 이는 유연성을 제공하고 개발자가 프로젝트에 적합한 도구를 사용할 수 있도록 해줍니다. 개발자는 데이터베이스, URL 구조, 템플릿 스타일 등을 선택할 수 있습니다.

Django는 더 큰 규모의 애플리케이션을 위해 피라미드처럼 사용될 수도 있습니다.

23. Django에서 상속된 스타일을 나열합니다.

Django에는 세 가지 상속 스타일이 있습니다.

추상 기본 클래스: 각 하위 모델에 대해 입력하고 싶지 않은 정보를 상위 클래스에 포함시키려는 경우 이 스타일을 사용하세요.

다중 테이블 상속: 기존 모델을 하위 클래스로 분류하고 각 모델에 자체 데이터베이스 테이블이 필요한 경우 이 스타일을 사용하세요.

프록시 모델: 모델의 필드를 변경하지 않고 모델의 Python 수준 동작만 수정하려는 경우 이 모델을 사용할 수 있습니다.

24.파이썬 몽키 패치란?

Python에서 원숭이 패치라는 용어는 단순히 런타임 시 클래스나 모듈을 동적으로 수정하는 것을 의미합니다.

다음 예를 고려하세요:

# m.py

class MyClass:

def f(self):

print "f()"

그런 다음 다음과 같이 원숭이 패치 테스트를 실행할 수 있습니다.

import m

def Monkey_f(self):

print "monkey_f()"

m.MyClass.f = Monkey_f

obj = m.MyClass()

obj.f()

출력은 다음과 같습니다. :

monkey_f( )

모듈 외부에서 f() 함수의 동작을 일부 변경했으며 실제로 실행되는 것은 Monkey_f() 함수임을 알 수 있습니다.

25. 두 ​​개의 시퀀스 a와 b가 있으며 둘 다 크기가 n입니다. 시퀀스 요소의 값은 임의의 정수입니다.

요구 사항: a와 b의 요소를 교환함으로써 [시퀀스 a의 요소 합]과 [시퀀스 b의 요소 합] 간의 차이가 최소화됩니다.

1. 두 시퀀스를 하나의 시퀀스로 병합하고 Source

2로 정렬합니다. 가장 큰 요소인 Big과 두 번째로 큰 요소인 Small

3을 균등하게 나눕니다. 시퀀스 max, min

4을 구합니다. max 시퀀스에 Small을 추가하고 min 시퀀스에 Big을 늘린 다음 새 시퀀스 합계를 다시 계산합니다.

26. Python을 사용하여 이메일을 보내는 방법은 무엇입니까?

smtplib 표준 라이브러리를 사용할 수 있습니다.

다음 코드는 SMTP Listener를 지원하는 서버에서 실행될 수 있습니다.

import sys, smtplib

fromaddr =raw_input("From: ")

toaddrs = raw_input("To: "). Split(',')

print "메시지를 입력하고 ^D로 끝납니다:"

msg = "

while 1:

line = sys.stdin.readline()

line이 아닌 경우:

break

msg = msg + line

# 메일 보내기 부분

server = smtplib.SMTP('localhost')

server.sendmail(fromaddr, toaddrs, msg)

server.quit()

27이라고 적어주세요. 파일의 대문자 수를 계산하는 Python 논리

>>> import os

>>os.chdir('C:\Users\lifei\Desktop')

> ;>> with open('Today.txt') astoday:

count=0

for i in today.read():

if i.isupper():

count+=1

print( 카운트)

실행 결과:

26

28. Python에서는 식별자를 얼마나 오래 사용할 수 있나요?

Python에서는 식별자의 길이에 제한이 없습니다. 또한 식별자 이름을 지정할 때 다음 규칙을 준수해야 합니다.

a 밑줄이나 A-Z/a-z의 문자로만 시작할 수 있습니다.

b 나머지는 A-Z/a-z/0-9

로 구분할 수 있습니다.

c. 대문자 및 소문자

d. Python에는 다음과 같은 키워드가 있습니다.

29. Python의 //, % 및 ** 연산자를 설명하세요.//연산자는 다음을 수행합니다. 바닥 나누기( 나누기)는 결과의 정수 부분을 반환합니다.

>>> 7//2

3

나누면 3.5가 반환됩니다.

마찬가지로 지수 연산을 수행합니다. ab는 a를 b로 거듭제곱한 값을 반환합니다.

>>> 2**10

1024

마지막으로 %는 모듈로 연산을 수행하고 나눗셈의 나머지 부분을 반환합니다.

>>> 13%7

6

>>3.5%1.5

0.5

30.

파이썬에서는 10진수 외에도 2진수, 8진수, 16진수를 사용할 수 있습니다.

a. 이진수는 0과 1로 구성되며 0b 또는 0B 접두어를 사용하여 이진수를 나타냅니다.

>>> int (0b1010)

10

b bin() 함수를 사용하여 숫자를 이진 형식으로 변환합니다.

>

>

>>> 16진수(16)

'0x10'

>

사전의 모든 키를 얻으려면 키()를 사용하세요

>>>mydict={'a':1,'b':2,'c':3,'e':5}

>>> mydict.keys()

dict_keys(['a', 'b', 'c', 'e'])

32. 여러 변수를 선언하고 값을 할당하는 방법은 무엇입니까?

두 가지 방법이 있습니다: >>> a,b,c=3,4,5 #이것은 3,4 및 5를 각각 a, b 및 c에 할당합니다

>> > a=b=c=3 #이것은 a,b 및 c

33에 3을 할당합니다.

먼저 캡슐화를 살펴보겠습니다:

>>> mytuple=3,4,5>>> mytuple

(3, 4, 5)

이것은 3, 4입니다. ,5는 튜플 mytuple에 캡슐화됩니다.

이제 이 값을 변수 x, y, z로 압축 해제합니다.

>>> x,y,z=mytuple>>> 12.

34. Django에서 데이터베이스를 설정합니다.

edit mysite/setting.py 명령을 사용할 수 있습니다. 이는 일반 Python 모듈이며 모듈 수준은 Django 설정을 나타냅니다.

Django는 기본적으로 SQLite를 사용하므로 Django 사용자에게는 쉬우므로 다른 종류의 설치가 필요하지 않습니다. 데이터베이스 선택이 다른 경우 데이터베이스 연결 설정과 일치하도록 DATABASE '기본' 키에서 다음 키를 사용해야 합니다.

엔진: 'django.db.backends.sqlite3', 'django.db.backeneds.mysql', 'django.db.backends.postgresql_psycopg2', 'django.db.backends.oracle' 등을 사용할 수 있습니다. 데이터베이스 변경

Name: 데이터베이스의 이름입니다. SQLite를 데이터베이스로 사용하는 경우 데이터베이스는 컴퓨터의 파일이 되며 이름은 파일의 파일 이름을 포함한 전체 절대 경로여야 합니다.

SQLite를 데이터베이스로 선택하지 않은 경우 비밀번호, 호스트, 사용자 등의 설정을 추가해야 합니다. Django는 SQLite를 기본 데이터베이스로 사용하여 데이터를 파일 시스템에 개별 파일로 저장합니다. 데이터베이스 서버(PostgreSQL, MySQL, Oracle, MSSQL)가 있고 이를 SQLite 대신 사용하려는 경우 데이터베이스 관리 도구를 사용하여 Django 프로젝트를 위한 새 데이터베이스를 생성하세요. 어느 쪽이든, (빈) 데이터베이스가 있으면 남은 것은 Django에게 데이터베이스 사용 방법을 알려주는 것뿐입니다. 이는 프로젝트의 settings.py 파일의 소스입니다.

다음 코드 줄을 파일에 추가합니다:

DATABASES = {

'default': {'ENGINE' : 'django.db.backends.sqlite3',

'NAME' : os. path.join( BASE_DIR, 'db.sqlite3'),

}

}

35 URL이나 웹페이지의 Google 캐시 시간 제한을 얻는 방법은 무엇입니까?

다음 URL 형식을 사용하세요.

http://webcache.googleusercontent.com/search?q=cache:URLGOESHERE

"URLGOESHERE"를 캐시가 있는 페이지나 사이트의 올바른 웹 주소로 바꾸세요. 검색하고 시간을 확인하고 싶습니다. 예를 들어 edureka.co의 Google Webcache 시대를 보려면 다음 URL을 사용합니다:

http://webcache.googleusercontent.com/search?q=cache:edureka.co

36. 파이썬 함수에서?

Map 함수는 첫 번째 인수로 제공된 함수를 실행합니다. 이 함수는 두 번째 인수로 제공된 반복의 모든 요소를 ​​반복합니다. 주어진 함수에 2개 이상의 인수가 포함되어 있으면 많은 반복이 제공됩니다.

37. NumPy 배열에서 N개의 가장 큰 값의 인덱스를 얻는 방법은 무엇입니까?

다음 코드를 사용하여 NumPy 배열에서 가장 큰 N개 값의 인덱스를 얻을 수 있습니다:

import numpy as np

arr = np.array([1, 3, 2, 4, 5])

print(arr .argsort()[-3:][::-1])

output

[4 3 1]

38. Python/NumPy로 백분위수를 어떻게 계산합니까?

다음 코드를 사용하여 백분위수를 계산할 수 있습니다.

import numpy as np

a = np.array([1,2,3,4,5])

p = np.percentile(a, 50 ) #50번째 백분위수를 반환합니다(예: 중앙값

print(p)

output

3

39) (중첩된) Python 목록에 비해 NumPy 배열의 장점은 무엇입니까?

a. Python 목록은 효율적인 범용 컨테이너입니다. (상당히) 효율적인 삽입, 삭제, 추가 및 연결을 지원하며 Python의 목록 이해 기능을 사용하면 쉽게 구성하고 조작할 수 있습니다.

b. Python 목록의 일부 제한 사항: 요소별 덧셈 및 곱셈과 같은 벡터화된 "벡터화된" 연산을 지원하지 않으며, 서로 다른 유형의 객체를 포함할 수 있다는 사실은 Python이 각 요소에 대한 유형 정보를 저장해야 함을 의미합니다. 유형 디스패치 코드는 각 요소에서 작동하므로 실행되어야 합니다.

c. NumPy는 더 효율적일 뿐만 아니라 더 편리합니다. 많은 벡터 및 행렬 연산을 무료로 얻을 수 있어 때로는 불필요한 작업을 줄일 수 있습니다.

d. NumPy 배열은 더 빠르며 NumPy, FFT, 컨볼루션, 빠른 검색, 기본 통계, 선형 대수, 히스토그램 및 기타 내장 방법을 사용할 수 있습니다.

40. NumPy와 SciPy의 차이점은 무엇인가요?

a 이상적인 세상에서 NumPy에는 배열 데이터 유형과 가장 기본적인 작업(인덱싱, 정렬, 재구성, 기본 요소 기능 등)만 포함됩니다.

b. 모든 숫자 코드는 SciPy에 있습니다. 그러나 NumPy의 중요한 목표는 호환성이므로 NumPy는 이전 버전 중 하나에서 지원되는 모든 기능을 유지하려고 시도합니다.

c. 따라서 NumPy에는 SciPy에 더 적합하더라도 일부 선형 대수 함수가 포함되어 있습니다. 그럼에도 불구하고 SciPy에는 선형 대수 모듈의 모든 기능을 갖춘 버전과 기타 많은 수치 알고리즘이 포함되어 있습니다.

d. 과학 컴퓨팅에 Python을 사용하는 경우 NumPy 및 SciPy를 설치해야 합니다. 대부분의 새로운 기능은 NumPy가 아닌 SciPy에 속합니다.

41. 파이썬 프로그램의 중국어 출력 문제를 해결하는 방법은 무엇입니까?

인코드 및 디코드를 사용하세요. ) :

이름 오류 발생,"%s은(는) 유효한 파일 이름이 아닙니다."%Filename

bk=xlrd.open_workbook(파일 이름)

shxrange=range(bk.nsheets)

print shxrange

for x in shxrange:

p=bk.sheets()[x].name.encode('utf-8′)

print p.decode('utf-8′)

방법 2:

추가

reload( 시작 부분에 sys)

sys.setdefaultencoding('utf8′)

42 다음 코드를 읽어보세요. 출력은 무엇인가요?

클래스 A(객체):

def go(self):

print "go A go!" def stop(self):

print "stop A stop!" :

예외 발생("구현되지 않음")

class B(A):

def go(self):

super(B, self). go()

print "go B go!"

class C(A):

def go(self):

super(C, self). go()

print "go C go!"

def stop(self):

super(C, self). stop()

print "stop C stop!"

class D(B,C):

def go(self):

super(D, self). go()

print "go D go!"

def stop(self):

super(D, self). stop()

print "stop D stop!"

def Pause(self):

print "wait D wait!"

class E(B,C): pass

a = A()

b = B()

c = C()

d = D()

e = E()

# 다음 코드의 출력을 설명하세요

a.go()

b.go()

c.go()

d.go()

e.go()

a.stop()

b.stop()

c.stop()

d.stop()

e .stop()

a.pause()

b.pause()

c.pause()

d.pause()

e.pause()

답변, 출력 결과는 다음과 같이 표현됩니다. 댓글 형식 :

a.go()

# go A go!

b.go()

# go A go!

# go B go!

c.go()

# 가 가!

# 가 C 가!

d.go()

# 가 가!

# 가 C 가!

# 가 B 가!

# 가 D 가!

e. go()

# go A go!

# go C go!

# go B go!

a.stop()

# stop A stop!

b.stop()

# stop A 중지!

c.stop()

# 중지 A 중지!

# 중지 C 중지!

d.stop()

# 중지 A 중지!

# 중지 C 중지!

# 정지 정지!

e.stop()

# 정지 정지!

a.pause()#🎜 🎜#

# … 예외: 구현되지 않음

b.pause()

# … 예외: 구현되지 않음

c.pause ()

# … 예외: 구현되지 않음

d.pause()

# 잠깐만요!

e.pause()

# …예외: 구현되지 않음

43. Python에서 웹 브라우저 사용법을 소개합니까?

웹 브라우저 모듈은 웹 기반 문서를 표시하기 위한 고급 인터페이스를 제공하며 대부분의 경우 open() 메서드에 대한 간단한 호출만 필요합니다.

webbrowser는 다음 예외를 정의합니다:

Exception webbrowser.Error, 이 예외는 브라우저 컨트롤

webbrowser에 오류가 발생하면 발생합니다. 다음 방법은:

webbrowser.open(url[, new=0[,autoraise=1]])

이 방법은 기본 브라우저에 URL을 표시하는 것입니다. new = 0이면 URL이 동일한 브라우저 창에서 열립니다. new = 1이면 새 창이 열립니다. autoraise = true이면 창이 자동으로 열립니다. 자라다.

webbrowser.open_new(url)

URL을 표시하려면 기본 브라우저에서 새 창을 열고, 그렇지 않으면 전용 브라우저 창에서 URL을 엽니다#🎜 🎜## 🎜🎜#webbrowser.open_new_tab(url)

기본 브라우저에 URL을 표시하려면 새 탭을 엽니다. 그렇지 않으면 open_new()

webbrowser .get과 동일합니다. ([이름])

이름을 기준으로 브라우저 개체를 반환합니다. 이름이 비어 있으면 기본 브라우저를 반환합니다.

webbrowser.register(name, construtor[ ,instance])

name이라는 브라우저를 등록합니다. 이 브라우저 유형이 등록되어 있으면 get() 메소드를 사용하여 얻을 수 있습니다.

44. Python에서 list, tuple, dict, set의 차이점은 무엇이며 주로 어떤 시나리오에서 사용되나요?

정의:

list: 연결 목록, 정렬된 항목, 색인으로 검색, 대괄호 "[]" 사용;

#🎜 🎜# 튜플: 튜플은 다양한 개체를 결합하며 수정할 수 없습니다. 인덱스로 검색하고 대괄호 "()"를 사용하세요.

dict: 사전, 사전은 키( 키)와 값의 집합입니다. (값) 조합, 키로 검색 (키), 순서 없음, 중괄호 "{}" 사용

set: 설정, 순서가 지정되지 않음, 요소는 한 번만 표시됨, 자동으로 중복 항목을 제거하려면 "set" 사용 ([])";

애플리케이션 시나리오:

list, 간단한 데이터 수집, 인덱스를 사용할 수 있음;

튜플, 일부 데이터를 다음과 같이 사용 전체이며 수정할 수 없습니다.

dict, 키 값과 값을 사용하여 데이터 연결

set, 데이터는 한 번만 표시됩니다. 데이터가 표시되는지 여부에만 신경쓰세요. 위치

코드:

mylist = [1, 2, 3, 4, '오']

#🎜🎜 #mytuple = (1, 2 , '안녕하세요', (4, 5))

mydict = {'왕' : 1, '후' : 2, '리우' :4}#🎜🎜 #

myset = set (['Wang', 'Hu', 'Liu', 4,'Wang'])

45. 함수를 작성하고 문자열을 입력하면 결과가 역으로 반환됩니다. 순서: 예: string_reverse('abcdef'), 반환: 'fedcba'(여러 방법을 사용하여 구현하고 구현 방법을 비교하십시오).

답변: 5가지 방법 비교.

1은 -1입니다. 즉, 문자열의 앞뒤 문자 위치를 바꿉니다. #3. 한 번에 한 문자씩 출력합니다.

4. 확장왼쪽() 함수를 사용합니다. 루프, 왼쪽에서 오른쪽으로 출력

string = 'abcdef'

def string_reverse1(string):

# 🎜🎜#return string[:: -1]

def string_reverse2(string):

t= list(string)

l= len (t)

# 🎜🎜#for i,j in zip(range(l-1, 0, -1), range(l//2)):

t[i ], t[j] = t [j], t[i]

return "".join(t)

def string_reverse3(문자열):

if len(string ) <= 1:

return string

return string_reverse3(string[1:]) + string[0]

from collections import deque

def string_reverse4(string):

d= deque()

d.extendleft(string) # 🎜🎜#

return ''.join(d)

def string_reverse5(string):

#return ''.join(string[len(string) -i] for i in range( 1,len(string)+1))

return ''.join(string[i] for i in range(len(string)-1, -1 , -1))#🎜🎜 #

print(string_reverse1(문자열))

print(string_reverse2(문자열))

print(string_reverse3(문자열))

print(string_reverse4(string))

print(string_reverse5(string))

46은 무엇입니까? 사전? (복수 정답 가능)

a) d = {}

b) d = {"john": 40, "peter": 45 }# 🎜🎜#

c)d = {40: "john", 45: "peter"}

d)d = (40: "john", 45: "50" )# 🎜🎜#

정답: b, c, d. 키와 값을 지정하여 사전을 만듭니다.

47. 바닥 구분은 무엇인가요?

a) /

b)//

C) %

d) 언급되지 않음

에 대한 답은 다음과 같습니다. b) // 예: 5.0/2 = 2.5, 5.0//2 = 2

48. 식별자의 최대 길이는 얼마입니까?

a) 31자

b) 63자

c) 79자

d) 위에 해당되지 않음

답변: d) 위에 있는 식별자의 길이는 제한되지 않습니다.

49. 밑줄로 시작하는 지역 변수 이름을 권장하지 않는 이유는 무엇인가요?

a) 클래스의 개인 변수를 나타내는 데 사용됩니다.

b) 해석기를 혼란스럽게 합니다.

c) 전역 변수를 나타내는 데 사용됩니다.

d) 실행 속도가 느려집니다.

답: a) 사용됩니다. 클래스의 비공개 변수를 나타냅니다. Python에는 비공개 변수에 대한 개념이 없으므로 클래스 외부에서 액세스할 수 없는 변수를 나타내는 데 앞에 밑줄이 사용됩니다.

50. 다음 중 잘못된 설명은 무엇인가요?

a) abc = 1,000,000

b) a b c = 1000 2000 3000

c) a, b, c = 1000, 2000, 3000

d) a_b_c = 1,000,000

답변 :b) a b c = 1000 2000 3000 ; 변수 이름에는 공백이 허용되지 않습니다.

51. 아래 출력은 무엇입니까?

try:

if '1' != 1:

raise "someError"

else:

print("someError가 발생하지 않았습니다")

제외 "someError":

print("someError가 발생")

a) someError 발생

b) someError 발생 없음

c) 유효하지 않은 코드

d) 위의 해당 없음

답: c) 유효하지 않은 코드; 새로운 예외 클래스는 BaseException에서 상속되어야 합니다. 여기에는 그러한 상속이 없습니다.

52. list1이 [2,33,222,14,25]라고 가정하면 list1[-1]은 무엇입니까?

a) 오류

b) 아니요

c) 25

d) 2

답변: c) 25 인덱스 -1은 목록의 마지막 인덱스에 해당합니다.

53 쓰기를 위해 c:scores.txt 파일을 열려면 다음을 사용합니다.

a) outfile = open("c:scores.txt", "r")

b) outfile = open(" c :\scores.txt", "w")

c) outfile = 열기(파일 = "c:scores.txt", "r")

d) outfile = 열기(파일 = "c:\scores. txt" ", "o")

답변: b) 위치에 이중 슬래시($$, w가 포함되어 파일이 기록되고 있음을 나타냅니다.

54. 다음의 출력은 무엇입니까?

f = 없음

for i in range (5):

with open ("data.txt", "w") as f:

if i > 2:

break

print f.closed

a ) True

b )False

c)None

d)Error

답변: a)True; 열려 있는 파일과 함께 사용하면 WITH 문은 with 블록이 종료될 때 파일 개체가 닫히도록 합니다.

55. try-제외-else의 else 부분은 언제 실행되나요?

a) 항상

b) 예외가 발생하는 경우

c) 예외가 발생하지 않는 경우

d) 블록을 제외하고 예외가 발생하는 경우

답변: c) 예외가 발생하지 않는 경우 else를 실행합니다. 부분.

56.a=1, b=2, a와 b의 값을 교환하기 위해 중간 변수를 사용하지 마세요.

두 가지 형식: 추가 또는 XOR; 코드:

a = 1

b = 2

a = a + b

b = a - b

a = a - b

print (' a = {0}, b = {1}'.format(a,b))

a = a ^ b

b = a ^ b

a = a ^ b

print ('a = {0 }, b = {1}'.format (a, b))

57. 인쇄 결과를 적어주세요

x = [0, 1]

i = 0

i, x[i] = 1, 2

print(x)

인쇄 결과: [0, 2], 파이썬은 왼쪽에서 오른쪽으로 연속 할당을 사용할 수 있습니다.

g = 람다 x, y=2, z : x + y**z

g(1, z=10) = ?

인쇄 결과: 예외, 기본 매개변수는 형식 끝에서만 찾을 수 있습니다. 매개변수 목록, z는 필수입니다. 기본 매개변수가 제공됩니다.

58. Python의 싱글턴 패턴

싱글턴 패턴은 일반적으로 사용되는 소프트웨어 디자인 패턴입니다. 핵심 구조에는 싱글톤 클래스라는 특수 클래스가 하나만 포함되어 있습니다. 싱글톤 모드에서는 시스템에 클래스의 인스턴스가 하나만 있고 해당 인스턴스에 외부 세계에서 쉽게 액세스할 수 있으므로 인스턴스 수를 쉽게 제어하고 시스템 리소스를 절약할 수 있습니다. 특정 클래스의 객체 하나만 시스템에 존재하도록 하려면 싱글톤 패턴이 가장 좋은 솔루션입니다.

__new__()는 __init__()보다 먼저 호출되며 인스턴스 객체를 생성하는 데 사용됩니다. 이 메소드의 특성과 클래스 속성을 이용하여 디자인 패턴의 싱글톤 패턴을 구현할 수 있다. 싱글톤 모드는 고유한 개체를 만드는 것을 의미합니다. 싱글톤 모드로 설계된 클래스는 인스턴스화만 가능합니다. 면접관님이 손으로 쓰라고 하신 방법은 1~2번 꼭 기억하세요.

__new__ 메소드 사용

class Singleton(object):
def __new__(cls, *args, **kw):
hasattr(cls, '_instance')가 아닌 경우:
orig = super(Singleton, cls)
cls ._instance = orig.__new__ (cls, *args, **kw)
return cls._instance
class MyClass (Singleton):
a = 1

공유 속성

인스턴스 생성 시 모든 인스턴스의 __dict__를 입력합니다. 동일한 사전이므로 동일한 속성과 메서드를 갖습니다.

class Borg(객체):

_state = {}

def __new__(cls, *args, **kw):

ob = super(Borg, cls). __new__(cls, *args, **kw)

ob.__dict__ = cls._state

return ob

class MyClass2(Borg):

a = 1

Decorator 버전

def 싱글턴(cls):

# 🎜🎜#instances = {}

def getinstance(*args, **kw):

cls가 인스턴스에 없는 경우:

instances [ cls] = cls(*args, **kw)

return 인스턴스[cls]

return getinstance

@singleton

# 🎜🎜#class MyClass:

import method

파이썬 모듈로서 자연스러운 싱글톤 모드입니다

#🎜 🎜## mysingleton.py

class My_Singleton(객체):

def foo(self):

pass

#🎜🎜 #my_singleton = my_singleton ()### ## ## mysingleton에서#🎜🎜 ## 🎜🎜##############my_singleton.foo ()#####################

59. A와 B는 각각 두 개의 섬에 있습니다. B는 아프고 A는 B에게 필요한 약을 가지고 있습니다. C에는 보트와 잠글 수 있는 상자가 있습니다. C는 A와 B 사이에서 물건을 운반할 의향이 있지만 물건은 상자에만 넣을 수 있습니다. 상자의 잠금이 해제되어 있는 한, C는 상자 안에 무엇이 들어있든 상관없이 상자의 내용물을 훔칠 것입니다. A와 B가 각각 자신의 자물쇠만 열 수 있는 자물쇠와 열쇠를 가지고 있다면 A는 어떻게 B에게 물건을 안전하게 전달해야 할까요?

답: A씨는 상자에 약을 넣고 자물쇠로 상자를 잠급니다. B는 상자를 얻은 후 상자에 자신의 자물쇠를 추가합니다. 상자가 A에게 다시 배송된 후 A는 자신의 자물쇠를 제거합니다. 상자가 B에게 전달되자 B는 자신의 자물쇠를 풀고 약을 획득한다.

60. 속도가 서로 다른 25마리의 말이 있지만 각 말의 속도는 고정된 값입니다. 이제 트랙은 5개만 있고 시간을 측정할 방법이 없습니다. 즉, 각 경주에서 최대 5마리의 말의 상대 속도만 알 수 있습니다. 25마리의 말 중에서 가장 빠른 말 3마리를 찾기 위한 최소 경주 횟수는 얼마입니까?

답변: 모든 말은 최소한 한 번은 출전 기회를 가져야 하기 때문에 25마리의 말이 5개 그룹으로 나누어져 경기가 불가피합니다. 다음 챔피언을 찾는 것은 쉬울 것입니다. 각 그룹의 챔피언은 한 게임(6번째 게임) 동안 함께 플레이할 수 있습니다. 마지막으로 2위와 3위를 찾는 일이다. 6번째 게임에서 얻은 순위에 따라 처음 5개 게임에 속했던 그룹을 A, B, C, D, E로 명명했습니다. 즉, 그룹 A의 챔피언은 6차 경주의 1위이고, 그룹 B의 챔피언은 6차 경주의 2위입니다. 각 그룹의 5마리의 말은 이전 경주에 따라 가장 빠른 말부터 느린 말까지 번호가 매겨져 있습니다. 결과: # 🎜🎜#

그룹 A: 1, 2, 3, 4, 5

그룹 B: 1, 2, 3, 4, 5

C조: 1, 2, 3, 4, 5

D조: 1, 2, 3, 4, 5

E조: 1, 2, 3, 4 , 5# 🎜🎜#지금 가지고 있는 정보를 보면 어떤 말이 3위에서 제외되었는지 알 수 있습니다. 3마리 이상의 말이 이 말보다 빠르다고 판단되면 해당 말은 제거됩니다. 위 표에서 굵은 파란색으로 표시된 5마리의 말만이 2위 또는 3위가 될 수 있음을 알 수 있다. 즉, A조에서는 2위와 3위, B조에서는 1위와 2위, C조에서는 1위를 차지합니다. 7번째 게임에서는 이 5마리의 말을 가져가십시오. 7번째 게임에서 상위 2마리가 25마리의 말 중 2위와 3위가 됩니다. 따라서 총 7개의 게임이 있습니다.

# 🎜 🎜#




#🎜 🎜#



위 내용은 60개의 Python 인터뷰 질문 및 답변이 선택되었습니다! 새해에 일자리를 구할 때 꼭 읽어야 할 책의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.