[내일배움캠프_TIL]2023.03.20_6일차

yell·2023년 3월 20일
1

NBCAMP

목록 보기
7/17

Today

#🔛Python 문법 기초 강의 수강

#🔚좋은 개발자가 되기 위한 비밀 특강


오늘공부한 내용📝

python 문법 기초

  • 변수 선언과 자료형

    -변수는 값을 담는 곳이다.

자료형 정리

  • 문자열
#문자열 표기
a = "aa"
b = 'aa'

a = 1
b = "a"
c = a
print(a, b, c) # 1 a 1 

#문자열 연산
first_name = "Harry"
last_name = "Potter"
first_name + last_name  # HarryPotter

a = "3"
b = "5"
a + b    # 35

#문자열과 숫자형은 더할 수 없음.
a = "3"
a + 5    # 에러!
  • 인덱싱 & 슬라이싱
#인덱싱;0부터 시작!
f="abcdefghijklmnopqrstuvwxyz"
f[1]   # b 

#슬라이싱;시작부터 끝 전까지
f[4:15]  # efghijklmno ;f[4]부터 f[15] 전까지
f[8:]    # ijklmnopqrstuvwxyz ;f[8]부터 끝까지
f[:7]    # abcdefg ;시작부터 f[7] 전까지
f[:-1]     # z ;-1은 맨뒤에꺼
  • method; 특정 자료형 뒤에 .을 붙이고 쓰는 내장 함수
#len();길이 계산
print(len("abcde"))           # 5

#upper()/lower();대소문자 바꾸기
sentence = 'Python is FUN!'

sentence.upper()  # PYTHON IS FUN!
sentence.lower()  # python is fun!

#split();문자열 나누기
myemail = 'test@gmail.com'

result = myemail.split('@') # ['test','gmail.com'] 

result[0] # test 
result[1] # gmail.com 

result2 = result[1].split('.') # ['gmail','com']

result2[0] # gmail 
result2[1] # com

myemail.split('@')[1].split('.')[0]   # gmail


# replace();다른문자로 바꾸기
txt = '서울시-마포구-망원동'
print(txt.replace('-', '>')) # '서울시>마포구>망원동'
  • list; 순서 존재
a = [1, 5, 2]
b = [3, "a", 6, 1]
c = []
d = list()
e = [1, 2, 4, [2, 3, 4]]
a = [1, 2, [2, 3], 0]
print(a[2])      # [2, 3]
print(a[2][0])   # 2

# append();덧붙이기
a = [1, 2, 3]
a.append(5)
print(a)     # [1, 2, 3, 5]

# sort();정렬
a = [2, 5, 3]
a.sort()
print(a)   # [2, 3, 5]
a.sort(reverse=True)
print(a)   # [5, 3, 2]

# in;요소가 있는지 확인
a = [2, 1, 4, "2", 6]
print(1 in a)      # True
print("1" in a)    # False
print(0 not in a)  # True
  • dictionary; {key:value}로 이루어진 자료의 모임, 순서없음 인덱싱 불가
a = {"one":1, "two":2}

# 빈 딕셔너리 만들기
a = {}
a = dict()

person = {"name":"Bob", "age": 21}
print(person[0])   # 0이라는 key가 없으므로 KeyError 발생!
  • 조건문; if문
age = 27
if age < 20:
    print("청소년입니다.")
elif age < 65:
    print("성인입니다.")
else:
    print("무료로 이용하세요!")
  • 반복문; for문
fruits = ['사과', '배', '감', '귤']

for fruit in fruits:
    print(fruit)
#사과 
  배
  감
  귤
  
for i, fruit in enumerate(fruits):
    print(i, fruit)
    if i == 4:
        break # 앞에 5개만 출력하고싶다면
  • 함수; 반복적으로 사용하는 코드들에 이름을 붙여놓은 것
#함수 정의하기
def bus_rate(age):
		if age > 65:
		    print("무료로 이용하세요")
		elif age > 20:
		    print("성인입니다.")
		else:
		    print("청소년입니다")

bus_rate(27) # 성인입니다
bus_rate(10) # 청소년입니다
bus_rate(72) # 무료로 이용하세요
  • tuple; list와 비슷하지만 불변인 자료형. 순서 존재.
    a = (1,2,3)
    
    print(a[0])
    
    ****
    a = (1,2,3)
    a[0] = 99 # 불가
  • 집합; 중복이 제거됨
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 = ['사과','멜론','청포도','토마토','참외']

print(a & b)  # 교집합
print(a | b)  # 합집합
print(a - b)  # 차집합
  • f-string
for s in scores:
    name = s['name']
    score = str(s['score'])
    print(name+'는 '+score+'점 입니다')
    
# f-string를 사용하면
for s in scores:
    name = s['name']
    score = str(s['score'])
    print(f'{name}{score}점입니다')
  • try - except 문; 예외처리
for person in people:
    try:
        if person['age'] > 20:
            print (person['name'])
    except:
        name = person['name']
        print(f'{name} - 에러입니다')
  • 파일 불러오기
from main_func import * # 함수 전체 다 불러오기

say_hi()
  • if문; 삼항연산자 (참일 때 값) if (조건) else (거짓일 때 값)
if num%2 == 0:
    result = "짝수"
else:
    result = "홀수"

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

num = 3

# 삼항연산자로 바꾸면
result = "짝수" if num%2 == 0 else "홀수"

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

#for문 한번에
a_list  = [1, 3, 2, 5, 1, 2]

b_list = [a*2 for a in a_list]

print(b_list)
  • map, filter, lambda식
def check_adult(person):
    if person['age'] > 20:
        return '성인'
    else:
        return '청소년'

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

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

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

result = map(lambda x: ('성인' if x['age'] > 20 else '청소년'), people)
print(list(result))

# filter; 리스트의 모든 원소 중 특별한 것만 뽑기/map과 아주 유사한데, True인 것들만 뽑음.
result = filter(lambda x: x['age'] > 20, people)
print(list(result))
  • 함수 심화
# 함수에 인수를 넣을 때, 어떤 매개변수에 어떤 값을 넣을지 정해줄 수 있다. 순서 상관 없음
def cal(a, b):
    return a + 2 * b

print(cal(3, 5))
print(cal(5, 3))
print(cal(a=3, b=5))
print(cal(b=5, a=3))

# 디폴트 값 지정
def cal2(a, b=3):
    return a + 2 * b

print(cal2(4))
print(cal2(4, 2))
print(cal2(a=6))
print(cal2(a=1, b=7))

# 입력값의 개수를 지정하지 않고 모두 받는 방법; args사용
def call_names(*args):
    for name in args:
        print(f'{name}야 밥먹어라~')

call_names('철수','영수','희재')

# 키워드 인수를 여러 개 받는 방법
def get_kwargs(**kwargs):
    print(kwargs)

get_kwargs(name='bob')
get_kwargs(name='john', age='27')
  • 클래스
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()

  • 좋은 개발자가 되기 위한 비밀 특강

문제 앞에서는 각을 재고 ‘돌진’
완성 앞에서는 ‘세밀함’
어려움 앞에서는 ‘도움’
리더라면 ‘리더십’
팀원이라면 리더를 ‘믿기’

세줄요약

-문제에 있어 '도전'하고 실제로 ‘구현’해내며, ‘소통’도 잘하는 사람이 롱런하는 시대

-신입에게 있어서 소통이 최우선, 소통만 잘해도 실력은 순차적으로 따라오게 되어있다.

-당장 오늘부터 실천하면 대접받는 개발자로 성장한다.

profile
...

0개의 댓글