카테고리 없음

내일배움캠프 React트랙 7일차 회고 (2022.11.08)

ecoEarth 2022. 11. 8. 22:14

오늘 배운 것은 이러하다

조건문

age = 27
if age < 20:
    print("청소년입니다.")
elif age < 65:
    print("성인입니다.")
else:
    print("무료로 이용하세요!")

탭(Tab)을 통해 들여쓰기를 잘 해야한다. 이 들여쓰기가 자바스크립트의 {}를 대체하기 때문이다.


반복문

fruits = ['사과', '배', '감', '귤']

for fruit in fruits:
    print(fruit)	# 사과 배 감 귤

기본적인 반복문의 구조는 다음과 같다. 이때 fruit는 fruits라는 리스트내의 요소를 할당하는 변수이름이다. 

 

숙제

people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby', 'age': 57},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]

for person in people:
    if person['age']>20:
        print(person['name'])

 

enumerate, break

for i, fruit in enumerate(fruits):
    print(i, fruit)
    if i == 4:
        break

i는 리스트의 인덱스상 순서를 나타내며, break는 반복문의 멈춤을 명령하는 것이다.


숙제1. 리스트내의 짝수의 개수 출력하기 -> 변수이용

num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]

count = 0
for number in num_list:
    if number%2 == 0:
        count+=1

print(count)

 

숙제2. 리스트내의 모든 숫자 더하기 -> sum()

num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]

result = 0
for num in num_list:
    result += num

print(result)

print(sum(a_list))

 

숙제3. 리스트내의 수중 가장 큰 자연수 구하기 -> max()

max_value = 0
for num in num_list:
    if num > max_value:
			 max_value = num

print(max_value)

print(max(a_list))

함수

def bus_rate(age):
		if age > 65:
		    print("무료로 이용하세요")
		elif age > 20:
		    print("성인입니다.")
		else:
		    print("청소년입니다")

bus_rate(27)
bus_rate(10)
bus_rate(72)

다음과 같이 bus_rate()내의 값만 바꿔주면 결과를 간단히 확인할 수 있다.

 

def bus_fee(age):
		if age > 65:
		    return 0
		elif age > 20:
		    return 1200
		else:
		    return 0     


money = bus_fee(28)
print(money)

다음과 같이 return으로 변환값을 지정해줄수도 있다.

튜플

a = (1,2,3)

print(a[0])

튜플은 리스트와 비슷하지만 불변인 자료형이다. 리스트와 마찬가지로 순서가 존재한다.

 

a = (1,2,3)
a[0] = 99

#TypeError: 'tuple' object does not support item assignment

불변하므로, 다른 값을 할당하려하면 에러가 발생한다.

 

a_dict = [('bob','24'),('john','29'),('smith','30')]

다음과 같이 딕셔너리 대신 리스트와 튜플로 딕셔너리 '비슷하게'만들어 사용해야 할 때 많이 쓰인다.


집합

a = [1,2,3,4,5,3,4,2,1,2,4,2,3,1,4,1,5,1]

a_set = set(a)

print(a_set)	#{1, 2, 3, 4, 5}

집합을 사용하면 다음과 같이 중복이 사라지는 효용이 있다.

 

교집합/합집합/차집합

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

set_a=set(a)
set_b=set(b)

print(set_a & set_b)	# 교집합
print(set-a | set_b)	# 합집합

print(set_a - set_b)	# 차집합
print(set_a.difference(set_b))

f-string

 

scores = [
    {'name':'영수','score':70},
    {'name':'영희','score':65},
    {'name':'기찬','score':75},
    {'name':'희수','score':23},
    {'name':'서경','score':99},
    {'name':'미주','score':100},
    {'name':'병태','score':32}
]

for s in scores:
    name = s['name']
    score = str(s['score'])
#아래의 두개는 같은 결과를 낸다.
print(name+'의 점수는'+score+'점 입니다.')
print(f'{name}의 점수는 {score}점 입니다.')

try - except

people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby'},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]

for person in people:
    try:
        if person['age'] > 20:
            print (person['name'])
    except:
        name = person['name']
        print(f'{name} - 에러입니다')

다음과 같은 코드를 작성하면 일단 age값이 없는 bobby에서 코드가 종료되지않고, print(f'{name} - 에러입니다')가 출력된 후 계속 코드가 지속된다.

⚠️실제 프로젝트 남용하는 것은 금물! 어디서 에러가 났는지 알 수 없다.


파일 불러오기

from main_func import *

say_hi()

이떄 main_func는 다른 디렉토리에 있는 '호출하고싶은' 함수이름이다.


조건문, 반복문 축약하기

조건문 축약하기 - 삼항연산자

(참일 때 값) if (조건) else (거짓일 때 값)으로 항이 3개라 삼항 연산자이다.

num = 3

if num%2 == 0:
    result = "짝수"
else:
    result = "홀수"

print(f"{num}은 {result}입니다.")

⬇️축약하기

num = 3

result = "짝수" if num%2 == 0 else "홀수"

print(f"{num}은 {result}입니다.")

 

반복문 축약하기

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

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

print(b_list)

⬇️축약하기

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

b_list = [a*2 for a in a_list]

print(b_list)

 

늘 느낀 것은 이러하다

자바스크립트를 먼저 배우고 파이썬을 배우니, 뭔가 비슷비슷하다는 생각이 든다. 또한 개발자들이 파이썬이 

왜 직관적인 언어라고 하는지 어렴풋이 느낄 수 있는 시간이었다. 오늘은 새로운 조에서 팀장직을 맡게 되었는데 

튜터님이 팀장으로서 어떻게 협업을 진행하면 될지 여러 조언들을 많이 해주셨다. 그중 가장 집중했던 것이 협업 툴인데 rello , 깃헙 프로젝트 add project   를 이용해서 진행하면 좋다고 조언해주셨다. 일단 최대한 들어야 할 강의들을 우선적으로 빨리 끝내놓고 저러한 협업 툴을 어떻게 사용해야하는지, 처음 사용하는 팀원에게는 어떻게 전달해야 빠른시간내에 적용하실 수 있을지 고민하는 시간을 가지는 것이 일단 이번주의 목표이다. (협업에 대한 경험을 하고싶다면서, 저번 프로젝트에서는 GitHub를 이용하지 못했던 것이 너무 아쉬웠다.  이번에는 기필코 현업과 최대한 유사한 방법으로 협업경험을 하고 싶다. 최선을 다해 노력해볼 것이다.)

 

늘 발견한 오류

1. 파이썬에서의 ==는 자바스크립트의 일치연산자(===)와 동일함

2. int()로 감싸면 숫자로 바꿔줌

3. 스크립트파일이 문서 상단에 위치하느냐, 하단에 위치하느냐에 따라(정확히는 특정 코드기준으로 상단이냐, 하단이냐에 따라) 코드실행결과가 아예 뒤바뀔 수 있다.