세미콜론
- 구문을 마칠때 써줘도 되고, 안써줘도 됨. (보통은 안 써줌.)
- 파이썬에서는 한 라인에 나열된 여러 구문을 구분하기 위해 세미콜론을 사용함.
print('Hello'); print('1234')
줄바꿈 (sep, end)
>>> print(10, 20, 30, sep=' $ ')
// 결과: 10 $ 20 $ 30
>>> print(10, 20, 30, sep='\n')
// 결과: 10
20
30
>>> print('10\n20\n30')
// 결과: 10
20
30
>>> print(10, end=' ')
>>> print(20, end=' ')
>>> print(30)
// 결과: 102030
>>> print(10, end=' , ')
>>> print(20, end=' , ')
>>> print(30)
// 결과: 10,20,30
>>> a, b = map (float, input('실수를 입력하세요: ').split( ))
입력된 값을 실수로 변환하여 변수 여러 개에 저장함.
튜플
- 리스트와 기능은 같지만, 요소를 변경, 추가, 삭제할 수 없음. ( 읽기 전용 리스트)
- 요소를 실수로 변경하는 상황을 방지해줌.
- 괄호로 묶어 주고, 콤마로 구분해줌. tuple = (10, 20, 30)
- 괄호로 묶지 않고, 콤마로 구분해도 됨. tuple = 10, 20, 30
- 요소가 한 개일 경우에는 요소 뒤에 콤마를 붙여줌. tuple = (10, ) tuple = 10,
시퀀스 자료형
- list, tuple, range, str 등 값이 연속적으로 이어진 자료형
- 시퀀스 객체: 시퀀스 자료형으로 만든 객체
- 요소(element): 시퀀스 객체에 들어있는 각각의 값
- list: 슬라이스로 요소 추출 O / 할당 O / 삭제 O
- tuple, range, str: 슬라이스로 요소 추출 O / 할당 X / 삭제X
- 단, range는 덧셈 연산자(+)로 바로 객체끼리 연결할 수 없음. (list 또는 tuple화 시켜서 연결해야 함.)
>>> range(0,3) + range(3,6) --> X
>>> list(range(0,3)) + list(range(3,6)) --> O 결과: [0, 1, 2, 3, 4, 5]
>>> tuple(range(0,3)) + tuple(range(3,6)) --> O 결과: (0, 1, 2, 3, 4, 5)
- 단, range는 곱셈 연산자(*)로 바로 객체를 반복할 수 없음. (list 또는 tuple화 시켜서 반복해야 함.)
>>> range(0,3) * 3 --> X
>>> list(range(0,3)) * 3 --> O 결과: [0, 1, 2, 0, 1, 2, 0, 1, 2]
>>> tuple(range(0,3)) * 3 --> O 결과: (0, 1, 2, 0, 1, 2, 0, 1, 2)




시퀀스 자료형의 공통기능
- 요소 in 시퀀스 객체 : 요소가 시퀀스 객체내에 존재하면 True, 존재하지 않으면 False 반환
>>> num = [10, 20, 30, 40]
>>> 30 in num
// 결과: True
- 요소 not in 시퀀스 객체: 요소 in 시퀀스 객체와 반대로 작동함.
- 곱셈 연산자 (*): 시퀀스 객체를 특정 횟수 만큼 반복하여 새로운 시퀀스 객체를 만듦.
>>>[10, 20, 30] * 3
// 결과: [10, 20, 30, 10, 20, 30, 10, 20, 30]
- len(시퀀스 객체) --> 요소의 개수를 구해줌.
- del 시퀀스객체 [ 시작 인덱스 : 끝 인덱스-1] --> 요소를 삭제함.
- 증가폭(stride)이 없으면 슬라이스 범위의 요소개수와 할당할 요소개수가 정확히 일치하지 않아도 알아서
유동적으로 처리해줌.
- 증가폭이 있으면 슬라이스 범위의 요소 개수와 할당할 요소 개수가 반드시 정확히 일치해야 함.

딕셔너리 { key : value }
- key(키): 문자열, 정수, 실수, 불리언 O / 리스트, 딕셔너리 X
- value(값): 문자열, 정수, 실수, 불리언, 리스트, 딕셔너리 O
- 키가 중복되면 가장 뒤에 있는 key와 value만 가져옴.
>>> lux = {'health':500, 'health':1000, 'mana':300, 'power':400}
>>> print(lux)
// 결과: {'health': 1000, 'mana': 300, 'power': 400}
- dict( 키1=값1 , 키2=값2 , 키3=값3 )의 형식으로 딕셔너리를 만들 수도 있음.
이때는 키가 자동으로 문자열로 바뀜. (따라서, 키가 문자열이더라도 따옴표를 붙이면 안됨. )
>>> lux = dict(health=500, mana=300, power=400)
>>> print(lux)
// 결과: {'health': 500, 'mana': 300, 'power': 400}
- dict([(키1, 값1), (키2, 값2), (키3, 값3)])의 형식으로 딕셔너리를 만들 수도 있음.
>>> lux = dict([('health',490), ('mana',334), ('melee',550)])
>>> print(lux)
// 결과: {'health': 500, 'mana': 300, 'melee': 400}
- dict(zip([키1, 키2, 키3], [값1, 값2, 값3]))의 형식으로 딕셔너리를 만들 수도 있음.
>>> lux = dict(zip(['health', 'mana', 'power'], [500, 300, 400]))
>>> print(lux)
// 결과: {'health': 500, 'mana': 300, 'power': 400}
if의 조건식
- None => False로 취급됨.
- 0 => False로 취급됨.
- 0이 아닌 수 => True로 취급됨.
- 빈 문자열 => False로 취급됨.
- 내용이 있는 문자열 => True로 취급됨.
for 반복문
for 변수 in 시퀀스 객체:
반복할 코드
for i in range(10):
print( 'Hello' , i )
* range의 반복 횟수에서 꺼낸 숫자는 변수에 저장되며, 이는 반복할 코드에서 사용할 수 있음.
* range(시작값 , 끝값 , 증가폭)
- 시작값을 끝값보다 크게 하고, 증가폭을 음수로 지정하면 숫자를 감소시키면서 반복할 수도 있음.
for i in range(10, 0, -1):
print('hello' , i )
- range 앞에 reversed를 붙여줌으로써 출력 순서를 거꾸로 뒤집을 수도 있음.
for i in reversed(range(10)):
print( 'Hello', i )
* for문은 반복 횟수가 정해져 있을 때 주로 사용함.
* while문은 반복 횟수가 정해져 있지 않을 때 주로 사용함.
for 변수1 in range(반복 횟수):
for 변수2 in range(반복 횟수):
가로(행) 처리 코드
세로(열) 처리 코드
난수 (random number)
- 특정 주기로 반복되지 않으며, 랜덤으로 발생하는 숫자
import random
random.random( ): 0~1 사이의 실수인 난수를 생성함.
random.randint(시작값, 끝값) : 시작값부터 끝값 사이의 정수인 난수를 생성함.