반응형
반응형


시퀀스 자료형의 지원 연산


시퀀스 자료형: 저장된 각 요소를 정수 index를 이용하여 참조가 가능한 자료형
       문자열, 리스트, 튜플


시퀀스 자료형이 가지는 공통적인 연산
1) 인덱싱: L[0] = 0번째 해당하는 값
2) 슬라이싱: L[start:end]→ start부터 end까지 (end는 포함하지 않음)
3) 확장 슬라이싱: L[start:end:step]→ 인덱싱되어지는 각 원소들 사이의 거리가 인덱스 기준으로
        step만큼 떨어짐
4) 연결하기 (+)
5) 반복하기 (*)
6) 멤버십 테스트: a in b→ b안에 a가 있는지 없는지 true, false로 출력
7) 길이 정보: len()
8) for~in 문: for c in ‘abcd’:→ a b c d 로 각 문자들이 접근됨


문자열 정의 및 기초 연산


한 줄 문자열: 작은 따옴표나 큰 따옴표 사용
큰 따옴표 안에 작은 따옴표를 문자처럼 사용 가능
작은 따옴표 안 작은 따옴표를 문자처럼 사용 시 \ 와 같이 사용
\: 다음 라인이 현재 라인의 뒤에 이어짐을 나타냄


여러 줄 문자열: 연속된 작은 따옴표 또는 큰 따옴표 세 개
작은 따옴표 세개로 시작되고 끝나는 문장 안 문자로 사용된 작은 따옴표는 그대로 사용 OK


문자열 정의 및 기초 연산


이스케이프 문자: 문자열 내부에 일반적인 규칙에서 벗어나 그대로 사용 가능

이스케이프 문자

의미

\\ \
\' '
\* *
\b 백스페이스
\n 개행
\t 탭
\0nn 8진법 수 nn
\xnn 16진법 수 nn


문자열 정의 및 기초 연산


문자열 연산
문자열 자료는 절대 변경이나 수정 불가능
따라서 문자열 변경을 위해서는 여러 Slicing을 연결하여 활용 (문자열이 변경되는 것이 아니라
새로운 문자열이 생성되어 재 할당 되는 것)


유니코드
다국어 문자의 올바른 표현을 위해 문자가 하나의 코드로 인식됨
’사용하고자 하는 문자’→ 사용하고자 하는 문자가 코드화 됨
일반 문자열 + 유니코드 = 유니코드
유니코드 타입의 한글 문자열에 대해서는 인덱싱 및 슬라이싱이 올바르게 수행됨



문자열 메소드

upper() : 내용 전부 대문자로 변경
lower() : 전체 결과를 전부 소문자로 변경
swapcase() : case를 바꾸는 것
capitalize() : 첫 문자만 대문자로 변환
title() : 각 단어의 첫 문자가 대문자로 변환
s.count(‘like’) : s 안에 like라는 문자열의 등장 횟수
s.find(‘like’) : s안 like 문자의 인덱스 반환
s.startswith(‘progr’, 7) : 7번째 인덱스부터 시작하여 progr 찾음
u.strip() : u 문자열 앞 뒤의 공백 제거
u.rstrip() : 오른쪽 공백 제거
u.lstrip() : 왼쪽 공백 제거
u.replace(a,b) : u 안의 a 문자를 b문자로 대치
u.split() : 각 단어가 공백을 기준으로 분리되어 리스트로 반환
(문자열).join(t) : 문자열이 리스트 t 내부의 각 원소 가운데 연결함
splitlines() : line기준으로 분리하여 리스트 반환
u.center(60) : 60자리를 확보하되, 기존 문자열을 가운데 정렬
u.ljust(60) : 60자리를 확보하되, 기존 문자열을 왼쪽 정렬
u.rjust(60) : 60자리를 확보하되, 기존 문자열을 오른쪽 정렬
u.center(60, ‘-’) : 확보한 60자리 중 공백에 ‘-’ 문자 채움
isdigit() : 문자열 내 character가 모두 숫자인가?
isalpha() : 문자열 내 character가 모두 영문자인가?
isalnum() : 문자열 내 character가 모두 영문자 또는 숫자인가?
islower() : 문자열 내 charcter가 모두 소문자인가?
isupper() : 대문자?
isspace() : 문자열 내 character이 모두 공백문자인가?
istitle() : 문자열이 title 형식(각 단어의 첫글자가 대문자) 인가?
s.zfill(5) : 5글자 자리 확보 후 문자열 쓰고, 남은 공백에 0 채움

문자열 변환
포매팅 문자: 문자열 내에 존재하는 %
포매팅을 활용한 문자열 변환: 포매팅 문자를 포함하는 문자열 % 튜플
숫자 변환시 사용되는 포매팅 문자 종류 및 설명
----------------------------------------------------
포멧팅 문자 || 의미
%s  || 문자열을 포함한 임의의 객체를 문자열로 변환하여 출력(str() 내장함수 사용)
%r  || 문자열을 포함한 임의의 객체를 문자열로 변환하여 출력(repr() 내장 함수 사용)
%c  || 1글자 문자(ex. ‘%c’ % ‘k)
%d  || 10진 정수 (%5d: 5자리를 확보한 후 정수 포멧팅)
%i  || %d와 동일
%u  || 부호 없는 정수, 음수는 양수처럼 해석함
%o  || 8진수 정수
%x  || 16진수 정수 (소문자 표현)
%X  || 16진수 정수 (대문자 표현)
%e  || 부동 소수점 실수를 지수 형태로 표현
%E  || %e와 동일 (대문자 E 표현)
%f  || 부동 소수점 실수
%g  || 부동 소수점을 편의에 따라 일반 실수 형식이나 지수 형식으로 변환
%G  || %g와 동일 (대문자 E 표현)
----------------------------------------------------


리스트 생성 및 기본 연산

리스트: 시퀀스 자료형이면서 변경 가능(mutable)
리스트에서 지원하는 일반적인 연산 : 인덱싱, 슬라이싱, 연결, 반복, 멤버쉽 테스트
리스트 값 변경 시 : 슬라이스 치환, 슬라이스 삭제([]), 슬라이스 삽입, 리스트 요소 삭제(del),리스트 자체 삭제 가능
중첩 리스트: 리스트 안에 리스트가 존재하는 리스트
len(l) 리스트 l 안 원소의 개수
range: 값을 리스트로 변경해줌 (10이면 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
for문의 헤더에서 각 튜플 값 추출 가능
리스트 안 각 자료가 리스트여도 for 문의 헤더에서 동일하게 값 추출 가능

리스트가 지원하는 메소드
1) s. appened(5) : s 리스트 맨 마지막에 정수 값 5 추가
2) s. insert(3, 4) : 3 인덱스 위치에 정수 값 4 추가
3) s. index(3) : 값 3의 인덱스를 반환
4) s. count(2) : 값 2의 개수 변환
5) s. reverse() : s 자료의 순서를 뒤집기 (반환값 없음)
6) s. sort() : s 자료 정렬 (반환값 없음)
7) s. remove(10) : 자료 값 10 삭제 (자료 값이 여러 개 존재하면 첫 번째 것만 삭제)
8) s. extend([60, 70]) : 새로운 리스트[60, 70]을 기존 리스트 s 뒤에 병합
9) s. append([60, 70]) : append로 새로운 리스트를 추가하면 하나의 자료 요소로서 추가

리스트를 스택으로 사용하기 : 제일 나중에 들어온 값이 제일 먼저 나감
리스트를 큐로 사용하기 : 제일 나중에 들어온 값이 나중에, 먼저 들어온 값이 먼저 나감


리스트 정렬하기

리스트의 sort 메소드
· L. sort() 함수는 리스트 L 자체를 변경하며 리턴 값을 반환하지 않음
· 디폴트로 cmp(a,b) 내장함수 이용하여 정렬 방식 결정
   * cmp(a,b) 에서 a < b이면 -1, a > b이면 1, a = b이면 0을 리턴
· 기본 정렬 방식을 변경하려면 sort() 함수의 인자로 cmp 함수 입력
· 여러 튜플을 요소로 지닌 리스트 경우 튜플의 첫번째 값이 아닌 다른 위치에 있는 값을
   기준으로 정렬
· sort 함수의 인자로 reverse 값을 받을 수 있음   * false면 정순, true면 역순으로 변환
· sort 함수의 인자로 key 함수 입력 가능한데, key 인자에 함수가 할당되어 있으면 각 리스트
   원소에 대해 비교함수 호출 직전에 key 함수 먼저 호출
  
sorted 내장 함수
· sorted() 내장함수는 L 자체에는 내용 변경 없이 정렬된 새로운 리스트 반환
· 두 번째 인자로 cmp 함수 지정 가능하여 mycmp 사용 시 대소 관계 에 따른 순서를 반대로 바꿈
· 인자로 reverse와 key 지정 가능

L.reverse()와 reversed() 내장 함수
· L.reverse()도 반환값 없이 L 자체를 역순으로 뒤집음 (역순 정렬X)
· reverse() 내장 함수는 sorted() 처럼 내용이 뒤집힌 리스트 반환

일반적인 리스트 생성법을 리스트 내포 방식을 이용하여 작성하기 편하게 변경 가능
L = [ ]
for k in range(10) :      →    L = [ k * k for k in range(10) ]
  L. appened(K*K)          print L
print L


리스트 내포 리터링 문법
[expression for expr1 in sequence 1
        for expr2 in sequence 2 ………
        for exprN in sequence N if condition
· if 뒤 condition 조건이 충족하는 숫자일 때 expression 안 변수 적용
· expr1, expr2의 값들이 expression 안에 쓰임
· expression 평가 결과는 반드시 한 개 원소



반응형
반응형
성공의 비결은 시작하는 것이다.
시작하는 비결은 복잡하고 압도적인 과제들을
관리 가능한 작은 과제들로 나누고
첫 번째 과제부터 시작하는 것이다.
- 마크 트웨인

 

꿈은 클수록 좋습니다. 그러나 큰 목표에 압도당해
시작조차 하지 못하는 사람들이 많습니다.
크고 야심찬 목표를 작게 작게 쪼개서
작은 목표들로 나누고 조금씩 작은 성공체험(small success)을
확대해 나가는 것이 큰 목표를 달성하는 현명한 방법입니다.

 

 

 

반응형
반응형

그 자리에서는 마음이 움직인다.
무언가를 할 것 같고 반드시 해낼 것
같다는 생각에 온몸이 전율한다. 이렇게
마음만 움직이고 정작 중요한 몸이 따라가지
않는 것, 그것이 '감동내성'이다.
느끼면 움직여야 하는데,
느끼고도 움직이지
않는다.


- 김상경의《절대영감》중에서 -


* 성서에도
'마음은 원이로되 육신이 약하도다'는
구절이 있습니다. 무서운 것이 '감동내성'입니다.
감동은 하는데 눈물도 웃음도 움직임도 없는 상태,
살아 있으나 살았다 할 수 없는 몸입니다.
느꼈으면 움직여야 합니다.
움직여야 삽니다. 

반응형

'아침편지' 카테고리의 다른 글

죽어라 현장을 파고드는 사람  (0) 2016.08.12
무아경의 순례길  (0) 2016.08.11
그때마다 조금씩 가벼워졌다  (0) 2016.08.09
내 마음의 소리  (0) 2016.08.08
우주에서 떨어진 생각들  (0) 2016.08.08
반응형
이 세상에는 주는 사람과 받는 사람의 두 부류 사람들이 있다.
당신이 진심으로 뭔가를 팔고 싶다면,
더 많이 줄수록 더 많이 받는다는 사실을 알아야 한다.
사실 당신이 받을 것보다 더 많이 줘야한다.
- 프레더릭 에크룬드, ‘모든 것이 세일즈다’에서

다시 돌아올 것을 바라지 않고, 어떻게 하면 더 많이 줄 수 있는지
고민하고 실행하다 보면 나에게 돌아오는 것도
점점 커지는 기적을 맛볼 수 있습니다.
꼭 물질적이 아니라도 다른 사람에게 시간과 관심, 격려를 주게 되면,
언젠가는 더 크게 돌아오게 되어 있습니다.

 

 

 

.

반응형
반응형

내 한숨을 먹으며 자란 토란잎은
내 근심거리보다 얼굴이 더 커졌다
저 넓은 잎에 무거운 마음을 많이 기대었다
녹색의 이파리는 내 어두운 얼굴을
이리저리 굴리다
바닥에 쏟아버리곤 했다
그때마다 나는 조금씩 가벼워졌다


- 한순의 시집《내안의 깊은 슬픔이 말을 걸 때》에 실린
                 시〈토란잎에게〉(전문)에서 -


* 얼마나 간절했으면
토란잎을 보며 가벼워졌다 했을까요.
그래요. 몸도 마음도 가벼워져야 합니다.
그래야 일도 공부도 신나고 즐겁게 웃으면서
할 수 있습니다. 무거워지거든 토란잎을
바라보십시오. 꽃과 나무를 바라보세요.
그때마다 조금씩 가벼워질 것입니다.

반응형

'아침편지' 카테고리의 다른 글

무아경의 순례길  (0) 2016.08.11
느끼면 움직여야 한다  (0) 2016.08.10
내 마음의 소리  (0) 2016.08.08
우주에서 떨어진 생각들  (0) 2016.08.08
사람은 '일회용'이 아니다  (0) 2016.08.05
반응형

파이썬 제어문


들여쓰기와 제어문
- 파이썬은 들여쓰기를 강제하여 코드의 가독성을 높임
- 가장 바깥쪽 코드는 반드시 1열에 시작
- 블록 내부에 있는 statement들은 동일한 열에 위치해야 함
- 블록의 끝은 들여쓰기가 끝나는 부분으로 간주
- 파이썬에는 {. }. begin, end 등의 키워드가 존재하지 않음
- 들여쓰기를 할 때에는 탭과 공백을 섞어 쓰지 않음

if문
- if, elif, else문으로 쓰이나 elif와 else문은 꼭 필요하지는 않음
- 조건식이나 else 다음에 콜론(:) 표기 필요
- 들여쓰기를 잘 지켜야 함
        if 조건식 1:
           statement
        elif 조건식 2:
           statement
        else:
           statement


for문
- 컨테이너 객체가 지닌 각 요소가 타겟에 들어감
- enumerate() 내장함수 : 컨테이너 객체가 지닌 각 요소값 뿐만 아니라 인덱스 값도 함께 반환
- break: 루프를 빠져나감
- continue: 루프 블록 내의 continue 이후 부분은 수행하지 않고 루프의 시작부분으로 이동
- else: 루프가 break에 의한 중단 없이 정상적으로 모두 수행되면 else 블록이 수행됨
- for 루프는 중첩으로 사용 가능
for <타겟> in <컨테이너 객체>
   statement
else:
   statement


while문
- while 조건식이 만족하는 동안 while 블록내의 statements 들을 반복 수행

함수의 장점 및 함수 사용법
- 함수의 장점 : 반복적인 코드 사용을 없애 코드 길이를 짧게 만들고, 유지보수가 쉬워짐
- 함수 이름에 저장된 레퍼런스를 다른 변수에 할당하여 그 변수를 이용한 함수 호출 가능
- 함수의 몸체에는 최소 한 개 이상의 statement가 존재해야 함
  따라서, 아무런 내용이 없는 몸체를 지닌 함수의 경우 pass 키워드를 몸체에 적는 것이 필요
- 함수에서 다른 함수 호출이 가능하며, 인자의 이름과 함께 인자 값 넘기는 것이 가능
- 인자의 디폴트 값을 지정할 수 있으며, 두 개 이상의 값을 동시 반환 가능


함수 호출 시 동적인 자료형 결정
- 파이썬에서 모든 객체는 동적으로 실행 시간에 그 타입이 결정됨


재귀적 함수 호출
- 재귀 함수: 함수 몸체에서 자기 자신을 호출하거나 1부터 n까지 더하는 함수
- 수학에서 점하식과 유사한 코드로 반드시 종결조건이 만족할 때 반환 값이 있어야 함





.

반응형

+ Recent posts