2019년 최신 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 상속을 통해 한 클래스는 다른 클래스의 모든 멤버(예: 속성 및 메서드)를 얻을 수 있습니다. 상속은 코드 재사용성을 제공하므로 애플리케이션을 더 쉽게 만들고 유지 관리할 수 있습니다. 우리가 상속받은 클래스를 슈퍼클래스라고 하고, 상속받은 클래스를 파생/하위클래스라고 합니다. 다음은 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 = '가자' 16. Python을 종료할 때 모든 메모리 할당이 해제됩니까? 17. Python에서 search()와 match()의 차이점은 무엇인가요? 18. Python에서 목록의 항목을 무작위로 추출하는 방법은 무엇입니까? 아래 예시를 고려하세요. shuffle(x) 19. 파이썬에서 컴파일하고 링크하는 과정은 어떻게 되나요? 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의 //, % 및 ** 연산자를 설명하세요.//연산자는 다음을 수행합니다. 바닥 나누기( 나누기)는 결과의 정수 부분을 반환합니다. 30. 파이썬에서는 10진수 외에도 2진수, 8진수, 16진수를 사용할 수 있습니다. 사전의 모든 키를 얻으려면 키()를 사용하세요 >>>mydict={'a':1,'b':2,'c':3,'e':5} >>> mydict.keys() dict_keys(['a', 'b', 'c', 'e']) 두 가지 방법이 있습니다: >>> a,b,c=3,4,5 #이것은 3,4 및 5를 각각 a, b 및 c에 할당합니다 >> > a=b=c=3 #이것은 a,b 및 c 먼저 캡슐화를 살펴보겠습니다: >>> mytuple=3,4,5>>> mytuple (3, 4, 5) 이것은 3, 4입니다. ,5는 튜플 mytuple에 캡슐화됩니다. 이제 이 값을 변수 x, y, z로 압축 해제합니다. >>> x,y,z=mytuple>>> 12. 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'), } } 다음 URL 형식을 사용하세요. http://webcache.googleusercontent.com/search?q=cache:URLGOESHERE "URLGOESHERE"를 캐시가 있는 페이지나 사이트의 올바른 웹 주소로 바꾸세요. 검색하고 시간을 확인하고 싶습니다. 예를 들어 edureka.co의 Google Webcache 시대를 보려면 다음 URL을 사용합니다: http://webcache.googleusercontent.com/search?q=cache:edureka.co 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′) 클래스 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()#🎜 🎜# 43. Python에서 웹 브라우저 사용법을 소개합니까? 44. Python에서 list, tuple, dict, set의 차이점은 무엇이며 주로 어떤 시나리오에서 사용되나요? 정의: #🎜 🎜# 튜플: 튜플은 다양한 개체를 결합하며 수정할 수 없습니다. 인덱스로 검색하고 대괄호 "()"를 사용하세요. dict: 사전, 사전은 키( 키)와 값의 집합입니다. (값) 조합, 키로 검색 (키), 순서 없음, 중괄호 "{}" 사용 set: 설정, 순서가 지정되지 않음, 요소는 한 번만 표시됨, 자동으로 중복 항목을 제거하려면 "set" 사용 ([])"; 애플리케이션 시나리오: list, 간단한 데이터 수집, 인덱스를 사용할 수 있음; 튜플, 일부 데이터를 다음과 같이 사용 전체이며 수정할 수 없습니다. dict, 키 값과 값을 사용하여 데이터 연결 set, 데이터는 한 번만 표시됩니다. 데이터가 표시되는지 여부에만 신경쓰세요. 위치 코드: mylist = [1, 2, 3, 4, '오'] myset = set (['Wang', 'Hu', 'Liu', 4,'Wang']) 답변: 5가지 방법 비교. 1은 -1입니다. 즉, 문자열의 앞뒤 문자 위치를 바꿉니다. #3. 한 번에 한 문자씩 출력합니다. # 🎜🎜#return string[:: -1] def string_reverse2(string): t= list(string) l= len (t) 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))#🎜🎜 # 46은 무엇입니까? 사전? (복수 정답 가능) c)d = {40: "john", 45: "peter"} d)d = (40: "john", 45: "50" )# 🎜🎜# 47. 바닥 구분은 무엇인가요? b)// 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): 공유 속성 인스턴스 생성 시 모든 인스턴스의 __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): # 🎜🎜#class MyClass: … import method 파이썬 모듈로서 자연스러운 싱글톤 모드입니다 #🎜🎜 #my_singleton = my_singleton ()### ## ## mysingleton에서#🎜🎜 ## 🎜🎜##############my_singleton.foo ()##################### 답: A씨는 상자에 약을 넣고 자물쇠로 상자를 잠급니다. B는 상자를 얻은 후 상자에 자신의 자물쇠를 추가합니다. 상자가 A에게 다시 배송된 후 A는 자신의 자물쇠를 제거합니다. 상자가 B에게 전달되자 B는 자신의 자물쇠를 풀고 약을 획득한다. 답변: 모든 말은 최소한 한 번은 출전 기회를 가져야 하기 때문에 25마리의 말이 5개 그룹으로 나누어져 경기가 불가피합니다. 다음 챔피언을 찾는 것은 쉬울 것입니다. 각 그룹의 챔피언은 한 게임(6번째 게임) 동안 함께 플레이할 수 있습니다. 마지막으로 2위와 3위를 찾는 일이다. 6번째 게임에서 얻은 순위에 따라 처음 5개 게임에 속했던 그룹을 A, B, C, D, E로 명명했습니다. 즉, 그룹 A의 챔피언은 6차 경주의 1위이고, 그룹 B의 챔피언은 6차 경주의 2위입니다. 각 그룹의 5마리의 말은 이전 경주에 따라 가장 빠른 말부터 느린 말까지 번호가 매겨져 있습니다. 결과: # 🎜🎜# 그룹 B: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!
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
#🎜 🎜#