[Python] 기본문법
programming/python

[Python] 기본문법

2. 기본문법

 

파이썬 표준 라이브러리 문서

 

IPython Notebook에서의 실행 방법

Cell에 코드 입력 후 Shift + Enter

 

예약어(Reserved Words)

파이썬에서 이미 문법적인 용도로 사용되고 있기 때문에 변수명 등의 식별자로 사용하면 안 되는 단어들

파이썬에서 이미 사용되고 있는(용도가 예약된) 단어들

예약어를 변수에 사용하면 에러는 없으나 고유 기능은 사라짐

Python 3.6에서는 33개의 예약어가 사용됨

(Python 3.7에서는 35개의 예약어가 사용됨)

 

# 기본 모듈이 아닌 경우 import 해야 함
import keyword

# 키워드(예약어) 목록
print(keyword.kwlist)

# len() 개수, 키워드의 개수
print(len(keyword.kwlist))

 

연산

1 + 2
3 / 2.4
3 * 9
10 ** 3

 

주석

# 한 줄 주석

"""
여러 줄 주석(큰따옴표 또는 작은따옴표 3개)
"""

print(10)

 

변수 작성 규칙

첫 글자는 영문 대소문자, _로 시작

나머지 글자들은 영문자, 숫자, _로 구성

대소문자 구분

길이 제한 없음

예약어는 사용할 수 없음

# a++, a--는 지원되지 않음: a += 1, a -= 1로 해야 함
a = 10
a += 1
print(a)

# 문자열은 작은따옴표 또는 큰따옴표로 감싼다.
a = "파이썬"
print(a)

 

가변자료형

# 자료형이 없음(가변자료형)
a = 3
b = 4

# 3의 4승
a ** b

 

# 여러개의 변수에 할당 가능
a, b = 10, 20
print(a, b)

i = j = k = 10
print(i, j, k)

 

변수의 swap

# 변수의 swap
a, b = 10, 20
print(a, b)

a, b = b, a
print(a, b)

 

변수의 삭제

# 변수의 삭제: del
b = 2
print(b)

del b
print(b)

 

나머지 연산자

# 나머지 연산자
print(7 % 3)
print(7 / 4)

# 나눗셈 후 소수 이하를 버림
print(7 // 4)

 

출력 형식

# 출력 형식
x = 9
print("정수 1: {0}".format(x))
print("정수 2: {0}".format(3**4))                      # 제곱
print("정수 3: {0}".format((int(8.3) / int(2.7))))     # 강제 형 변환

 

소수 이하 자릿수 지정 방법

# 소수 이하 자릿수 지정 방법
print("실수 1: {0:.3f}".format(8.3 / 2.7))

y = 2.5 * 4.8
print("실수 2: {0:.1f}".format(y))

r = 8 / float(3)
print("실수 3: {0:.2f}".format(r))
print("실수 4: {0:.4f}".format(8.0 / 3))

 

 

자료형의 출력

# 자료형의 출력
print(type(10))
print(type(10.5))
print(type("hello"))

 

논리형 변수

# 논리형 변수
hungry = True
sleepy = False
print(type(hungry))
print(not hungry)
print(hungry and sleepy)
print(hungry or sleepy)

 

비교연산자

  • x < y: x가 y보다 작다
  • x > y: x가 y보다 크다
  • x == y: x와 y가 같다
  • x != y: x와 y가 같지 않다
  • x >= y: x가 y보다 크거나 같다
  • x <= y: x가 y보다 작거나 같다

 

  • x or y
  • x and y
  • not x
a = 1
b = 3

if a == 1 and b == 3:
    print("ok")

# \(역슬래시) - 코딩이 길어질 경우 사용
if a == 1 and \
        b == 3:
    print("ok")

 

Multi Line Text

# Multi Line Text
multiline = "Hello\nPython"
print(multiline)

# 작은따옴표 3개 또는 큰따옴표 3개를 쓰면 여러 라인에 걸쳐 문자열 작성 가능
multiline = '''Hello
Python'''
print(multiline)

 

문자열 연결

 

 

 

# 문자열 연결

head = "파이썬은 "

tail = "재미있다."

print(head + tail)

파이썬은 재미있다.

 

...

 

# 문자열 곱하기

a = "파이썬"

print(a * 2)

print(a * 3)

 

print("=" * 50)

print("My Program")

print("=" * 50)

파이썬파이썬

파이썬파이썬파이썬

==================================================

My Program

==================================================

 

# 인덱싱 - 문자의 위치

# 문자열의 인덱스는 0부터 시작함

a = "Life is too short"

# 앞에서 네번째

print(a[3])

# 뒤에서 두번째

print(a[-2])

# 슬라이싱 - 일부분을 잘라냄

# 0번에서 3번까지

print(a[0:4])

# 5번부터 끝까지

print(a[5:])

# 0번부터 6번까지

print(a[:7])

# 처음부터 끝까지

print(a[:])

 

# in, not in

str = "Hello world"

print("world" in str)

print("world" not in str)

True

False

 

# 문자열 formatting

 

# % 위치에 숫자 대입

age = 20

print("당신의 나이는 %s세입니다.", % age)

# % 위치에 문자열 대입

fruit = "사과"

print("나는 %s를 좋아한다. % fruit)

# 2개 이상의 값 대입

name = "김철수"

print("%s님의 나이는 %s세입니다." % (name, age))

# %를 쓰고 싶을 경우 %%로 두번 입력한다.

rate = 98

print("에러율 : %d%%" % rate)

 

# %전체자리수.소수이하자리수f - 소수점도 포함됨

point = 3.141592

print("원주율 : %10.3f" % point)

당신의 나이는 20세입니다.

나는 사과를 좋아한다.

김철수님의 나이는 20세입니다.

에러율 : 98%

원주율 :           3.142

 

# 문자열 포매팅

 

# 숫자 대입

age = 15

result = "나이 : {0}세".format(age)

print(result)

 

# 문자열 대입

name = "김철수"

result = "이름 : {0}".format(name)

print(result)

 

# 2개 이상의 값 넣기

result = "{0}님의 나이는 {1}세입니다.".format(name, age)

print(result)

 

# 변수 이름으로 입력

result = "{name}님의 나이는 {age}세입니다.".format(age = 20, name = '김철수')

print(result)

나이 : 15세

이름 : 김철수

김철수님의 나이는 15세입니다.

김철수님의 나이는 20세입니다.

 

# 왼쪽 정렬

# 전체 자리수는 10으로 설정

result = "{0:<10}".format("hi")

print(result)

 

# 오른쪽 정렬

result = "{0:>10}".format("hi")

print(result)

 

# 가운데 정렬

result = "{0:^10}".format("hi")

print(result)

 

# 공백 채우기 - 공백문자 대신 =로 채움, 공백문자는 정렬 문자 앞에 넣어야 함

result = "{0:=^10}".format("hi")

print(result)

 

result = "{0:-<10}".format("hi")

print(result)

hi

          hi

    hi

====hi====

----hi----

 

# 소수점 표현

y = 3.42134234

# 소수 이하 네자리까지만 표현

result = "{0:0.4f}".format(y)

print(result)

result = "{0:10.4f}".format(y)

print(result)

3.4213

          3.4213

 

# 문자 갯수 세기

a = "hobby"

print(a.count('b'))

2

 

# 문자열의 위치

a = "Have a nice day."

print(a.find('nice'))

# 문자열을 찾지 못하면 -1을 리턴