chap.05 함수
(1) 함수란?
:특정 작업을 수행하는 명령어들의 모음에 이름을 붙인 것
함수 정의
def 함수이름(매개변수1,매개변수2):
명령문1
명령문2
(2) 디폴트 인수
-파이썬에서는 함수의 매개변수가 기본 값을 가질 수 있음.
(3) 키워드 인수
매개변수의 위치가 달라도 됨. 이름만 같으면 , 키워드 인수 뒤에 그냥 인수는 나올수 없음.
(4) 가변 인수
가변인수: 함수에 전달하는 값이 몇개인지 모를때 사용
*연산자로 언패킹
*args 와 같은 *매개변수를 사용--> 가변 길이 인수를 함수에 전달 가능 ,but 키워드 인수는 전달 불가
**args와 같은 이중 별표 사용 --> 가변 길이 키워드 인수 나타냄 . 인수는 딕셔너리 형태로 전달됨.
*와**를 이용해 언패킹하는 언패킹 연산자는 객체의 값을 포장해제하는 연산자이다.
(5) 여러개의 값 반환하기
(6) 순환
팩토리얼 구현 함수
나무를 그리는 프랙탈 프로그램 작성하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import turtle def drawTree(branch,t): if branch>5: t.forward(branch) t.right(20) drawTree(branch-15,t) t.left(40) drawTree(branch-15,t) t.right(20) t.backward(branch) def main(): t=turtle.Turtle() window = turtle.Screen() t.left(90) t.up() t.backward(200) t.down() t.color("green") drawTree(100,t) window.exitxxonclick() main() | cs |
(7) 변수의 범위
함수안에서 전역변수를 변경하면 변경안됨.
전역변수의 값을 함수 안에서 변경하고싶으면 -->global키워드 사용
chapter.06 파이썬 자료구조1(리스트)
리스트는 항목들을 저장하는 컨테이너로서 그 안에 항목들이 순서를 가지고 저장된다. 리스트는 항목의 개수가 증가하면 자동으로 늘어난다. 어떠한 타입도 저장 가능.
1.리스트 만들기
대괄호 이용
2.항목 접근
-항목의 인덱스 이용 0부터 시작,-1이면 맨 마지막 항목.
리스트길이 확인 len(리스트 이름)
3.리스트 방문
4.동시에 두개 리스트 방문
zip()함수는 2개의 리스트를 받아서 항목 두개를 묶어서 제공
5.리스트 연산들
-append()
:새로운 요소를 리스트의 맨 끝에 추가함.
-insert(인뎃 번호, 항목)
:지정된 위치에 요소 추가
6.리스트 탐색하기
특정 항목 찾는 법
list.index(찾는 항목) = 반환값은 항목 위치 인덱스값
7.요소 삭제하기
list 의 1번째 인덱스값을 삭제하여 반환.
함수는 지정요소를 입력하면 이 요소를 인덱스에서 삭제하고 반환은 안함.
8.항목이 리스트 안에 있는지 검색하는 법
if 434 not in list: 도 사용 가능 .. 요소안에 없으면.. 명령실행
9.최대값 , 최소값
min(리스트이름 넣기),max(리스트이름)
10.정렬
list.sort()
역순 정렬
list.sort(reverse=True)
11.정렬2
list2 = sorted(list):크기순으로 정렬된 새로운 리스트 반환
12.리스트가 가지고있는 메소드
extend() : 리스트의 모든 요소를 다른 리스트에 추가
clear():리스트의 모든 항목 삭제
count():항목개수 반환
reverse():항목의 순서 반대로
copy():리스트의 복사본 반환
13.리스트에서 사용할 수 있는 내장함수
sum(리스트 이름) : 항목의 합계 계산
14. 리스트에서 랜덤으로 선택하기
random모듈의 random.choice(리스트이름)함수 사용하여 랜덤으로 리스트 요소 하나 반환
15.두번째로 큰 수 찾기
16.리스트 합병
+연산자 사용
17.리스 복제
*사용
용도 고정된값으로 리스트 초기와 ex)a=[0] * 12
18.리스트 비교
== : 리스트 첫번째부터 비교해서 모든 항목이 같으면true
>: 리스트 첫번째 항목부터 비교해서 전체연산이 true이면 true 반환
<:
!= 같음
19.리스트 복사
리스트 변수에는 리스트가 저장되는 것이 아니라 리스트는 다른곳에 저장되고 리스트의 참조값만 변수에 저장된다. 참조값이란 메모리에서 리스트 객체의 위치.
list2 =list
리스트 복사시 리스트는 복사 되지 않음. 모두 동일한 리스트를 가리킬 뿐
얕은복사임.
복사하려면 깊은 복사해야함.
-list()사용 : 이 함수는 다른 리스트나 데이터들을 받아서 새로운 리스트 생성함.
20.슬라이싱
:리스트에서 한번에 여러개의 항목을 추출하는 기법
-리스트[start:stop] start에서 stop-1까지 출력
복사본 생성 가능
lista = listb[:] 깊은복사본 생성 가능
21.고급 슬라이싱
리스트[start:stop:step] step =2 이면 2씩 증가하면서 요소들 추출.
역순 추출
스텝==-1로 설정
리스트 마지막 요소 삭제
del list[-1]
22.리스트와 함수
함수로 인수를 전달하는 방식
-값으로 호출하기:변수의 복사본이 함수로 전달됨.
-참조로 호출하기 : 매개변수를 통해 원본 변수를 변경 가능
@@@@리스트는 참조값으로 전달되기때문에 함수안에서 변경 가능
23.리스트 함축✨✨✨✨✨✨✨✨✨✨✨✨✨✨
: [수식 for( 변수 in 리스트)if 조건]
squares = [ x*x for x in range(10) ]
== range(10)에 속하는 모든 정수에 대하여 x^2을 계산하여서 리스트를 생성한다.
squares = [ x*x for x in range(10) if x%2==0]
== range(10)에 속하는 모든 찍수인 !!! 정수에 대하여 x^2을 계산하여서 리스트를 생성한다.
if를 사용해 조건 추가
24.다양한 리스트 함축
가격이 음수이면0으로 바꾸기.
단어의 첫 글자만 추출하여 리스트 만들기
두개 인수 동시 사용
0~99까지 정수중 2의 배수이면서 3의 배수인 수모아 리스트 만들기
25. 2차원 리스트!!!
위 2차원 리스트는 초기값이 미리 결정되어 있어서 정적으로 생성되었다
동적 생성 가능
26.요소 접근
2차원 리스트 모든 값 출력
27.2차원 리스트와 리스트 함축
6개의 행을 만들고, 내부 리스트는 5까지 순차적인 값 채움.
---
리스트의 각 행에있는 요소들이 하나의 리스트로 병합됨.
28.전치 행렬 계산