len(string)
: 문자열 길이. (리스트 동일)upper()
/ lower()
: 대문자 변환 / 소문자 변환replace()
: 특정 문자 바꾸기name = '김철수'
name.replace('철', '영')
print(name) # 김영수
blah = '김수한무거북이와두루미'
print(blah[4:7]) # 거북이
append(ele)
: 요소 추가.sort()
: 정렬.nums = [4,2,5,3,1]
print(nums.sort()) # [1,2,3,4,5]
print(nums.sort(reverse=True) # [5,4,3,2,1]
1 in list
: 리스트 안에 요소가 있는지 확인.key in dict
: 딕셔너리 안에 key가 있는지 확인.# list
names = ['영희', '철수', '갑순', '갑돌']
print('명희' in names) # False
print('용수' not in names) # True
# dictionary
person = {'name': 'bill', 'age': 24}
print('email' in person) # False
print('name' in person) # True
print('phone' not in person) # True
a = [1,2,3]
a.append(4) # a = [1,2,3,4]
t = (1,2,3)
# t.append(t) # Error
similar_dict = [('bobby', 28), ('jane', 21), ('john', 17)]
origin_dict = [
{'name': 'bobby', 'age': 28},
{'name': 'jane', 'age': 21},
{'name': 'john', 'age': 17}
]
print(similar_dict[1][0]) # jane
print(origin_dict[1]['name']) # jane
set_nums = {1, 2, 3, 4, 5}
set_list = set(['수박', '수박', '참외']) # {'수박', '참외'}
set_name = set('bobby') # {'b', 'o', 'y'}
set_to_list = list(set([1,3,4,2,3,2,1,5,4,3,5,2])) # [1,2,3,4,5]
name = 'bobby'
print('안녕하세요, ' + bobby + '입니다.')
print(f'안녕하세요 {name}입니다.')
from react import React, Components
# if 문: (참인 경우) if (조건) else (거짓인 경우)
age = 20
print('성인' if age > 20 else '청소년') # 청소년
# for 문: (요소에 대한 처리) for (요소) in (리스트)
num_list = [1,2,3,4,5]
mul_list = [n * 2 for n in num_list]
print(mul_list) # [2,4,6,8,10]
# lambda 식: 한 줄 함수.
# (lambda 매개변수1, 매개변수2, ... : 매개변수를 이용한 표현식)
say_hi_lambda = lambda x: print(f'안녕하세요 {x}입니다.')
say_hi_lambda('병순') # 안녕하세요 병순입니다.
map과 filter 모두 리스트에서 요소를 하나씩 꺼내와, (첫 번째 인자로 넣는) 함수에 넣어 처리하는 방식의 구문이다. 차이점이라면 filter는 함수의 리턴값이 True인 경우만 값을 걸러낸다는 점이다.
두 구문 모두 결과값을 인덱싱하기 위해선 리스트나 튜플로 변환해야한다.
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 15},
{'name': 'smith', 'age': 17}
]
age_map = map(lambda x: '성인' if x['age'] > 20 else '청소년', people)
print(list(age_map)) # ['청소년', '성인', '청소년', '청소년']
age_filter = filter(lambda x: x['age'] > 20, people)
print(list(age_filter)) # [{'name': 'carry', 'age': 38}]
# default 인자 및 인자값 지정
def cal(a, b=2):
return a + 2 * b
print(cal(1)) # 5
print(cal(a=3, b=1)) # 5
print(cal(b=3, a=2)) # 8
# 인자 개수 지정없이 받기
def welcome_names(*args):
for name in args:
print(f'{name} 어서오고.')
welcome_names('철수', '영희', '춘자') # 철수 어서오고. / 영희 어서오고. / 춘자 어서오고.
# 키워드 인수를 지정없이 받기
def get_dogs(**kwargs):
print(kwargs)
get_dogs(name='choco') # {'name': 'choco'}
get_dogs(name='bawu', age='1 year') #{'name': 'bawu', 'age': '1 year'}
*args
는 튜플 타입, **kwargs
는 딕셔너리 타입이다.class Monster:
hp = 100
alive = True
def damage(self, attack):
self.hp = self.hp - attack
if self.hp < 0:
self.alive = False
def status_check(self):
if self.alive:
print('살아있다')
else:
print('죽었다')
m = Monster()
m.damage(120)
m2 = Monster()
m2.damage(90)
m.status_check()
m2.status_check()
python의 class는 javascript나 cpp과는 다르게, method를 선언할 때 첫 번째 인자로 self(일종의 this)를 넣어줘야한다.
그리고 생성자는 __init__(self[, ...])
이라는 이름으로 선언해줘야한다.
새로운 문법을 배우는 거지만, 이미 한 두번 다른 언어를 공부해보니 익숙한 부분들이 많았다. 몇 가지 헷갈리는 부분들과 자주 쓰이는 내장함수들은 필요하면 그때 그때 찾아가면서 익숙해지도록 노력해야겠다.