[Python] 03. 파이썬 표준 출력과 문자열

2023. 11. 2. 17:50·Programming Language/Python
목차
  1. 1. print 함수
  2. 2. 문자열을 만드는 방법
  3. 3. 따옴표를 포함한 문자열
  4. 4. 확장 문자 (이스케이프 코드)
  5. 5. 문자열 연산
  6. 7. format 함수를 사용한 formatting
  7. 8. f 문자열 포매팅 (python 3.6이상 가능)
  8. 9. 문자열과 관련된 함수

파이썬 표준 출력과 문자열


1. print 함수

print(*args, sep=' ', end='\n', file=None, flush=False)
  • args : 임의의 갯수의 arguments를 받음 (*positional arguments)

  • sep=' ' : 출력 대상 사이의 구분자를 넣을 때 사용 (default : space)

  • end='\n' : 마지막 문자열을 출력하고 출력할 문자에 end를 사용 (default : '\n')

  • file : file-like object (스트림 / 출력방향) 지정 , (default : None) --> sys.stdout

  • flush : 강제로 스트림을 flush 할건지 (default : False)

2. 문자열을 만드는 방법

1) 큰 따옴표로 둘러싸기

2) 작은 따옴표로 둘러싸기

3) 큰 따옴표 3개를 연속으로 써서 둘러싸기 (여러줄인 경우)

4) 작은 따옴표 3개를 연속으로 써서 둘러싸기 (여러줄인 경우)###

3. 따옴표를 포함한 문자열

  • 문자열 안에 작은 따옴표를 사용하는 경우

    • 큰 따옴표안에 작은 따옴표 사용

    • 작은 따옴표 안에 작은 따옴표를 사용하려면 ' 사용

    • "Python is 'interpreted' programming language"

    • 'Python is 'interpreted' programming language'

  • 문자열 안에 큰 따옴표를 사용하는 경우

    • 작은 따옴표 안에 큰 따옴표 사용

    • 큰 따옴표 안에 큰 따옴표를 사용하려면 " 사용

    • 'Python is "interpreted" programming language'

    • "Python is "interpreted" programming language"

4. 확장 문자 (이스케이프 코드)

  • ', "

  • \

  • \a, \b, \f, \n, \t, \v

  • \124 : 8진수 확장 문자(8진수 124)

  • \x0A : 16진수 확장 문자

5. 문자열 연산

  • 더하기

    head = "python"
    tail = " is no jam"
    print(head + tail)
    결과 : python is no jam
  • 빼기

    head = "python"
    print(head * 2)
    결과 : pythonpython
  • 문자열 길이 구하기

    a = "Life is too short"
    print(len(a))
    result : 17
  • 문자열 인덱싱

    a = "Life is too short"
    print(a[3]) 
    res : 'e'
    
    a[-1]
    res : 't'
    
    -1은 뒤에서부터 첫번째라는 의미이다. 
    헷갈리지 말자. a[1]은 앞에서 두번째이지만, a[-1]은 뒤에서 첫번째이다.
    
    a[0] == a[-0]
    res : TRUE
    
    a[0:4] 
    res : "Life"
    a[0:3]
    res : "Lif"
    --> 인덱싱 끝 번호는 포함하지 않는다. 0:3은 0,1,2만 포함
    
    a[10:]
    --> 시작번호부터 끝까지
    
    a[:17]
    --> 처음부터 16까지 출력
    
    a[:]
    --> 처음부터 끝까지
    
    a = "Life is too short, You need Python"
    
    a[19:-7]
    res : 'You need'
  • 문자열의 요솟값은 바꿀 수 없다

    a = "pithon"
    a[1] = 'y' (error)
    문자열의 요솟값은 바꿀 수 없다.

    6. 문자열 formatting

    • 문자열 안에 어떤 값을 삽입하는 방법
    1. 숫자 바로 대입
    "I eat %d apples." % 3
    res : 'I eat 3 apples.'
    
    2. 문자열 바로 대입
    "I eat %s apples." % "five"
    
    3. 변수 대입
    number = 5
    "I eat %d apples." % number
    
    4. 2개 이상의 값을 넣기
    number = 10
    day = "three"
    "I ate %d apples. so I was sick for %s days" % (number, day)
    
    정수를 %s 로 받으면 string type 이고, %d가 되면 integer type 이다
    문자열 안에 %를 사용하려면 %%를 사용하면 된다.
    
    5. 딕셔너리 Key 대입
    prof_dict = {'name' : 'Kim', 'room_no': 327, 2023: True}
    "My name is %(name)s and my room is %(room_no)04d" % prof_dict # 327 --> 0327  
  • format code와 숫자 사용

    "%10s" % "hi"
    res: '        hi'
    ---> 전체 길이가 10인 문자열에서 오른쪽 정렬하고 나머지는 공백으로
    "%-10s" % "hi"
    res: 'hi        '
    ---> 전체 길이가 10인 문자열에서 왼쪽 정렬하고 나머지는 공백으로
  • 소수점 표현

    "%0.4f" % 3.42134234
    res : 3.4213
    --> 4개의 소숫점만 출력해라라는 의미이다.
    
    "%10.4f" % 3.42134234
    res : '    3.4213'
    --> w전체 길이가 10인 문자열에서 오른쪽 정렬하고, 나머지 공백처리, 소숫점은 4개까지 표시.

7. format 함수를 사용한 formatting

  • 숫자 바로 대입

    "I eat {0} apples".format(3)
  • 문자열 바로 대입

    "I eat {0} apples".format("five")
  • 숫자 변수 대입

    number = 3
    "I eat {0} apples".format(number)
  • 두 개 이상의 값 넣기

    number = 10
    day = three
    "I ate {0} apples. so I was sick for {1} days.".format(number, day)
    --> {0}, {1}과 같은 인덱스 항목이 format 함수의 입력 값으로 바뀜.
    
    "My name is {} and my room is {}".format('choi', 327)
    
  • 이름으로 넣기

    "I ate {number} apples. so I was sick for {day} days.".format(number=10, day=3)
  • 인덱스 + 이름 혼용

    "I ate {0} apples. so I was sick for {day} days.".format(10, day=3)
  • 딕셔너리를 가져와 언패킹

    prof_dict = {'name' : 'Kim', 'room_no': 327, 2023: True}
    "My name is {name} and my room is {room_no:04d}".format(**prof_dict) # 327 -> 0327
    • **매개변수 는 정확히는 매개변수로 dictionary를 받아 unpacking 하는 것을 의미
  • 왼쪽 정렬

    "{0:<10}".format("hi")
    -->   <10  표현식은 치환되는 문자열을 왼쪽으로 정렬, 문자열의 자릿수를 10으로 맞춘다.
  • 오른쪽 정렬

    "{0:>10}".format("hi")
    -->   >10  표현식은 치환되는 문자열을 오른쪽으로 정렬, 문자열의 자릿수를 10으로 맞춘다.
  • 가운데 정렬

    "{0:^10}".format("hi")
    -->   ^10 표현식은 치환되는 문자열을 가운데 정렬, 문자열의 자리수를 10으로 맞춘다.
  • 공백 채우기

    "{0:=^10}".format("hi")
    res : "====hi===="
    ---> :와 {<, >, ^} 사이에 공백을 채울 문자를 넣으면 공백 문자 대신에 해당 문자로 채워넣는다.
    
    "{0:!<10}".format("hi")
    res : "hi!!!!!!!!"
  • 소수점 표현하기

    y = 3.42134234
    "{0:0.4f}".format(y)
    --> {0}에서 0 뒤에 0.4f를 사용하여 소수점 4자리만 표현
    
    "{0:10.4f}".format(y)
    --> 자릿수를 10으로 맞추고 오른쪽 정렬, 소수점 4자리만 표현
  • { 또는 } 문자 표현하기

    "{{ and }}".format()
    --> 중괄호 문자 그대로 사용하고 싶으면 중괄호를 두번 연속 사용하면 된다.

8. f 문자열 포매팅 (python 3.6이상 가능)

  • 기본적인 사용법

    • 문자열 앞에 f 접두사를 붙이면 f 문자열 포매팅 사용 가능.

      name = '홍길동'
      age = 30
      f'나의 이름은 {name} 입니다. 나이는 {age} 입니다.'
    • 표현식도 사용 가능하다. (변수끼리의 수식)

      f'나는 내년이면 {age + 1}살이 된다.'
    • 딕셔너리도 사용 가능하다.

      d = {'name':'홍길동', 'age':30}
      f'나의 이름은 {d["name"]} 입니다. 나이는 {d["age"]} 입니다.'
  • f 포매팅 정렬

    f'{"hi":<10}'
    f'{"hi":>10}'
    f'{"hi":^10}'
  • f 포매팅 공백 채우기

    f'{"hi":=^10}'
    f'{"hi":!<10}'
  • f 포매팅 소수 표현

    y = 3.42134234
    f'{y:0.4f}'
    f'{y:10.4f}'
  • f 포매팅 중괄호 표현

    * f 포매팅 중괄호 표현
    f'{{ and }}'

9. 문자열과 관련된 함수

  • 특정 문자의 개수 세기 (count 함수)

    a = "hobby"
    a.count('b')
    res : 2
    --> 문자열중 매개변수 안에 있는 문자의 갯수를 return
  • 위치 알려주기1 (find 함수)

    a = "python is the best choice"
    a.find('b')
    res : 14
    ---> 문자열 b가 처음 나온 위치를 리턴한다.
    a.find('k')
    res : -1
    ---> 문자열에 없으면 -1을 반환한다.
  • 위치 알려주기2 (index 함수)

    a = "Life is too short"
    a.index('t')
    res : 8
    ---> 문자 t가 처음나온 위치를 반환
    find와 차이점이라면 없는 문자를 찾으려 하면 오류를 발생시킨다.
  • endswith / startswith 함수

    line.endswith('.') 
    --> line이 {argument}로 끝나면 True / 아니면 False 반환
    
    line.startswith('.')
    --> line이 {argument}로 시작하면 True / 아니면 False
  • 문자열 삽입(join 함수)

    ",".join('abcd')
    res : 'a,b,c,d'
    ---> abcd 문자열의 각각 문자 사이에 ,를 삽입한다.

    ex) 리스트에서 사용
    ",".join(['a', 'b', 'c', 'd'])
    res : 'a,b,c,d'

* 소문자를 대문자로 바꾸기(upper 함수)

```python
a = "hi"
a.upper()
res : 'HI'
  • 대문자를 소문자로 바꾸기(lower)

    a = "HI"
    a.lower()
    res : hi
  • 왼쪽 공백 지우기(lstrip 함수)

    a = " hi "
    a.lstrip()
    res : 'hi '
  • 오른쪽 공백 지우기(rstrip 함수)

    a = " hi "
    a.rstrip()
    res : ' hi'
  • 양쪽 공백 지우기(strip)

    a = " hi "
    a.strip()
    res : 'hi'
  • strip(parameter)

    full_name = '\t Soo Lee \n'
    full_name.strip() # 'L=SOO Lee'
    full_name.strip('\t\n') # ' Soo Lee '
    full_name.lstrip() # 'Soo Lee \n'
    full_name.rstrip() # '\t Soo Lee'
  • 문자열 바꾸기 (replace 함수)

    a = "Life is too short"
    a.replace("Life", "Your leg")
    res : 'Your leg is too short'
    --> replace(바뀌게 될 문자열, 바꿀 문자열)
  • 문자열 나누기(split 함수)

    a = "Life is too short"
    a.split() // 공백을 기준으로 문자열 나눔
    res : ['Life', 'is', 'too', 'short']
    b = "a:b:c:d"
    b.split(':') // :를 기준으로 문자열 나눔
    res : ['a', 'b', 'c', 'd']
    prof = 'choi, 327, 1'
    prof.split(',') # ['choi', ' 327', ' 1']
    prof.split(', ) # ['choi', '327', '1']
  • 문자열 나누기(partition 함수)

    prof = 'choi, 327, 1'
    prof.partition(', ') # ('choi', ', ', '327, 1')
    • C++에서 std::strtok 함수와 유사
    • partion 함수의 매개변수를 기준으로 문자열을 나눈다
  • 문자열 \n을 기준으로 나누기(splitlines 함수)

    profs = 'choi, 327, 1\nKang, 328, 1'
    profs.splitlines() # ['choi, 327, 1', 'Kang, 328 ,1']

참조) Do it! 점프 투 파이썬 (박응용 지음), https://wikidocs.net (파이썬 계단밟기)

'Programming Language > Python' 카테고리의 다른 글

[Python] 06. 집합(set) 자료형  (0) 2023.11.05
[Python] 05. 튜플(Tuple) 자료형  (0) 2023.11.04
[Python] 04. 리스트(list) 자료형  (0) 2023.11.04
[Python] 02. 변수의 선언과 자료형, 연산  (0) 2023.11.04
[Python] 01. Introduction  (0) 2023.11.01
  1. 1. print 함수
  2. 2. 문자열을 만드는 방법
  3. 3. 따옴표를 포함한 문자열
  4. 4. 확장 문자 (이스케이프 코드)
  5. 5. 문자열 연산
  6. 7. format 함수를 사용한 formatting
  7. 8. f 문자열 포매팅 (python 3.6이상 가능)
  8. 9. 문자열과 관련된 함수
'Programming Language/Python' 카테고리의 다른 글
  • [Python] 05. 튜플(Tuple) 자료형
  • [Python] 04. 리스트(list) 자료형
  • [Python] 02. 변수의 선언과 자료형, 연산
  • [Python] 01. Introduction
lumana
lumana
배움을 나누는 공간 https://github.com/bebeis
  • lumana
    Brute force Study
    lumana
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Spring
        • MVC
        • DB
        • 핵심 원리
        • JPA
      • WEB
        • HTML
        • CSS
        • HTTP
        • Application
      • Computer Science
        • Network
        • Database
        • OS
        • 시스템 프로그래밍
        • 컴퓨터구조
      • Algorithm
        • Divide&Conquer
        • Sort
        • Greedy
        • DP
        • Backtracking
        • NP-Complete
        • Graph
      • Data Structure
        • 자료구조
        • C++ STL
        • Java Collection
      • 소프트웨어 공학
        • 시험 공부 정리
        • Theorem
      • Programming Language
        • Python
        • Java
        • C
        • C++
        • Rust
        • Theory
      • Unix_Linux
        • Common
      • React
      • PS
        • BOJ
        • Tip
        • 프로그래머스
        • CodeForce
      • Book Review
        • Clean Code
      • Math
        • Linear Algebra
      • AI
        • DL
        • ML
        • DA
        • Concepts
      • 우아한테크코스
        • 프리코스
      • Project Review
      • LegacyPosts
      • Android
      • Apple
        • Mac
        • IPhone
        • IPad
      • 모니터
      • Diary
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
lumana
[Python] 03. 파이썬 표준 출력과 문자열
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.