ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python 기초 #1] 기본 문법1 - 문자열, count, find, index,
    Programming 기초/Python 2023. 4. 12. 19:55

    * 파이썬이란?

    • 1990년 암스테르담의 귀도 반 로섬(Guido Van Roasadd)이 개발한 인터프리터 언어. 본인이 좋아하는 코미디 쇼인 '몬티 파이썬의 날아디는 서커스(Monty Python's Flying Circus)'에서 따왔다고 함.
    • 사전적 의미는 고대 신화에 나오는 파르나소스 산의 동굴에 살던 큰 뱀을 뜻함. 알로 신이 델파이에서 파이썬을 퇴치했다는 이야기가 전해짐. 대부분의 파이썬 책 표지와 아이콘이 뱀 모양으로 그려진 이유.
    • 구글의 절반이상, 인스타그램, 파일 동기화 서비스 드롭박스(dropbox)등이 파이썬으로 제작.

     

    * 파이썬의 문법

    1. //는 몫을 구한다. /는 나누기를 실행한다.

    2. 제곱은 **

    a = 3
    b = 4
    
    print(a//b)
    print(a/b)
    print(a**b)
    -------------------------------------
    >> 0
    >> 0.75
    >> 81
    -------------------------------------

    2. %는 나머지를 구한다.

    a = 30
    b = 4
    
    print(a % b)
    --------------------------------
    >> 2

    3. 문자열 자료형

    • 큰 따옴표와 작은 따옴표 세 개씩 연속으로 쓰는 것도 문자열로 인식.
    a = "Hello world1"
    b = 'Hello world2'
    c = """Hello world3"""
    d = '''Hello world4'''
    
    print(a)
    print(b)
    print(c)
    print(d)
    • 문자열에 작은따옴표 혹은 큰 따옴표 포함시키기
    a = "Python's favorite food is perl"
    b = """Python's favorite food is perl"""
    c = '''Python's favorite food is perl'''
    d = '"Python is very easy."he says.'
    e = '''"Python's favorite food is perl"he says.'''
    f = 'Python\'s favorite food is perl'       # \는 이스케이프 코드
    
    print(a)
    print(b)
    print(c)
    print(d)
    print(e)
    print(f)
    • 여러 줄인 문자열을 변수에 대입하고 싶을 때 (파이썬은 기본적으로 한 줄씩 실행하기 때문에 c언어처럼 엔터로 줄을 늘려 쓸 수 없다.)
    multiline = "Life is too short\nYou need python"
    multiline2 = """Life is too short
    You need python"""
    multiline3 = '''Life is too short
    You need python'''
    
    print(multiline)
    print(multiline2)
    print(multiline3)
    --------------------------------------
    Life is too short
    You need python
    Life is too short
    You need python
    Life is too short
    You need python
    ---------------------------------------
    • 문자열 연산하기 (파이썬의 장점)
    head = "Python"
    tail = " is fun!"
    
    print(head + tail)
    
    print(head*2)
    ------------------------------------
    Python is fun!
    PythonPython
    ------------------------------------
    • 문자열 길이 구하기
    head = "Life"
    tail = " is too short"
    
    print(len(head + tail))
    #len()함수는 print 함수처럼 파이썬의 기본 내장 함수. 띄어쓰기도 센다.
    • 문자열 인덱싱과 슬라이싱
    # 문자열 인덱싱
    
    head = "Life"
    tail = " is too short"
    
    print((head + tail)[2])	# 파이썬은 0부터 숫자를 센다.
    print((head + tail)[-1])	# -를 붙이면 거꾸로 위치를 센다.
    print((head + tail)[-0])	# 0과 -0은 똑같다.
    -------------------------------------------------------------------
    f
    t
    L

    슬라이싱은 a[이상 : 미만 : 간격]의 형식이다.

    head = "Life"
    tail = " is too short"
    
    print((head + tail)[0:4])
    print((head + tail)[:8:2])	# 비어두면 처음부터 시작을 의미
    print((head + tail)[::3])
    print((head + tail)[::-1])	# 뒤에서부터 역순으로 출력
    print((head + tail)[:5:-1])	
    print((head + tail)[5::-1])
    print((head + tail)[0::-1])
    ------------------------------------------------------------------
    Life
    Lf s
    Lesosr
    trohs oot si efiL
    trohs oot s
    i efiL
    L

    *문자열 자료형은 그 요솟값을 변경할 수 없다. 그래서 immutable한 자료형이라고도 부른다.

    • 문자열 포매팅(formatting)
    a = "I eat %d apples." % 3
    b = "I eat %s apples." % "five"  # 문자열 대입에는 %s를 써야한다.
    
    number = 2
    c = "I eat %d apples." % number
    
    d = "I eat %d apples and %s oranges" % (number, "five")	#두 개 이상의 값을 넣을 때 괄호와 콤마로 구분
    
    print(a)
    print(b)
    print(c)
    print(d)
    
    -----------------------------------------------------------------------
    I eat 3 apples.
    I eat five apples.
    I eat 2 apples.
    I eat 2 apples and five oranges
    • 문자열 포맷 코드(c언어와 같다)
    코드 설명
    %s 문자열(String)
    %c 문자 1개(Character)
    %d 정수(Integer)
    %f 부동 소수(Floating-point)
    %o 8진수
    %x 16진수
    %% Literal%(문자 '%' 자체)

    * %s 포맷 코드는 어떤 형태의 값이든 변환해 넣을 수 있다.

    a = "I eat %d apples" % 3
    b = "rate is %s" % 3.234
    
    print(a)
    print(b)
    ----------------------------------
    I eat 3 apples
    rate is 3.234
    • 정렬과 공백, 소수점 표현
    a = "%10s" % "hi"   # 전체 길이가 10개인 문자열 공간에서 대입되는 값을 오른쪽으로 정렬하고 앞의 나머지는 공백으로 남겨 두라.
    b = "%-10s TOM" % "hi"  # 왼쪽 정렬.
    c = "%0.4f" % 3.141592   # 소수점 네 번째 자리까지만 표현.
    d = "%10.4f" % 3.141592  # 오른쪽 정렬과 소수점 네번째 자리까지만 표시
    
    print(a)
    print(b)
    print(c)
    print(d)
    ------------------------------------------------------------------
            hi
    hi         TOM
    3.1416
        3.1416
    • format 함수를 사용한 포매팅
    • 2개 이상의 값을 넣을 경우 문자열의 {0}, {1}과 같은 인덱스 항목이 format 함수의 입력값으로 순서에 맞게 바뀐다.
    • 이름으로도 넣을 수 있다.
    number = 3
    
    a = "I ate {0} apples. so I was sick for {1} days.".format(number, "three")
    b = "I ate {0} apples. so I was sick for {name}days.".format(12, name=3)
    # 키워드 인자는 마지막에 넣어야 함.
    c = "I ate {name} apples. so I was sick for {0}days.".format(2, name=4)
    
    d = "{0:>10}".format("hi")  # 오른쪽 정렬
    
    e = "{0:^10}".format("hi")  # 가운데 정렬
    
    f = "{0:=<10}".format("hi")  # 왼쪽 정렬 및 공백 채우기
    
    g = "{0:0.4f}".format(3.4123456)    # 소수점 4자리까지 표기
    
    h = "{0:10.4f}".format(3.4123456)   # 자릿수를 10으로 맞춤
    
    print(a)
    print(b)
    print(c)
    print(d)
    print(e)
    print(f)
    print(g)
    print(h)
    -------------------------------------------------------------------------
    I ate 3 apples. so I was sick for three days.
    I ate 12 apples. so I was sick for 3days.
    I ate 4 apples. so I was sick for 2days.
            hi
        hi
    hi========
    3.4123
        3.4123
    • f 문자열 포매팅(파이썬 3.6부터 지원)
    age = 30
    a = f'나는 내년이면 {age+1}살이 된다.'
    print(a)
    ---------------------------------------
    나는 내년이면 31살이 된다.

     

    * 자주 쓰이는 문자열 함수 

    • count 함수 : 문자 개수 세기
    >>> a = "hobby"
    >>> a.count('b')
    2
    • find 함수 : 찾는 문자 중 처음으로 나온 위치를 반환한다. 문자나 문자열이 존재하지 않는다면 -1을 반환.
    >>> a = "Python is the best choice"
    >>> a.find('b')
    14
    >>> a.find('k')
    -1
    • index 함수 : 위치 반환. 못 찾을 시 오류 발생.
    >>> a="Life is too short"
    >>> a.index('t')
    8
    >>> a.index('k') 
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: substring not found
    • join 함수 : 문자열 삽입. abcd 문자열 각각의 문자 사이에 ','를 삽입.
    >>> ",".join('abcd')
    'a,b,c,d'
    >>> ",".join(['a', 'b', 'c', 'd'])
    'a,b,c,d'
    • upper 함수 : 소문자를 대문자로 바꾸기
    >>> a= "hi"
    >>> a.upper()
    'HI'
    • lower 함수 : 대문자를 소문자로 바꾸어 준다.
    >>> a= "HI"
    >>> a.lower()
    'hi'
    • split 함수 : 괄호 안의 값을 구분자로 해서 문자열을 나누어 준다. 괄호 안 공백시 스페이스, 탭, 엔터 기준으로 나눔.
    >>> a= "Life is too short"
    >>> a.split()
    ['Life', 'is', 'too', 'short']
    
    >>> b = "a:b:c:d"
    >>> b.split(':')
    ['a', 'b', 'c', 'd']
    • replace 함수 : replace(바뀌게 될 문자열, 바꿀 문자열) 형식으로 특정한 값을 다른 값으로 치환.
    >>> a= "Life is too short"
    >>> a.replace("Life", "Your leg")
    'Your leg is too short'
    • lstrip 함수 : 왼쪽 공백 지우기
    >>> a = "   hi  "
    >>> a.lstrip()
    'hi  '
    • rstrip 함수 : 오른쪽 공백 지우기
    >>> a = "   hi  "
    >>> a.rstrip()
    '   hi'
    • strip 함수 : 양쪽 공백 지우기
    >>> a = "   hi  "
    >>> a.strip()
    'hi'

     

    댓글

Designed by Tistory.