- Call by Value Call by Vallue는 메소드를 호출할 때 값을 넘겨주기 때문에 Pass by Value라고도 한다. Call by value(값에 의한 호출)는 인자로 받은 값을 복사하여 처리를 한다. 메소드를 호출하는 호출자(Caller)의 변수와 호출 당하는 수신자(Callee)의 파라미터는 서로 다른 변수다. * 메소드 내 값을 변경해도 원본 값은 반영되지 않는다.
- Call by Reference Call by Reference는 참조(주소)를 직접 전달하며, Pass by Reference라고도 한다. 참조를 직접 넘기기 때문에 호출자의 변수와 수신자의 파라미터는 완전 동일 변수다. * 메소드 내에 파라미터를 수정하면 그대로 원본 변수에도 반영된다.
기본 자료형 : call by value 로 동작 (int, short, long, float, double, char, boolean) 참조 자료형 : call by reference 로 동작 (Array, Class Instance)
a = [] 비어있는 리스트 # a = list()로 생성 가능 b = [1,2,3] 숫자를 요소값으로 가지는 리스트 c = ['life','is','too','short'] 문자열을 요소값으로 가지는 리스트 d = [1,2,'life','is'] 숫자, 문자열을 함께 요소값으로 가진 리스트 e = [1,2,['life','is']] 숫자, 리스트를 요소값으로 가진 리스트
* 어떤 값(자료형)이라도 요소로 가질 수 있다.
- 리스트 인덱싱
예시 1)
** a의 첫번째 요소 a[0] = 1 , a[2] = 3으로 연산이 가능하며 4가 출력된다.
예시 2)
** 리스트 a에 숫자 1,2,3 뿐만 아닌 다른 리스트 ['a', 'b', 'c']를 포함하였으며 인덱스 값에 맞춰 출력된다.
** a[-1]은 마지막 요소값인 리스트 ['a', 'b', 'c']를 출력
- 리스트에 내용 중 원하는 값 가져오기 예시)
예시 1)
** a[3]은 ['a', 'b', 'c'] 리스트를 가르키며 [0]을 통해 해당 리스트의 첫 번째 요소값을 불러 올 수 있다.
예시 2)
** 3중 리스트도 예시1과 동일. 다만 리스트를 다중 중첩해서 사용하는 것은 혼란스러울 수 있어 자주 사용하지 않음
- 리스트 슬라이싱
예시)
** 문자열의 슬라이싱과 사용방법은 동일하다.
- 중첩된 리스트에서 슬라이싱
예시)
** a[2:5]는 index 0부터 시작할 때 2의 값은 3이되며, 5의 값은 4를 나타낸다.
- 리스트 연산하기
1. 리스트 더하기(+)
예시)
** 리스트 사이에스 + 는 2개의 리스트를 합치는 기능을 한다 // 문자열에서 "abc"+"def" = "abcdef"가 된다.
2, 리스트 반복하기(*)
예시)
** [1,2,3]가 3번 반복되어 출력
3. 리스트 길이 구하기
예시)
** len() 사용, 리스트외 듀플, 딕셔너리에도 사용 가능
※ 리스트 연산 오류 체크 a = [1, 2, 3] a[2] + "hi" 위 값을 입력할 경우 오류가 발생한다. >>TypeError: unsupported operand type(s) for +: 'int' and 'str'
a[2]는 정수인데 "hi"는 문자열이다. 정수와 문자열은 서로 더할 수 없기 때문에 오류가 발생한 것이다.
정수를 문자열로 바꾸기 위해선 아래와 같이 수정이 필요하다 str(a[2]) + "hi"
위와 같이 수정하면 3hi 가 정상적으로 출력된다.
** str은 정수나 실수를 문자열로 바꿔주는 파이썬 내장 함수이다.
- 리스트의 수정과 삭제
1. 리스트 값 수정
예시)
** index 2의 값인 3이 4로 변경되어 출력
2. 리스트 값 삭제
예시)
** del 함수를 사용하여 index 1의 값인 2가 삭제 되어 1, 3 출력
** del[x] 는 x 번째 요소값 삭제 // del 객체(파이썬에 사용되는 모든 자료형) 로 사용
3. 리스트 슬라이싱 삭제
예시)
** a[2:]에 해당하는 리스트 요소인 [3,4,5] 삭제 후 출력
- 리스트 관련 함수
1. 리스트 요소 추가(append)
예시)
** append는 '덧붙이다. 첨부하다'란 뜻으로 리스트 안에 리스트도 추가할 수 있다.
2. 리스트 정렬(sort)
예시)
** 알파벳, 한글도 정렬 가능(ascii코드로 인해 가능/A~Z, a~z 숫자 부여)
3. 리스트 뒤집기/역순 출력(reverse)
예시)
** reverse함수는 출력된 리스트를 역순으로 출력한다.
** 요소를 순서대로 정렬한 후 역순 출력이 아닌 현재 리스트의 역순 출력이다.
4. 인덱스 반환(index)
예시)
** index() 함수는 리스트에 값이 있으면 해당 인덱스의 값(위치 값)을 리턴
** index() 값이 없는 경우 오류 발생
5. 리스트에 요소 삽입(insert)
예시)
** insert(a,b)는 리스트의 a 번쨰 위치에 b를 삽입하는 함수
** a.insert(0,'하')는 0번째 위치에 하 추가, a.insert(2,'창')은 2번쨰 위치에 창 추가하여 출력
6. 리스트 요소 제거(remove)
예시)
** a가 3이라는 값을 2개 가지고 있을 경우 첫번째 3만 제거 된다.
** a.remove(3)을 한번 더 실행해야 3이 완전 삭제된다.
예시)
7. 리스트 요소 꺼내기(pop)
pop() 함수는 리스트의 맨 마지막 요소를 리턴하고 해당 요소는 삭제한다.
예시)
예시2)
** a 리스트를 살펴보면 마지막 요소인 3을 삭제하고 [1,2]만 남아 출력
** pop() 괄호안에 매개변수로 index 값을 넣을 경우 해당 값을 뽑아 낸후 삭제/없는 경우에는 마지막값 뽑아낸 후 삭제
예시)
** a.pop(1)은 a리스트의 index 1 값이며, 리스트 안의 2이다. a 출력 시 2가 삭제된 [1,3]만 출력
8. 리스트에 포함된 요소 x의 개수 세기(count)
예시)
**count(x)는 리스트의 요소안에 x가 몇개인지 세어 리턴 // 1이라는 값이 리스트 내에 2개가 있어 2 리턴
9. 리스트 확장(extend)
예시 1)
** extend(x)에서 x에는 리스트만 올 수 있으며, 기존 a 리스트에 x 리스트를 더하게 된다.
1. "Python's favorite food is perl"(소유격)
1. 출력
"Python's favorite food is perl"
2. '"Python is very easy." he says."' (인용문)
2. 출력
'"Python is very easy." he says."'
* 여러줄 입력할 때 """, ''' 사용
예시)
* print를 사용하지 않고 muliline만 찍을 경우\n으로 표시되기 때문에 print()통해 출력 필요
▶ 구글 > 파이썬 검색 > 파이썬 다운 후 설치 > 필요한 패키지 및 모듈은 필요 시 마다 다운하여 사용 ㄴ https://www.python.org/downloads/ > 3.12.3 다운 - pip(패키지 및 모듈 인스톨 가능) install jupyter - 설치완료 후 >>> jupyter notebook