Weakly I Learned

손상훈·2022년 9월 4일

이번 주에는 웹개발과정을 복습하며 개발일지 정리를 재작성하였고 목,금요일에는 파이썬 기본 문법강의가 시작하여 '실무적용 알고리즘 실습'에 파이썬 문법 과제를 풀었다. 1일차 알고리즘 문제를 스스로 풀다가 모르는 문제가 있으면 팀원들에게 물어보다가 정 안되면 구글링을 해서 풀었는데 이해를 하려고 노력하다보니 진도가 많이 나가긴 힘들었다. 구글링을 보다 익숙해지도록 노력을 많이 해야 할거 같다.

< 파이썬 문법 심화 >

  • 튜플이란? 리스트와 비슷하지만 불변인 자료형이다.
    ex) people = [('bob',27),('john',30)]

집합이란? 말 그대로'집합을 구현하는 방법. 좋은점: 중복제거
ex) a = [1,2,3,4,3,2,3,4,5,8,7,1,]
a_set = set(a)
print(a_set)
하면 {1,2,3,4,5,7,8} 이렇게 나온다.

< 교집합,합집합,차집합 >

a = ['사과','감','수박','참외','딸기']
b = ['사과','멜론','청포도','토마토','참외']

print(a & b) # 교집합
print(a | b) # 합집합 (엔터키 위에 역슬레이쉬쪽에 있음)
print(a - b) # 차집합

< f-string >

ex) for s in scores:
name = s['name']
score = s['score']
print(name+'의 점수는 '+str(score)+'점입니다')

score를 문자로 바꿔줘야 하기 때문에 score앞에 str를 넣어준다
숫자로 바꿔줄때는 int를 붙여준다. 또한 위에 score = str(s['score'])를 해줘도 됨.

간결하게 다르게 써줄 수도 있음.
print(f'{name}의 점수는 {score}점입니다.')

< 예외처리 try - except >
ex) for person in people:
try:
if person['age'] > 20:
print(person['name'])
except:
print(person['name'],'에러입니다')

  • 장점: 에러가 나도 꺼지지않고 쭉 나아가고 어떤게 에러인지 알 수 있다.
    단점: 남용하면 돌아는 가는데 뭔가 이상해지고 무슨 에러가 나는지 모르기 때문에
    왠만하면 쓰지를 않는다.

< 파일 불러오기 >

2번째 파일을 1번째 파일에서 쓰고 싶을 때
ex)
from main_func import
여기서
은 파일 전체를 포함시킴. 거의 이걸로만 씀.

< 한줄의 마법 >

< if문 >
if num % 2 == 0:
result = '짝수'
else:
result = '홀수'

  • 간편하게 한줄로 하려면 result = ('짝수' if num % 2 == 0 else '홀수')

< for 문 >

ex)
a_list = [1,3,2,5,1,2]

b_list = []

for a in a_list:
b_list.append(a*2)

print(b_list)

  • 간편하게 b_list = [a*2 for a in a_list] 이렇게 넣어서 쓸 수 있다.

< map >

def check_adult(person):
if person['age'] > 20:
return '성인'
else:
return '청소년'

result = map(check_adult, people)
print(list(result))

  • 한줄로 간편히 줄이면 return '성인' if person['age'] > 20 else '청소년' 으로 쓸 수 있다.

< lambda 식 >

def check_adult(person):
return ('성인' if person['age'] > 20 else '청소년')

result = map(check_adult, people)

print(list(result))

  • people을 돌면서 person에다 넣고 그 person을 이렇게 리턴해라

짧게 쓰려면 def랑 return 줄을 지우고 이렇게 써도 된다.
result = map(lambda person: ('성인' if person['age'] > 20 else '청소년'), peopple)

< fliter >

True인 것들만 뽑기!
result = filter(lambda x: x['age'] > 20,people)

< 함수 심화 = 사용할일이 거의 없다.>
def cal(a,b=2): b를 고정으로 해줄수도 있음.
return a+2*b

result = cal(a=1,b=,2) 좋은점은 순서를 바꿔도 됨.
print(result)

def cal(*args):
for name in args:
print(f'{name}밥먹어라~')
cal('영수','철수')

  • 변수를 무제한으로 넣을 수 있다.

def cal(**kwargs):
print(kwargs)
cal(name='bob',age=30,height=180)

  • 인자를 지정해서 넣어줄 수도 있다.

< 클래스 >

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('죽었다!')

m1 = monster()
m1.damage(150)
m1.status_check()

m2 = monster()
m2.damage(98)
m2.status_check()

  • 내 hp가'를 쓰려면 self. 를 붙여줘야 함.
profile
< 코린이의 코딩모험기 >

1개의 댓글

comment-user-thumbnail
2022년 9월 6일

코딩하면 구글링만큼 효과적으로 빠른 해결방법이 업쬬 하다보면 익숙해질 거예요 ㅎㅎ 화이팅!

답글 달기