메모리 할당 문제에 대하여
새로 정의된 문자열 변수는 기본적으로 새로운 메모리 공간을 엽니다
목록, 튜플 또는 사전과 같은 다른 유사한 인덱스는 실제로 값을 할당할 뿐입니다. 변수 이름은 아래와 같이 동일한 주소 공간을 가리킵니다.
1 ##문자열의 새로운 정의는 새로운 메모리 공간을 엽니다 2 >>> str1 = 'hoho' 3 >> ;> str2 = str1 4 >>> id(str1),id(str2) # 메모리 객체 주소를 보고, 메모리 주소를 관찰합니다. 즉, str2가 메모리 공간 5를 새로 열었습니다. (140297199501752) #여기서 같은 내용이 나타나는 이유는 Python의 내부 메커니즘 때문입니다. 문자열이 충분히 크면 다를 것이므로 걱정하지 마세요. ' 7 >>> str1 8 'hoho' 9 >> str210 'heihei'11 >>> id(str1),id(str2) # 메모리 주소가 변경되었는지 확인하세요. 140297199501752, 140297214622552) 13 14 ##목록, Tuple과 같은 비문자 장치는 사전 할당 정의 후에 실제로 새 변수 이름(레이블로 이해될 수 있음)을 동일한 메모리 주소로 가리키고 사전을 예를 들어 아래와 같습니다. 15 >>> dic1 = {'name':'hoho' }16 >>> dic2 = dic117 >>> id(dic1),id(dic2)18 140297199190088, 140297199190088)19 >>> dic1 = {'name':'hoho'} 20 >>> dic2 = dic121 >>> 메모리 객체 주소가 동일한 것을 확인하여 dic2를 수정합니다. 실제로 dic1도 수정되었습니다. 22 (140297199191752)23 >>> dic2['name'] = 'heihei'24 > >> dic225 {'name': 'heihei'}26 >>> dic127 {'name': ' heihei'}
목록 복사 문제 , 튜플 및 딕셔너리(얕은 복사 및 깊은 복사 복사 모듈 사용)
1. 목록 및 튜플 슬라이싱을 사용하여 얕은 복사를 구현하거나 복사 모듈을 사용하여 얕은 복사(사전 포함)를 사용할 수 있습니다.
2. copy.deepcopy()를 사용하여 전체 복사
1 >>> import copy 2 >>> >> list1 4 >>> list2[0] = 2 #list2가 그에 따라 변경됩니다. 5 >> list1 6 [2, 2] 7 >> = list1[:] #복잡성이 낮음, 배열 슬라이싱을 사용하여 얕은 복사 수행 8 >>> list3 = copy.copy(list1) 9 >>> list3) #여기서 주소 공간이 다른 것을 볼 수 있습니다10 (140297199250696, 140297199247560)11 >>>
12 >>> list4 = [1,[2]] ##복잡한 구조 깊은 복사를 사용해야 합니다 13 >>> list5 = list4[:]14 >>> list515 [1, [2 ]]16 >>> >> list418 [1, [6]] # 여기에서 내부 목록이 복사되지 않았으며 list4도 복사되지 않았음을 알 수 있습니다. 19 >>> list6 = copy.deepcopy(list4) #깊은 복사 여기서는 20 >>> list6[1][0] = 821 >>> list622 [1, [ 8]]23 >>> list424 [1, [6]] #여기 복사된 내용을 확인할 수 있습니다
자주 사용하는 내장 함수
파이썬에는 내장 함수가 많다는 것만 기억하세요. 사용한 함수도 있지만 어떤 내장 함수가 있는지 확인하는 방법도 알 수 있습니다. 함수의 도움말
보통 3단계로 나누어집니다
유형(변수) -- -> 변수가 속한 클래스를 가져옵니다.
dir(클래스 이름) ---> 클래스에서 사용할 수 있는 메서드가 무엇인지 확인합니다. 그 중 __abs__와 같이 이중 밑줄로 시작하는 메서드는 일반적으로 다음과 같습니다. as: __abs__ abs()
help (클래스 이름 또는 함수 이름) ---> 클래스 아래에서 함수 사용법을 보거나
플라스틱
1 >>> s,y = divmod(7,3) ## divmod는 데이터를 반환하며 값은 (몫, 나머지)입니다. 페이징 2에 사용됨 s,y3 (2, 1)4 >>> a = -25 >>abs(-2) #abs는 절대값 6 27 > >>len (str(-2)) #속도 길이 8 2 가져오기
코드 보기
부동 소수점
1 >> a = 7.02 >>> divmod(a,3)3 (2.0, 1.0)4 >>a = 7.2355 >> (2) #6 7.247로 반올림 >>> a.__trunc__() #8 7로 반올림
코드 보기
문자열
1 >>> str1 = '이것은 문자열입니다' 2 >>> str1의 'is'입니다 #회원 판단 3 참 4 >>> str1[1:3] # 슬라이싱 연산 및 인덱스 5 'hi' 6 >> len(str1) #Length 7 16 8 >> str1.find('is') ;> str1.find('is',3, 9)11 512 >>> str1.find('iss') # 찾을 수 없으면 -1을 반환하고, 인덱스이면 오류 13이 보고됩니다. -114 >> 'is',3)15 516 >>> str1.index('iss')17 역추적(최근 호출 마지막):18 파일 "", 1행, 19 ValueError: 하위 문자열을 찾을 수 없음20 > aaa'25 >>> str1.rstrip()26 ' aaa'27 >>> str1 = 'duiqi' #정렬 작업 28 >>> str1.ljust(20)29 'duiqi ' 30 > >>str1.ljust(20,'*')31 'duiqi******************'32 >>>str1.rjust(20,' *')33 '********************duiqi'34 >>> str1.center(20,'*')35 '****** ******duiqi* *******'36 >>> str1 = '이것은 문자열입니다'37 >>> str1.split() ##분할 연산 38 [' this', 'is', ' a', 'string']39 >>> str1.splitlines()40 ['이것은 문자열입니다']41 >>> 3]42 >>> '->'.join([str(i) for i in list1]) #연결 작업 43 '1->2->3'44 >>> str145 '이것은 문자열입니다'46 >>> str1.count('is') #Count 47 248 >>> str1.replace('is','os') #Replace 49 'thos os a string'50 >> > str1.replace('is','os',1) #바꾸기, 1 51 'thos는 문자열입니다'52 53 str1.startswith('sub') #시작하는 내용 with 54 str1.endswith(' sub') #55 str1.lower()로 끝나는 것 #소문자로 변환 56 str1.upper() #대문자로 변환
코드 보기
목록 및 튜플(그룹은 수정할 수 없음)
1 >>> lst1 = ['a'] 2 >>> Append('b') #New 추가 3 >>> lst1 4 ['a', 'b'] 5 >>> lst2 = ['c','d'] 6 >> > lst1.extend(lst2) # 확장된 신규 7 >>> lst1 8 ['a', 'b', 'c', 'd'] 9 >>lst1.insert(0, 'z') #10개 삽입 >>> lst111 ['z', 'a', 'b', 'c', 'd']12 >>>lst1.pop() #제거 end 13 'd'14 >> lst115 ['z', 'a', 'b', 'c']16 >>> lst1.remove('z') #지정된 요소를 삭제합니다. 17 >>> lst118 [ 'a', 'b', 'c']19 >> lst1 = ['a', 'b', 'c', 'd']20 > >> lst2 = lst1.copy () # python3의 얕은 복사본에는 21개가 있습니다. >>> lst2 = lst1.copy()22 >>> lst223 ['a', 'b', 'c ', 'd']24 >> lst2.clear() #목록 25 지우기 >>> lst129 ['d', 'c' , 'b', 'a']30 >>> lst1.sort() #Sort31 >>> lst132 ['a', 'b', 'c ', 'd']33 >>> lst1.append('a')34 >>> lst1.count('a') #Count 35 236 >>> ', 'b', 'c', 'd', 'a']38 >>> len(lst1) #길이 39 540 >>> lst1.index('a') #Index 41 042 >>> lst1 .index('a',1) #Index 43 4
코드 보기
사전
1 >>> dic1 = {'key1' : 'a','key2' : 'b'} 2 >>> dic1.get('key1') #사전 값을 가져옵니다. no 기본 반환은 None입니다. 3 'a' 4 >>> dic1.get('key3') 5 >>> dic1.items() 6 dict_items([('key2' , ' b'), ('key1', 'a')]) #Return 튜플 목록 7 >>> list(dic1.items()) 8 [('key2', 'b'), (' key1 ', 'a')] 9 >>> dic1.keys() #반환 키 목록 10 dict_keys(['key2', 'key1'])11 >>dic1.values() # 반환 값 목록 12 dict_values(['b', 'a'])13 >>> dic2 = dic1.copy() #Shallow copy 14 >>> dic215 {'key2': 'b', ' key1': 'a'}16 >>> dic1['key3'] = 'c' #할당(수정)17 >>> dic118 {'key2': 'b', 'key1' : 'a', 'key3': 'c'}19 >>> dic1.pop('key1') #지정된 키20 삭제 'a'21 >>> dic122 {'key2': ' b ', 'key3': 'c'}23 >>> dic1.get('key1','a') #값, no 'a'24 'a'25 >>> 'key2': 'b', 'key3': 'c'}27 >>> dic1.setdefault('key1','a') # 기본값 설정(쓸데없어 보임) 28 'a'29 > >> dic130 {'key2': 'b', 'key1': 'a', 'key3': 'c'}31 >>> dic3 = {'name':'update'}32 > ;>> dic1.update(dic3) #Update 33 >>> dic1 34 {'key2': 'b', 'name': 'update', 'key1': 'a', 'key3' : 'c'}35 >>> del dic3 #삭제 36 >>> dic137 {'key2': 'b', 'name': 'update', 'key1': 'a', ' key3': 'c'}38 >>> len(dic1) #Length 39 4
코드 보기
위 내용은 Python 기본 내용입니다. 관련 기사는 PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!

Python은 배우고 사용하기 쉽고 C는 더 강력하지만 복잡합니다. 1. Python Syntax는 간결하며 초보자에게 적합합니다. 동적 타이핑 및 자동 메모리 관리를 사용하면 사용하기 쉽지만 런타임 오류가 발생할 수 있습니다. 2.C는 고성능 응용 프로그램에 적합한 저수준 제어 및 고급 기능을 제공하지만 학습 임계 값이 높고 수동 메모리 및 유형 안전 관리가 필요합니다.

Python과 C는 메모리 관리 및 제어에 상당한 차이가 있습니다. 1. Python은 참조 계산 및 쓰레기 수집을 기반으로 자동 메모리 관리를 사용하여 프로그래머의 작업을 단순화합니다. 2.C는 메모리 수동 관리가 필요하므로 더 많은 제어를 제공하지만 복잡성과 오류 위험을 증가시킵니다. 선택할 언어는 프로젝트 요구 사항 및 팀 기술 스택을 기반으로해야합니다.

과학 컴퓨팅에서 Python의 응용 프로그램에는 데이터 분석, 머신 러닝, 수치 시뮬레이션 및 시각화가 포함됩니다. 1.numpy는 효율적인 다차원 배열 및 수학적 함수를 제공합니다. 2. Scipy는 Numpy 기능을 확장하고 최적화 및 선형 대수 도구를 제공합니다. 3. 팬더는 데이터 처리 및 분석에 사용됩니다. 4. matplotlib는 다양한 그래프와 시각적 결과를 생성하는 데 사용됩니다.

Python 또는 C를 선택할 것인지 프로젝트 요구 사항에 따라 다릅니다. 1) Python은 간결한 구문 및 풍부한 라이브러리로 인해 빠른 개발, 데이터 과학 및 스크립팅에 적합합니다. 2) C는 컴파일 및 수동 메모리 관리로 인해 시스템 프로그래밍 및 게임 개발과 같은 고성능 및 기본 제어가 필요한 시나리오에 적합합니다.

Python은 데이터 과학 및 기계 학습에 널리 사용되며 주로 단순성과 강력한 라이브러리 생태계에 의존합니다. 1) 팬더는 데이터 처리 및 분석에 사용되며, 2) Numpy는 효율적인 수치 계산을 제공하며 3) Scikit-Learn은 기계 학습 모델 구성 및 최적화에 사용되며 이러한 라이브러리는 Python을 데이터 과학 및 기계 학습에 이상적인 도구로 만듭니다.

하루에 2 시간 동안 파이썬을 배우는 것으로 충분합니까? 목표와 학습 방법에 따라 다릅니다. 1) 명확한 학습 계획을 개발, 2) 적절한 학습 자원 및 방법을 선택하고 3) 실습 연습 및 검토 및 통합 연습 및 검토 및 통합,이 기간 동안 Python의 기본 지식과 고급 기능을 점차적으로 마스터 할 수 있습니다.

웹 개발에서 Python의 주요 응용 프로그램에는 Django 및 Flask 프레임 워크 사용, API 개발, 데이터 분석 및 시각화, 머신 러닝 및 AI 및 성능 최적화가 포함됩니다. 1. Django 및 Flask 프레임 워크 : Django는 복잡한 응용 분야의 빠른 개발에 적합하며 플라스크는 소형 또는 고도로 맞춤형 프로젝트에 적합합니다. 2. API 개발 : Flask 또는 DjangorestFramework를 사용하여 RESTFULAPI를 구축하십시오. 3. 데이터 분석 및 시각화 : Python을 사용하여 데이터를 처리하고 웹 인터페이스를 통해 표시합니다. 4. 머신 러닝 및 AI : 파이썬은 지능형 웹 애플리케이션을 구축하는 데 사용됩니다. 5. 성능 최적화 : 비동기 프로그래밍, 캐싱 및 코드를 통해 최적화

Python은 개발 효율에서 C보다 낫지 만 C는 실행 성능이 높습니다. 1. Python의 간결한 구문 및 풍부한 라이브러리는 개발 효율성을 향상시킵니다. 2.C의 컴파일 유형 특성 및 하드웨어 제어는 실행 성능을 향상시킵니다. 선택할 때는 프로젝트 요구에 따라 개발 속도 및 실행 효율성을 평가해야합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
