NKLCB 001

Chapter 01. 준비

개요

Test 준비 tips!

  • Daily Test
    당일 공부한 내용에서만 출제, 범위가 좁은 만큼 깊게 출제, 개념 이해 객관식 + 코드 의미의 해석 문제 + 주관식 용어 문제로 구성.
  • Final Test
    전체 범위에서 출제, 세세한 내용보다 주로 전반적인 이해도를 평가, Daily Test의 복습이 도움은 되나, 맹신 X

python의 장점

  • 간결한 문법
  • 다양한 운영체제를 지원
  • GUI(Window, macOS, chrome 등 Graphical User Interface를 의미) Application 개발 가능(PyQT)
  • 방대한 라이브러리 지원(Framework, Opensource 등)
  • 범용적인 언어(네트워크, 웹, 데이터분석, 기계학습 등)

개발 환경 설정

vscode, python 설치

단축어

  • ctrl + shift + B : task runner

Chapter 02. print 함수의 이해

print() 함수는 가장 기본적인 output(출력) 함수이다. print() 함수를 사용해서 개발 중간에 결과를 확인하고, 의도한 값과 계산 과정이 이루어지고 있는 지를 파악할 수 있다.

00. print 함수의 다양한 사용 방법

print() 함수를 활용해 변수는 물론이고, 숫자, 문자열 등의 다양한 자료형을 출력할 수 있다. print() 함수를 작성하면, python의 interpreter가 해석해 console로 출력해주는 구조를 가지고 있다.

01. print 함수의 기본 출력

문자열을 출력하는 4가지 방법

문자열을 print()함수로 출력할 때, 작은 따옴표('_'), 큰 따옴표("_"), 작은 따옴표 3개('''_'''), 큰 따옴표 3개("""_""")로 묶을 수 있다.

[예시]

print('Hello python!')
print("Hello python!")
print()						# 줄바꿈
print("""Hello python!""")
print('''Hello python!''')

Hello python!
Hello python!

Hello python!
Hello python!

separator 옵션 활용하기

separator 옵션은 print() 함수 내부에서 sep=' '을 통해 활용할 수 있으며, 해당 옵션은 print() 함수 내부의 ,로 구분된 각각의 인자 사이의 연결자(어떤 것으로 연결할 지)를 결정한다.

기본값으로 sep=' '(단순 공백)으로 설정되어 있어, ,로 구분된 각각의 인자는 '띄어쓰기 공백'으로 연결된다.

[예시]

print('T', 'E', 'S', 'T')
print('T', 'E', 'S', 'T', sep='')			# 공백 없음
print('2021', '06', '12', sep='-')			# -로 연결
print('niceman', 'gmail.com', sep='@')			# @로 연결

T E S T      
TEST
2021-06-12
[email protected]

end 옵션 활용하기

end 옵션은 print() 함수 내부에서 end='\n'으로 활용할 수 있으며, 해당 옵션은 print 함수의 다음 라인과의 연결 관계를 설정한다.

기본값으로 end='\n'로 설정되어 있어서, 다음 라인과 줄바꿈이 된다.

print('Welcome to', end=' ')				# 공백으로 연결
print('The Black Paradise ', end='')			# 공백 없이 바로 연결
print('piano notes')

Welcome to The Black Paradise piano notes

Format 형식 출력

print() 함수의 중요한 문법 중 하나로, 개발할 때 많이 사용된다. 특히, 중괄호{}.format() 함수를 활용하여 원하는 부분에 문자열, 숫자 등의 값을 넣을 수 있다.

이때, {}의 개수에 따라 format() 함수의 인자를 넣어주면 된다. 단순한 중괄호만 있는 경우, format() 함수의 인자 순서대로 할당된다.

[예시]

print('{} and {}'.format('You', 'Me'))

You and Me

나아가, index를 활용해 .format(값, 값) 함수의 인자가 들어갈 자리를 지정(mapping, 할당)할 수 있다.

[예시]

print("{0} and {1} and {0}".format('You', 'Me'))
# 0번 자리에 'You', 1번 자리에 'Me'가 할당된다.

You and Me and You

더 직관적으로 a, b 등 이름을 지정하고, .format(a=값, b=값) 함수에서 각각 인자로 설정하여 더 정확하게 값을 할당할 수 있다.

[예시]

print('{a} are {b}'.format(a='You', b='Me'))
# a 자리에 'You', b 자리에 'Me'가 할당된다.

You are Me

format 함수 없이 %s, %d, %f%(인자)를 활용하여 더 정확하게 동일한 기능을 수행할 수 있다.

  • %s : 문자
  • %d : 정수
  • %f : 실수
  • %i : 정수
  • %o : 8진수
[예시]

print('%s\'s favorite number is %d' % ('Mickey', 7))
# 큰 따옴표와 작은 따옴표를 사용하여 's를 쉽게 사용할 수 있다.
print("%s's favorite number is %d" % ('Mickey', 7))

Mickey's favorite number is 7
Mickey's favorite number is 7

자릿수 지정하기

각각 정수인지 실수인지, 자릿수는 몇 개인지 지정할 수 있다.

[예시]

print("Test1: %5d, Price: %4.2f" % (776, 6533.125))
# 5자리의 정수, 4자리 + 소수점 2자리의 실수

Test1:   776, Price: 6533.12

{key: format} 형식으로 사용할 수도 있다.

[예시]

print("Test1: {0: 5d}, Price: {1: 4.2f}".format(776, 6533.125))
print("Test1: {a:05d}, Price: {b: 4.2f}".format(a=776, b=6533.125))

Test1:   776, Price: 6533.12
Test1: 00776, Price: 6533.12

정렬과 공백 채우기

  • 공백 채우기
    정렬(필수사항) 앞에 문자는 빈 칸에 작성될 문자가 된다.(기본값= ' ')
[예시]

print("{0:=^10}".format("hi"))
print("{0:~^10}".format("yes"))
print("{0:#>10}".format("bye"))

====hi====
~~~yes~~~~
#######bye
  • 왼쪽 정렬(<)
print("{0:_<10}".format("hi"))

hi________
  • 오른쪽 정렬(>)
print("{0:>10}".format("hi"))

        hi
  • 가운데 정렬(^)
print("{0:^10}".format("hi"))

    hi
  • 소수점과 총 자리수
print("{0:_>10.5f}".format(1.23456789))

___1.23457

Escape Code 사용법

  • \n : 개행(줄바꿈)
  • \t : 탭
  • \\, \', \" : 해당 문자 작성
  • \r : 캐리지 리턴
  • \f : 폼 피드
  • \a : 벨 소리
  • \b : 백스페이스
  • \000 : null 문자
[예시]

print('\'You\'')
print("'You'")
print('"You"')
print("""'You'""")
print('Y\no\nu')
print('Y\to\tu')

'You'
'You'
"You"
'You'
Y
o
u
Y       o       u

02. 몸 풀기 코딩

python 구성 요소의 기초

  • 인코딩(입/출력)
  • 변수
  • 조건문
  • 함수, 클래스, 인스턴스(객체)
  • 정보 출력

python의 철학, 장점, 기능 등에 대한 설명 확인하기

import this를 통해 python에 대한 설명을 확인할 수 있다.

import this


The Zen of Python, by Tim Peters   

Beautiful is better than ugly.     
Explicit is better than implicit.  
Simple is better than complex.     
Complex is better than complicated.
Flat is better than nested.        
Sparse is better than dense.       
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

python 기본 인코딩

python ver.3 이후 utf-8으로 인코딩 방식이 변경됐다.(기존 ver.2에서는 UNICODE 방식으로, 한글 입력에 어려움이 있었다.)

  • 인코딩 기본 값이 무엇인지 확인하기
    입력 인코딩의 기본값이 utf-8, 출력 인코딩의 기본값도 utf-8임을 알 수 있다.
import sys

print(sys.stdin.encoding)
print(sys.stdout.encoding)

utf-8
utf-8

출력문

print로 출력문을 활용할 수 있다.

[예시]

print('My name is James!')

My name is James!

변수 선언

변수는 equal 기호 우측의 '값'이 좌측의 '변수명'에 할당 되는 구조로 이루어진다. 즉, 변수는 어떠한 이름에 값을 할당할 때 사용한다.

[예시]

myName = 'James'
print(myName)

James

조건문

if 조건 : 동작문

[예시]

if myName == 'James':
    print('Ok')

Ok

반복문

참고로, indent(들여쓰기)가 제대로 되지 않으면 error가 발생한다.(문법으로 규정되어 있기 때문이다.)

  • for문으로 구구단 출력하기
[예시]

for i in range(1, 10):
    for j in range(1, 10):
        # print('{} X {} = {}'.format(i, j, i * j))
        print('%d * %d =' % (i, j), i*j)

1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
...
9 * 8 = 72
9 * 9 = 81

변수/함수 선언(한글)

자유도가 높아 한글로도 변수나 함수의 선언이 가능하지만, 추천하지 않는다.

이름 = '임희재'
print(이름)

임희재

함수 선언

def 예약어(define)를 사용해서 함수를 선언할 수 있다.

[예시]

def hello():
    print('Hello, python!')

선언한 함수를 호출해주어야 실행된다.

[예시]

hello()

Hello, python!

클래스(class)

객체 지향에서 다루는 것으로, class 예약어를 활용하여 클래스를 선언할 수 있다.

[예시]

class Cookie:
    # class 내부의 속성, 메소드 작성
    pass
  • 객체 생성(instance)
    변수에 클래스를 실행해서 할당하는 것을 객체를 생성한다고 한다.
[예시]

cookie = Cookie()

class 정보값 출력

id()dir()을 활용해 해당 클래스의 정보를 출력할 수 있다.

[예시]
print(id(cookie))
print(dir(cookie))

1973665503840
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']

채움 문자와 숫자 표시형식

{[인덱스]:[채움문자][정렬][길이][,|_][형식문자]}

좋은 웹페이지 즐겨찾기