Note 주석은 #으로 표시할 수 있다. 단축키는 Ctrl + /이다.
※ 가끔 단축키가 잘 안될 때가 있는데
    ‘한국어 한컴 입력기’를 ‘한국어 Microsoft 입력기’로 바꾸면 해결된다.
    보통 화면의 맨 오른쪽 아래 시계 왼쪽에 아이콘이 있다.

1. 입출력

1) 입력(Input)

  • a = input('실행할 때 나타나는 문자')
  • 실행하면 그 때 입력받은 값을 a에 저장한다.
  • 여러 값 입력 받기(※ 리스트로 저장된다.)
    • STEP 1. 어떻게 구분해서 입력받을지를 생각한다.
    • STEP 2. .split('구분값')을 이용하여 저장한다.
    • STEP 3. list(map('함수', '입력값'))를 통해 문자형을 자른 자료형으로 바꾼다.
      map함수는 각 요소마다 함수를 적용해주는 기능을 한다.

a = input('문자를 입력해주세요')
print(a)
안녕하세요
a = input('문자를 여러 개 입력해주세요(쉼표(\',\')로 구분해주세요.)').split(',')
print(a)

b = input('숫자를 여러 개 입력해주세요(쉼표(\',\')로 구분해주세요.)').split(',')
print(list(map(int, b)))
['원', '투', '쓰리', '1', '2', '3']
[1, 2, 3]

2) 출력(Print)

  • print('출력할 값 또는 변수', sep=' ', end='\n')
  • 이스케이프 코드

    코드 설명
    \n Enter키와 같다
    \t tab과 같다
    \\ \를 문자로 인식한다
  • 기본값은 여러 자료를 입력할 때 space로 구분되고, print가 끝나면 자동으로 Enter가 된다.

      print('간절하게','원하면','지금','움직이세요','-노희경')
      print('간절하게','원하면','지금','움직이세요','-노희경', sep='|')
      print('간절하게','원하면','지금','움직이세요','-노희경', end='\t')
      print('간절하게','원하면','지금','움직이세요','-노희경', sep='')
    
      간절하게 원하면 지금 움직이세요 -노희경
      간절하게|원하면|지금|움직이세요|-노희경
      간절하게 원하면 지금 움직이세요 -노희경	간절하게원하면지금움직이세요-노희경
    
  • 여러 변수들과 문자를 섞어서 출력하기도 하는데 Formatting을 알면 매우 간편하게 적용할 수 있다. 이에 대한 정리는 하나의 포스트로 정리하려고 한다.

Note 어떤 자료형인지 알고 싶을 때 우리는 주로 type() 또는 isinstance()로 확인한다.

  • type(a): a의 자료형이 무엇인지 알려준다.
  • isinstance(a, str): a의 자료형이 str이 맞는지 True/False로 알려준다.

2. 숫자형

1) 정수(int)

  • int(a): a를 정수형으로 변환한다.
print(12345, '> 양의 정수, type:', type(12345))
print(0, '> 0, type:', type(0))
print(-12345, '> 음의 정수, type:', type(-12345))
12345 > 양의 정수, type: <class 'int'>
0 > 0, type: <class 'int'>
-12345 > 음의 정수, type: <class 'int'>

2) 실수(float)

  • float(a): a를 실수형로 변환한다.
# 실수 
print(2.0, '> 실수, type:', type(2.0))
print(3.14, '> 실수, type:', type(3.14))
print(2e3, '> 실수, type:', type(2e3))
print(2e-3, '> 실수, type:', type(2e-3))
2.0 > 실수, type: <class 'float'>
3.14 > 실수, type: <class 'float'>
2000.0 > 실수, type: <class 'float'>
0.002 > 실수, type: <class 'float'>

3) 복소수(complex)

함수 설명
a.real 복소수의 실수 부분을 출력한다.
a.imag 복소수의 허수 부분을 출력한다.
a.conjugate() 복소수의 컬레복소수를 출력한다.
abs(a) 복소수의 절댓값을 출력한다.
a = 1+2j
b = 3-4j
print(a,b)
print(a.real,b.real)                # 복소수의 실수 부분 출력
print(a.imag,b.imag)                # 복소수의 허수 부분 출력
print(a.conjugate(),b.conjugate())  # 켤레 복소수 출력
print(abs(a),abs(b))                # 복소수의 절대값 출력
(1+2j) (3-4j)
1.0 3.0
2.0 -4.0
(1-2j) (3+4j)
2.23606797749979 5.0

4) 수열

  • range(start, end, step)함수를 통해 쉽게 수열을 만들 수 있다.
  • start부터 end-1까지 간격이 step인 수열을 만든다.
  • step이 생략되었다면 간격이 1이다.
  • typerange이며 출력했을 때 수열로 나타나지 않는다.
    하지만 리스트나 튜플을 씌우면 나타난다.
# 0부터 9까지 출력
print(range(10), '> type: ', type(range(10)))
print(list(range(10)), tuple(range(10)))

# 1부터 20까지 2간격으로 출력 
print(list(range(1, 21, 2)), tuple(range(1, 21, 2)))

# 10부터 아래로 1까지 출력 
print(list(range(10, 0, -1)), tuple(range(10, 0, -1)))
range(0, 10) > type:  <class 'range'>
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19] (1, 3, 5, 7, 9, 11, 13, 15, 17, 19)
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1] (10, 9, 8, 7, 6, 5, 4, 3, 2, 1)

5) 연산

연산자 설명
+, -, *, / 사칙연산(덧셈,뺄셈,곱셈,나눗셈)
** 거듭제곱
// 나눗셈의 몫
% 나눗셈의 나머지
print('덧셈:',1 + 2, end=' | ')
print('뺄셈:',3 - 4, end=' | ')
print('곱셈:',5 * 6, end=' | ')
print('나눗셈:',123 / 10)
print('거듭제곱:', 2 ** 10, end=' | ')
print('몫:',123 // 10, end=' | ')
print('나머지:',123 % 10)
덧셈: 3 | 뺄셈: -1 | 곱셈: 30 | 나눗셈: 12.3
거듭제곱: 1024 | 몫: 12 | 나머지: 3

3. 문자형

  • str(a): a를 문자형로 변환한다.

1) 한 줄 / 여러 줄

  • 작은따옴표(‘‘)와 큰따옴표(““)로 표시한다.
  • 출력할 때 따옴표를 표시하고 싶을 때에는 앞에 \를 붙이거나 표현하고 싶은 따옴표와는 다른 따옴표를 사용한다.
  • 여러 줄은 따옴표 3개로 표시한다. 여러 줄은 Enter를 읽는다.
print("간절하게 원하면 '지금' 움직이세요 - 노희경")
print('간절하게 원하면 "지금" 움직이세요 - 노희경')
print('간절하게 원하면 \'지금\' 움직이세요 - 노희경')
print("간절하게 원하면 \"지금\" 움직이세요 - 노희경")
print("-"*40)
print("""간절하게 원하면
지금 움직이세요
- 노희경""")
print("-"*40)
print("""
간절하게 원하면
지금 움직이세요
- 노희경
""")
print("-"*40)
간절하게 원하면 '지금' 움직이세요 - 노희경
간절하게 원하면 "지금" 움직이세요 - 노희경
간절하게 원하면 '지금' 움직이세요 - 노희경
간절하게 원하면 "지금" 움직이세요 - 노희경
----------------------------------------
간절하게 원하면
지금 움직이세요
- 노희경
----------------------------------------

간절하게 원하면
지금 움직이세요
- 노희경

----------------------------------------

3) 연산

  • 문자에서의 연산은 연결 또는 반복을 의미한다.
# 문자 연결 
print('커피의','즐거움을','만드는','작은','차이의','미학 - 할리스커피')
print('커피의'+'즐거움을'+'만드는'+'작은'+'차이의'+'미학 - 할리스커피')

# 문자의 반복 
print("HA "*10)
print("=" * 50)
커피의 즐거움을 만드는 작은 차이의 미학 - 할리스커피
커피의즐거움을만드는작은차이의미학 - 할리스커피
HA HA HA HA HA HA HA HA HA HA 
==================================================

4) 인덱싱(Indexing) / 슬라이싱(Slicing)

  • 파이썬에서 위치는 <font color=’red’;>0부터</font> 시작한다.
  • a[start:end:step],
    a에서 start부터 end-1까지 step의 간격인 수열의 위치에 있는 요소만 출력한다.
    step이 생략되면 1이라고 생각하자.
     
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
0 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
a = "일이삼사오육칠팔구십"
print(a[0])                     # 0위치 요소 출력        
print(a[-1])                    # 마지막 요소 출력
print(a[:5])                    # 처음부터 4위치 요소까치 출력
print(a[5:])                    # 8위치 요소부터 끝까지 출력
print(a[:-1])                   # 마지막 요소 빼고 출력
print(a[::2])                   # 홀수번째 요소만 출력
print(a[::-1])                  # 반대로 출력
일
십
일이삼사오
육칠팔구십
일이삼사오육칠팔구
일삼오칠구
십구팔칠육오사삼이일

4) 문자 변형

  • 문자를 대문자 / 소문자로 변경

    함수 설명
    a.upper() a를 모두 대문자로 출력한다
    a.lower() a를 모두 소문자로 출력한다
    a.swapcase() a에서 대문자는 소문자로, 소문자는 대문자로 출력한다
      a = "americano"
      print(a, '>', a.upper())
    
      b = "DELICIOUS"
      print(b, '>', b.lower())
    
      c = "AmErIcAnO"
      print(c, '>', c.swapcase())
    
      americano > AMERICANO
      DELICIOUS > delicious
      AmErIcAnO > aMeRiCaNo
    
  • 문자 삽입 / 분리 / 제거

    코드 설명
    a.zfill(int) “문자”의 길이를 지정하고 왼쪽을 0으로 채운다
    a.join('문자') “문자”의 한 글자마다 a를 삽입한다
    a.split('문자') “문자”를 a를 구분자로 사용하여 분리한다
    a.strip('문자') a의 양쪽에 ‘문자’를 제거한다
    a.lstrip('문자') a의 왼쪽에 ‘문자’를 제거한다
    a.rstrip('문자') a의 오른쪽에 ‘문자’를 제거한다
      txt = '135'
      print(txt.zfill(10))                    # 문자 앞에 0으로 채워 길이가 10인 문자 생성
    
      a = " > "
      print(a.join("가나다라마바사"))          # 문자사이에 '>' 삽입
    
      b = a.join("가나다라마바사")             # 문자를 '>'를 구분자로 하여 분리
      print(b.split(a))
    
      c = "  americano  "
      print('|' + c + '|')        
      print('|' + c.lstrip() + '|')           # 왼쪽 공백 제거
      print('|' + c.rstrip() + '|')           # 오른쪽 공백 제거
      print('|' + c.strip() + '|')            # 양쪽 공백 제거
    
      0000000135
      가 > 나 > 다 > 라 > 마 > 바 > 사
      ['가', '나', '다', '라', '마', '바', '사']
      |  americano  |
      |americano  |
      |  americano|
      |americano|
    

5) 문자 정렬

코드 설명
a.ljust(int) 입력한 정수 길이에 ‘문자’를 채우고 왼쪽으로 정렬한다.
a.rjust(int) 입력한 정수 길이에 ‘문자’를 채우고 오른쪽으로 정렬한다.
a.center(int) 입력한 정수 길이에 ‘문자’를 채우고 가운데으로 정렬한다.
text = 'americano'
print('|',text,'|',sep="")              
print('|',text.ljust(15),'|',sep="")    # 문자 길이 15에서 왼쪽 정렬
print('|',text.rjust(15),'|',sep="")    # 문자 길이 15에서 오른쪽 정렬
print('|',text.center(15),'|',sep="")   # 문자 길이 15에서 가운데 정렬
|americano|
|americano      |
|      americano|
|   americano   |

6) 문자 찾기

코드 설명
a.find("문자") “문자”가 처음 나온 위치를 출력한다
만약 a안에 문자가 없으면 -1을 출력한다
a.index("문자") “문자”가 처음 나온 위치를 출력한다
만약 a안에 문자가 없으면 Error가 나타난다
a.count("문자") a안에 “문자”가 몇 번 나타나는지를 출력한다
text = 'americano'
print(text.find("a"), end=', ')          # 처음 'a'의 위치 출력
print(text.find("b"), end=', ')          # 존재하지 않다면 -1로 출력
print(text.index("a"), end=', ')         # 처음 'a'의 위치 출력
# print(text.index("b"))                 # 존재하지 않다면 Error
print(text.count("a"))                   # 'a'의 개수 출력
0, -1, 0, 2

Reference

댓글남기기