pjk
조회 수 12617 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

1. 시퀀스 자료형 : 문자열, 리스트, 튜플
1) 인덱싱(indexing) : [k]

>>> s = 'abcdef' # 문자열
>>> l = [100, 200, 300] # 리스트
>>> s[0] # 참조
'a'
>>> s[1]
'b'
>>> s[-1]
'f'
>>> l[1]
200
>>> l[1] = 900 # 치환

2) 슬라이싱(Slicing) : [s:t]

>>> s = 'abcdef'
>>> l = [100, 200, 300]
>>> s[1:3] # 1번 위치와 3번 위치 사이를 나타냄

'bc'
>>> s[1:] # 1부터 끝까지
'bcdef'
>>> s[:] # 처음부터 끝까지
'abcdef'
>>> s[-100:100] # 범위를 넘어서면 범위 내의 값으로 자동 처리
'abcdef'
>>> l[:-1] # 맨 오른쪽 값을 제외하고 모두
[100, 200]
>>> s[::2] # 2칸 단위로

'ace'
>>> s[::-1] # 거꾸로
'fedcba'

3) 연결하기(Concatenation) : +

>>> s = 'abc' + 'def'
>>> s
'abcdef'

>>> L = [1, 2, 3] + [4, 5, 6]
>>> L

[1, 2, 3, 4, 5, 6]

4) 반복하기(Repetition) : *

>>> s = 'Abc'
>>> s * 4
'AbcAbcAbcAbc'

>>> L = [1, 2, 3]
>>> L * 2
[1, 2, 3, 1, 2, 3]

5) 멤버십 테스트(Membership Test) : in

>>> t = (1, 2, 3, 4, 5)
>>> 2 in t
True

>>> 10 not in t
True
>>> 'ab' in 'abcd' # 문자열인 경우 부분 문자열 확인 가능

True

6) 길이 정보 : len

>>> l = [1, 2, 3]
>>> len(l)

3

2. 문자열 정의
1) 한 줄 문자열 : ' or "
2) 여러 줄 문자열 : ''' or """
3) 이스케이프 문자

Escape Sequence Meaning
newline Ignored
  Backslash ()
' Single quote (')
" Double quote (")
a ASCII Bell (BEL)
b ASCII Backspace (BS)
f ASCII Formfeed (FF)
n ASCII Linefeed (LF)
N{name} Character named name in the Unicode database (Unicode only)
r ASCII Carriage Return (CR)
t ASCII Horizontal Tab (TAB)
uxxxx Character with 16-bit hex value xxxx (Unicode only)
Uxxxxxxxx Character with 32-bit hex value xxxxxxxx (Unicode only)
v ASCII Vertical Tab (VT)
ooo Character with octal value ooo
xhh Character with hex value hh

4) 문자열 연산(시퀀스 자료형의 특징 참조)
>>> str1 = 'Firtst String'
>>> str1[0] = 'f' # 변경 불가능(Immutable) 자료형이므로 에러 발생


Traceback (most recent call last):
File "<pyshell#54>", line 1, in <module>
str1[0] = 'f'
TypeError: 'str' object does not support item assignment

3. 문자열 변경

>>> s = 'spam and egg'
>>> s = s[:5] + 'cheese' + s[5:]
>>> s
'spam cheeseand egg'

4. 문자열 포매팅(Formatting) : %s, %r, %c, %d, %i, %u, %o, %x, %X, %e, %E, %f, %g, %G

>>> format = 'name = %s, age = %s'
>>> format % ('gslee', 24)
'name = gslee, age = 24'

>>> "%s -- %s -- %d -- %f -- %e" % ((1, 2), [3, 4, 5], 5, 5.3, 101.3)
'(1, 2) -- [3, 4, 5] -- 5 -- 5.300000 -- 1.013000e+002'
>>> print '%(이름)s -- %(전화번호)s' % {'이름': '이강성', '전화번호': 5284}

이강성 -- 5284

5. 문자열 메쏘드

>>> # 대ㆍ소문자로 변환 관련 메쏘드
>>> s = 'i like programming.'
>>> s.upper()
'I LIKE PROGRAMMING.'
>>> s.upper().lower()
'i like programming.'
>>> 'I Like Programming'.swapcase()
'i lIKE pROGRAMMING'
>>> s.capitalize()
'I like programming.'
>>> s.title()
'I Like Programming.'
>>> # 검색 관련 메쏘드
>>> s = 'i like programming, i like swimming.'
>>> s.count('like') # 문자열 s에서 'like'라는 부분문자열이 발생한 횟수를 리턴
2
>>> s.find('like') # 'like'의 offset를 리턴(검색)
2
>>> s.find('my') # 찾는 문자열이 없을 경우 -1 리턴
-1
>>> s.rfind('like') # find와 같지만 문자열 s의 뒤쪽부터 탐색
22
>>> s.index('like')
2
>>> s.index('my') # find와 같지만 찾는 문자열이 없을 경우 예외 발생

Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
s.index('my')
ValueError: substring not found

>>> s.rindex('like') # index와 같지만 문자열 s의 뒤쪽부터 탐색
22
>>> s.startswith('i like') # i like로 시작하는 문자열인가?
True
>>> s.endswith('swimming.') # swimming.으로 끝나는 문자열인가?
True
>>> s.startswith('progr', 7) # 7번째 문자열이 progr로 시작하는가?
True
>>> s.endswith('like', 0, 26) # 0부터 26번째 위치 사이의 문자열이 like로 끝나는가?
True
>>> # 편집 및 치환 관련 메쏘드
>>> u = ' spam and ham '
>>> u.strip() # 좌우 공백 제거

'spam and ham'
>>> u.rstrip() # 오른쪽 공백 제거
' spam and ham'
>>> u.lstrip() # 왼쪽 공백 제거
'spam and ham '
>>> ' abd '.strip()
'abd'
>>> '><>abc<><><>'.strip('<>')
'abc'
>>> '><><abc<><><>n'.strip('<>')
'abc<><><>n'
>>> u'u4000u4001abcu4000'.strip(u'u4000')
u'u4001abc'
>>> u.replace('spam', 'spam, egg') # 'spam'을 'spam, egg'로 변경
' spam, egg and ham '
>>> # 문자열 분리와 결합 관련 메쏘드
>>> u = ' spam and ham '
>>> u.split() # 공백으로 분리

['spam', 'and', 'ham']
>>> u.split('and') # 'and로 분리
[' spam ', ' ham ']
>>> t = u.split()
>>> ':'.join(t) # ':' 문자로 결합
'spam:and:ham'
>>> print 'n'.join(t) # 줄 바꾸기로 결합
spam
and
ham

>>> lines = '''first line
second line
third line'''
>>> lines.splitlines() # 라인 단위로 분리
['first line', 'second line', 'third line']
>>> s = 'one:two:three:four'
>>> s.split(':', 2) # 두 번만 분리

['one', 'two', 'three:four']
>>> s.rsplit(':', 1) # 오른쪽부터 처리
['one:two:three', 'four']
>>> # 정렬 관련 메쏘드
>>> u = 'spam and egg'
>>> u.center(60) # 전체 60문자의 가운데에 맞춤
' spam and egg '
>>> u.ljust(60) # 왼쪽에 맞춤
'spam and egg '
>>> u.rjust(60) # 오른쪽에 맞춤
' spam and egg'
>>> u.center(60, '-') # 공백 대신 '-' 문자로 채움
'------------------------spam and egg------------------------'
>>> '1tandt2'.expandtabs() # 탭(t)을 8자 공백으로 사용
'1 and 2'
>>> '1tandt2'.expandtabs(4)
'1 and 2'
>>> # 구성된 문자열의 특성 유무 파악 관련 메쏘드
>>> '1234'.isdigit()
True
>>> 'abcd'.isalpha()
True
>>> '1abc234'.isalnum()
True
>>> 'abc'.islower() # 소문자인가?
True
>>> 'ABC'.isupper()
True
>>> ' trn'.isspace() # 공백문자인가?
True
>>> 'This Is A Title'.istitle() # 제목 문자열인가?
True
>>> # 채우기 및 자리 맞추기 관련 메쏘드

>>> s = '123'
>>> s.zfill(5)
'00123'
>>> 'goofy'.zfill(6) # 빈 자리는 0으로 채워짐
'0goofy'

6.. string 모듈

>>> import string
>>> d = string.letters + string.digits
>>> d
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'

>>> userid = raw_input('your id : ')
your id : creaplz510
>>> for ch in userid:
if ch not in d:
print 'invalid user id'
break

7. 유니 코드

>>> unicode('한글', 'cp949') # 인코딩을 명시적으로 알려주어야 함
u'ud55cuae00'
>>> unicode('한글', 'cp949').encode('utf-8') # 'utf-8' 코드로 변환
'xedx95x9cxeaxb8x80'
>>> len('한글과 세종대왕')
15
>>> len(unicode('한글과 세종대왕', 'mbcs'))
8
>>> u = unicode('한글과 세종대왕', 'mbcs')
>>> print u[0]

>>> print u[1]

>>> ord('A') # 문자 'A'의 ASCII 코드값
65
>>> chr(65) # 코드 65에 해당하는 문자
'A'
>>> ord(unicode('가', 'cp949'))
44032
>>> hex(ord(unicode('가', 'cp949')))
'0xac00'
>>> print unichr(0xac00)

>>> print unichr(0xd7a3)

8. 문서 문자열 : 도움말 사용
# file : docstring.py
'''
Module __doc__ string
line1
line2
'''
class Ham:
"Ham class __doc__ string"
def func(self):
"Ham class func __doc__ string"
pass


>>> import docstring
>>> print docstring.__doc__
Module __doc__ string
line1
line2
>>> print docstring.Ham.__doc__
Ham class __doc__ string

>>> print docstring.Ham.func.__doc__
Ham class func __doc__ string

  1. No Image

    pybind11 에 대해서

    Date2023.07.23 CategoryGeneral Bymakersweb Views10255
    Read More
  2. Qt For Python(PySide2) QML 프로젝트 예제

    Date2019.10.17 CategoryBeginner Bymakersweb Views16528
    Read More
  3. 명령어 한줄로 내컴퓨터를 웹서버로

    Date2019.01.25 CategoryGeneral By운영자 Views9807
    Read More
  4. pydbus 바인딩을 이용하여 서비스 데몬과 D-Bus통신

    Date2018.03.12 Bymakersweb Views12329
    Read More
  5. Boost Python을 이용하여 python을 위한 C++ API 바인딩

    Date2017.01.08 Bymakersweb Views22231
    Read More
  6. No Image

    [Python]EXE또는 DLL파일의 버전정보를 알아내기위한 몇가지 방법

    Date2015.06.25 Bymakersweb Views16939
    Read More
  7. QML 및 Window 투명처리

    Date2015.04.22 CategoryPyQt4 Bymakersweb Views8750
    Read More
  8. No Image

    [pyqt4]QTimer 예제 - 버튼을 누르면 3초후 함수 또는 메소드 호출

    Date2015.04.01 CategoryPyQt4 Bymakersweb Views13601
    Read More
  9. No Image

    Python + QML with PyQt4

    Date2015.03.24 CategoryPyQt4 Bymakersweb Views14754
    Read More
  10. No Image

    print를 로그파일로 생성하기 (log출력 Redirection)

    Date2015.03.18 CategoryGeneral Bymakersweb Views14189
    Read More
  11. No Image

    외부 프로그램 실행

    Date2015.02.10 CategoryGeneral Bypjk Views25663
    Read More
  12. No Image

    우분투에 Python새 버전 설치 사용법

    Date2015.02.10 CategoryGeneral Bypjk Views12845
    Read More
  13. No Image

    How to Use Freeze

    Date2014.09.06 Bypjk Views13610
    Read More
  14. No Image

    [PyQt4]개발 프로그램 버전표시 메세지 박스

    Date2014.09.02 CategoryPyQt4 Bypjk Views16312
    Read More
  15. [PyQt4]여러가지 버튼 예제

    Date2014.08.29 CategoryPyQt4 Bypjk Views31233
    Read More
  16. No Image

    Python 문자열 관련 함수 레퍼런스

    Date2014.08.29 CategoryGeneral Bypjk Views12617
    Read More
  17. [PyQt4]스레드 및 ProgressBar 예제 코드

    Date2014.08.26 CategoryPyQt4 Bypjk Views12210
    Read More
  18. No Image

    [PyQt4]multiprocess 예제 코드

    Date2014.08.26 CategoryPyQt4 Bypjk Views16220
    Read More
  19. No Image

    [PyQt4]마우스 클릭 이벤트 예제 코드

    Date2014.08.26 CategoryPyQt4 Bypjk Views14746
    Read More
  20. [PyQt4]폴더 또는 파일을 드레그하여 그 경로를 LineEdit로 가져오기

    Date2014.08.22 CategoryPyQt4 Bypjk Views18964
    Read More
Board Pagination Prev 1 2 Next
/ 2