본문 바로가기

매일 TIL

[내일배움캠프 5일차] Python 기초 문법

split

myemail = 'abc@sparta.co'

myemail 변수에 abc@sparta.co 문자열을 할당.

문자열에서 sparta만 출력하도록 코드를 짜보자.

result = myemail.split('@')[1]

.split('어떤 기호')를 하게 되면 그 기호를 기준으로 요소를 나누어 리스트 형태로 저장.

['abc', 'sparta.co'] 라는 리스트에서 우리는 sparta가 필요하므로 [1]을 추가하여 1번째 인덱스를 가져오는 것.

result = myemail.split('@')[1].split('.')[0]

같은 방법으로 다시 split을 사용하여 이번에는 . 기호를 기준으로 sparta.co를 나눠주고 0번째 인덱스인 sparta를 결과적으로 result에 넣게 된다.

이후 print(result)를 통해 결과를 출력하면 완료.


enumerate, break

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 i, person in enumerate(people):
    name = person['name']
    age = person['age']
    print(i, name, age)
    if i > 3:
        break

enumerate로 요소의 순서를 i에 할당해 출력함으로써 'i가 3보다 클 때까지 출력해라' 라는 제한을 걸 수 있음.

숫자 0부터 할당됨.

결과적으로 4번 인덱스의 ben 정보까지 출력을 한 뒤 마지막에 조건문이 나오기 때문에 그제서야 조건문 탈출.

반복의 제한 범위를 간단히 설정한다는 점에서 많은 데이터 위주로 반복할 때 유용하게 쓸 수 있음.


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 = s['score']
    print(f'{name}의 점수는 {score}점 입니다.')

print(name+'의 점수는 '+str(score)+'점 입니다.')라고 할 수도 있지만, 한 문장에 사용되는 변수가 아주 많아지는 경우에는 헷갈릴 수 있음.

이럴때 출력할 문장 앞에 f를 추가하고, {} 괄호 안에 앞에서 설정한 변수명만 넣어주면 됨.


파일 불러오기(함수)

from main_func import *

from 함수를 정의한 파일명 import *

여기서 *은 전부라는 뜻, 즉 main_func라는 파일 안에 정의된 모든 함수를 가져온다는 뜻.

from main_func import say_hi_to

이렇게 say_hi_to라는 함수 하나만 가져올 수도 있다.


map, filter(lambda)

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}
]
result = map(lambda x: ('성인' if x['age'] > 20 else '청소년'), people)

people을 돌면서 요소를 하나하나 x에 넣고, 조건문을 돌려 result에 결과를 넣는 것.

result = filter(lambda x: x['age'] > 20, people)

people을 돌면서 요소를 하나하나 x에 넣고, x의 age 값이 20보다 큰 경우만 result에 넣는 것.


꿀팁

shift + tab으로 한칸 앞으로 당길 수 있음.


오늘의 회고

새로운 강의를 새로운 마음으로 시작했다.

새로운 팀원분들도 만났는데 다들 진짜 조금 쉬고 열심히 하셔서 놀랐다. 진도도 너무 빠르시고.

덕분에 같이 집중할 수 있었다.

 

내일의 목표는 개인 일정 잘 보내고 최대한 남은시간에 복습하기