📝 코딩테스트 준비를 위해 수강한 파이썬 기본개념 강의를 정리해보자.
1. Numeric (숫자형)
int
: 정수형float
: 실수형 (소수점)type(변수)
-> <class 'int'> 이렇게 타입을 알 수 있는 함수my_int = 1
>>> type(my_int)
>>> <class 'int'>
1-1. 자료형 변환
float(my_int)
>>> 1.0
>>> test = 'coding'
>>> list(test) => ['c', 'o', ..., 'g']
2. String (문자열)
1) 여러줄인 문자열 변수 지정하기
my_str = """제스퍼
토미
메타
"""
my_str
-> ''제스퍼\n토미\n메타\n"
-> """ """ 이런식으로 하면 여러줄인 문자열을 한번에 변수 지정할수 있다
2) Formatting
: 대입하기
%
연산자, format메서드 사용< %d %f %s > -> C 스타일의 formatting 방법
%s
: 문자열 대입
- ex) my_str = "My name is %s" % 'Yong choi'
- my_str = "My name is Yong Choi"
%d
: 정수형 대입
- '%d %d' % (1,2)
- '1, 2'
%f
: 실수형 대입
- '%f' % 3.14
< '{ }'.format( ) > -> 좀 더 파이썬스러운 formatting 방법
'My name is {}'.format('abc')
>>> 'My name is abc'
>>> '{} x {} = {}'.format(2, 3, 2*3)
>>> '2 x 3 = 6'
3. Boolean (T / F)
4. List ( [ ]
- 배열 )
(index 값을 바꿔 지정하여 리스트 값을 수정할 수 있음!!)
5. Tuple
배열인데 index에 따라 값 수정 안됨
6. Dictionary (JS에서의 객체 {key : value}
)
[ 참고 ]
1. 자료형 강제 변환하기
2. 주석
#
으로 작성"""주석"""
이런 방식도 있음Slicing : 특정 위치의 값 잘라오기
- 공백 단위로 자르기
- 문자열을 공백 단위로 잘라줌
my_name = '김손의 코딩'
>>> my_name.split() => ['김손의', '왼손코딩']
결과값은 리스트 (배열)
print(' ', end=' ')
: 출력의 끝을 지정해줄 수 있음\n
: enter\t
: tap
- mutable : 값을 변경할 수 있음 (ex. 배열)
- immutable : 값을 바꿀 수 있음 (ex. 문자열)
1. list.append()
2. del : 배열 값 삭제
3. list.sort() : 정렬
4. list.count() : 특정값의 개수 세기
5. len(list) : 총 개수 세기
()
or 없이-> num1에 2, num2에 1로 바꾸고 싶다면?
-> num1, num2 = num2, num1
for 변수 in 컨테이너:
////실행 명령 1
////실행 명령 2
.
.
.
-> 컨테이너 안에 있는 값들을 하나씩 돌면서 실행 명령들을 실행하고, 그 다음 값으로 넘어가고
하는 반복을 수행하게 만들어서 반복문!
for animal in animals:
print(animal)
참고 : https://ctkim.tistory.com/entry/python-range-function#google_vignette
range(n) => 0 ~ n-1까지를 range 객체로 반환함
range(start, stop) => start부터 stop-1까지 반환
# (for문 사용 예시)
for n in range(0, 3):
print(n)
>>>
0
1
2
>>> range(2, 10)
>>> [2, 3, ..., 9]
# (for문 사용 예시2)
for i in range(1, 10):
print('{} x {} = {}'.format(2, i, 2*i))
>>>
2 x 1 = 2
2 x 2 = 4
...
2 x 9 = 18
for j in range(2, 10):
for i in range(1, 10) :
print('{}x{}={}'.format(j, i, j*i)
>>>
2x1=2
2x2=4
...
9x8=72
9x9=81
(예시)
[number for number in numbers if number % 2 == 1]
>>>
[1, 3, 5, 7, 9]
Assign : 할당 연산자 =
(오른쪽의 값을 왼쪽에 할당하기)
복합 할당 연산자
+=
, -=
, *=
, /=
count = count + 1
count += 1
# (같은 역할인데 줄여씀)
숫자 자료형 -> 숫자끼리 연산
- +, -, *, /
특수 연산자
**, //, %
**
: 제곱//
: 나누기 후의 몫%
: 나누기 후의 나머지% 활용 : 홀수, 짝수 구하기
for number in numbers:
if number % 2 == 1:
print(number, '홀수')
else:
print(number, '짝수)
>>>
1 홀수
2 짝수
...
10 짝수
+
: 문자열들을 붙여주는 역할*
3==
: 같다 (왼쪽과 오른쪽이 같다)!=
: 다르다>, <, >=, <=
: 부등호if문 : 참 거짓 판단하기
if 조건:
실행할 명령 1
실행할 명령 2
elif 조건:
실행할 명령 1
실행할 명령 2
else:
실행할 명령 1
실행할 명령 2
while 조건:
실행할 명령 1
실행할 명령 2
True일때 명령들을 실행
하는데, 그걸 반복하는 것 뿐!count = 0
while count < 3:
print('횟수:', count)
count += 1
count = 0
while count < 10:
count += 1
if count < 4:
continue
print('횟수:', count)
if count == 8:
break
type(my_dict)
>>> <class 'dict'>
my_dict[0] = 'a'
>>> {0: 'a'}
my_dict['b'] = 2
>>> {0: 'a', 'b': 2}
print(my_dict['b'])
>>> 2
del my_dict[0]
>>> {'b': 2}
(key 0의 키 밸류 쌍이 삭제됨)
for std in my_dict.values():
print(std)
>>>
'a'
2
for key in my_dict.keys():
print(key)
>>>
0
'b'
for key, val in my_dict.items():
print(key, val)
>>>
0 'a'
'b' 2
def 함수이름(인자1, ...):
실행할 명령1
실행할 명령2
return 결과
ex)
def add(num1, num2):
return num1 + num2
>>>
>>> add(1, 2)
>>> 3
def 함수이름(인자1, ...):
실행할 명령1
실행할 명령2
...
return 결과1, 결과2, ...
ex)
def add(num1, num2):
return num1 + num2, num1 * num2
>>>
>>> add(1, 2)
>>> (3, 2)
# -> 2개의 값으로 나오는게 아니라, ⭐하나의 tuple로 반환됨
random.choice()
import random
>>> students = ['망고', '희진', '호박', '레고', '고등어']
>>> print(random.choice(students))
호박
# (랜덤한 값이 출력됨)
random.sample()
>>> print(random.sample(students, 2))
['고등어', '레고']
>>> print(random.sample(range(1, 46), 3))
[10, 35, 37]
random.randint()
>>>print(random.randint(8, 10))
8
🤔❓ JS에서는 object가 객체, 즉 {key, value} 쌍을 객체라고 하는데, 파이썬에서는 dictionary가 해당 내용이고, object 객체는 배열도 포함되는 희한한 객체이네...? 뭐지 용어가 다른 것 같다
JS, React, Next를 거쳐 파이썬을 공부하고 있는데... 비슷하면서도 조금씩 문법이 달라서 엄청 헷갈린다. ㅠㅠ 예를 들면 변수를 지정하는데 JS에서는 const, let을 붙여야만 했는데 파이썬에서는 그냥 바로 변수이름을 써버리면 된다. 자료형 type보기, 자료형 변경하기 등 JS랑 흡사해보이면서도 조금씩 다르니까 헷갈리기도 하고.. 약간 호주에 있을때 영어도 한국어도 헷갈려서 0개국어가 되어가던 그때 그 느낌이랄까ㅠ ㅋㅋㅋ
Next로 최종프로젝트까지 했었는데 갑자기 걸음마부터 다시 배우고있는 기분...? ㅋㅋㅋ
이게 문법이 묘하게 다르니까 이거에 너무 집중하면 JS문법 잊어버릴까봐 불안한 마음이 계속 든다 ㅠㅠ ㅎㅎ