변수의 자료형에 대한 선언이 없다.
Python은 변수에 저장되는 값에 따라 자동으로 자료형이 지정된다.
문장의 끝을 의미하는 세미콜론(;)을 사용할 필요가 없다.
변수에 연속하여 값을 저장하는 것이 가능하다.
예) x, y, z = 10, 20, 30
if나 for와 같이 코드 블록을 포함하는 명령문을 작성할 때, 코드 블록은 콜론(:)과 여백으로 구분한다.
같은 수준의 코드는 반드시 동일한 여백을 가져야 한다.
if a>b :
print('a')
else :
print('b')
input() 함수는 Python의 표준 입력 함수로, 키보드로 입력받아 변수에 저장하는 함수이다.
입력되는 값은 문자열 로 취급되어 저장된다.
변수 = input('출력문자')
변수1, 변수2, ... = input('출력문자').split('분리문자')
input() 함수는 입력되는 값을 문자열로 저장하므로, 숫자로 사용하기 위해서는 형변환이 필요하다.
입력받은 데이터가 1개일 때
변수 = int(input()) // 정수로 변환
변수 = float(input()) // 실수로 변환
– map() 함수를 사용해야 한다.
변수1, 변수2, ... = map(int, input().split())
변수1, 변수2, ... = map(float, input().split())
print(출력값1, 출력값2, ..., sep = '분리문자', end = '종료문자')
print('서식 문자열'%출력값)
print('서식 문자열'%(출력값1, 출력값2, ...))
Python에서 문자열은 작은따옴표(‘ ‘), 큰따옴표(“ “), 3개의 작은따옴표(‘’’ ‘’’), 3개의 큰따옴표(“”” “””) 로 묶어서 표현할 수 있다.
Python은 하나의 문자를 지정하는 char 자료형이 없기 때문에, 작은따옴표와 큰따옴표를 자유롭게 사용할 수 있다.
문자열 내에 따옴표가 사용될 경우, 다른 따옴표로 전체 문자열을 묶는다.
3개의 따옴표를 사용하면, 문자열 내에서 작은따옴표와 큰따옴표를 자유롭게 사용할 수 있다. - 예) x = ‘’’ I’m “tired” ‘’’ → 작은따옴표와 큰따옴표가 모두 포함된 문자열이 3개의 따옴표로 묶여 저장된다.
제어문자를 사용할 수 있다.
Python 에서 문자열 위치는 ‘0’ 부터 시작한다.
문자열 Formatting 은 기존 변수에 저장된 값을 사용하여 문자열을 조정하는 것이다.
name = 'abc'
num = '10'
x = f"Hello {name}, you're {num}th user"
print(x)
– 실행결과)
Hello abc, you’re 10th user
C 와 Java 에서는 여러 요소들을 한 개의 이름으로 처리할 때 배열을 사용하고, Python 에서는 리스트를 사용한다.
Python 은 기본 자료형으로 배열 (Array) 을 제공하지 않는다.
리스트는 필요에 따라 개수가 달라지기 때문에 리스트를 선언할 때 크기를 지정하지 않는다.
배열과 달리 리스트는 정수, 실수, 문자열 등 다양한 자료형을 저장할 수 있다.
Python 에서 리스트의 위치는 ‘0’ 부터 시작한다.
리스트명 = [ 값1, 값2, ... ]
리스트명 = list([ 값1, 값2, ... ])
a = [ 10, 'mike', 23.45]
a = list([ 10, 'mike', 23.45 ])
# - 두 방법에 대한 결과는 동일하다.
''' a[0] a[1] a[2]
10 mike 23.45
'''
a.append('B')
# 리스트 a의 마지막에 'B'를 추가한다.
''' a[0] a[1] a[2] a[3]
10 mike 23.45 B
'''
a.insert(1, 777)
# 리스트 a의 두 번째 자리(a[1])에 777을 추가한다.
# 이후 요소들은 한 칸씩 뒤로 이동한다.
''' a[0] a[1] a[2] a[3] a[4]
10 777 mike 23.45 B
'''
del a[3]
# 리스트 a의 네 번째 요소(23.45)를 삭제한다.
# 이후 요소들은 한 칸씩 앞으로 이동한다.
''' a[0] a[1] a[2] a[3]
10 777 mike B
'''
a.remove(777)
# 리스트 a에서 값 777을 찾아 해당 요소를 삭제한다.
# 이후 요소들은 한 칸씩 앞으로 이동한다.
''' a[0] a[1] a[2]
10 mike B
'''
del a
# 리스트 a 자체를 삭제한다.
2차원 리스트는 리스트에 리스트를 저장하는 방식으로 구현한다.
리스트명 = [ [ 값1, 값2, 값3 ],[ 값4, 값5, 값6 ] ]
리스트A = [ 값1, 값2, 값3 ]
리스트B = [ 값4, 값5, 값6 ]
리스트명 = [ 리스트A, 리스트B ]
b = [ [ 1,2,3 ], [ 'a', 'b', 'c' ] ]
''' b[0][0] b[0][1] b[0][2]
1 2 3
b[1][0] b[1][1] b[1][2]
a b c
'''
[2, 1, 3].sort() → [1, 2, 3]
[2, 1, 3].sort(reverse = True) → [3, 2, 1]
a = [1, 2, 3]
b = a.copy() → b = [1, 2, 3]
Range 는 연속된 숫자를 생성하는 것으로, 리스트, 반복문 등에서 많이 사용된다.
0에서 ‘최종값-1’ 까지 연속된 숫자를 생성한다.
a = list(range(5))
# 0에서 4까지 연속된 숫자를 리스트 a에 저장한다.
# 0, 1, 2, 3, 4
‘초기값’에서 ‘최종값-1’ 까지 연속된 숫자를 생성한다.
a = list(range(4,9))
# 4에서 8까지 연속된 숫자를 리스트 a에 저장한다.
# 4, 5, 6, 7, 8
‘초기값’에서 ‘최종값-1’ 까지 ‘증가값’만큼 증가하면서 숫자를 생성한다.
‘증가값’이 음수인 경우, ‘초기값’에서 ‘최종값+1’ 까지 ‘증가값’만큼 감소하면서 숫자를 생성한다.
a = list(range(1, 15, 3))
# 1에서 14까지 3씩 증가하는 숫자들을 리스트 a에 저장한다.
# 1, 4, 7, 10, 13
a = list(range(9, 4, -1))
# 9에서 5까지 -1씩 감소하는 숫자들을 리스트 a에 저장한다.
# 9, 8, 7, 6, 5
슬라이스는 문자열이나 리스트와 같은 순차형 객체에서 일부를 잘라 반환하는 기능히다.
객체명[초기위치:최종위치]
객체명[초기위치:최종위치:증가값]
슬라이스는 일부 인수를 생략하여 사용할 수 있다.
객체명[:] 또는 객체명[::]
객체명[초기위치:]
객체명[:최종위치]
객체명[::증가값]
a = ['a', 'b', 'c', 'd', 'e']
a[1:3] → ['b', 'c']
# 객체의 1번째 위치에서 2번째 위치까지의 요소들을 가져온다.
a[0:5:2] → ['a', 'c', 'e']
# 객체의 0번째 위치에서 4번째 위치까지 2만큼 증가하면서 해당 위치의 요소들을 가져온다.
a[3:] → ['d', 'e']
# 객체의 3번째 위치에서 마지막 위치까지의 요소들을 반환한다.
a[:3] → ['a', 'b', 'c']
# 객체의 0번째 위치에서 2번째 위치까지의 요소들을 반환한다.
a[::3] → ['a', 'd']
# 객체의 0번째 위치에서 마지막 위치까지 3만큼 증가하면서 해당 위치의 요소들을 가져온다.
a = 'sinagong'
print(a[3:7])
# agon
a = list(range(10))
print(a[:7:2])
# a = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
# [0, 2, 4, 6]
a = 'hello, world'
print(a[7:])
# world
a = list(range(5, 22, 2))
print(a[::3])
# a = 5, 7, 9, 11, 13, 15, 17, 19, 21
# [5, 11, 17]
a = list(range(8))
print(a[2::2])
# a = 0, 1, 2, 3, 4, 5, 6, 7
# [2, 4, 6]
a = list(range(8, 3, -1))
print(a[:3])
# a = 8, 7, 6, 5, 4
# [8, 7, 6]