오늘 중요한부분 필기한 내용
파이썬을 설치 => 일종의 번역팩을 설치했다 컴퓨터는 1010 전기신호 명령 인간이쓰는언어
비슷한 명령으로 바꿔주는거
귀도 반 로썸 문법이 직관적
오픈소스가 굉장히 많다
변수
a=1
a='kim' 변수랑 헷갈리지말라고
a=True 참거짓
str(2) 랑 '2' 가 같다
변수1 = len(변수2) 변수2의 길이를 변수1에 담아준다
text[:3]
text[ : ]
순서가 있기 때문에, 문자열에서처럼 인덱싱과 슬라이싱을 사용할 수 있습니다
a = [1, 3, 2, 4]
print(a[3]) # 4
print(a[1:3]) # [3, 2]
print(a[-1]) # 4 (맨 마지막 것)
변수.split('나누는기준')[배열의순서]
리스트는 순서가 중요하게 값을 담는다.
딕셔너리는 키 밸류로 값을 담는 방법에 대한 자료형
- 딕셔너리의 요소에는 순서가 없기 때문에 인덱싱을 사용할 수 없다.
person = {"name":"Bob", "age": 21}
print(person[0]) # 0이라는 key가 없으므로 KeyError 발생!
- 딕셔너리의 값을 업데이트하거나 새로운 쌍의 자료를 넣을 수 있다.
person = {"name":"Bob", "age": 21}
person["name"] = "Robert"
print(person) # {'name': 'Robert', 'age': 21}
person["height"] = 174.8
print(person) # {'name': 'Robert', 'age': 21, 'height': 174.8}
- 딕셔너리의 밸류로는 아무 자료형이나 쓸 수 있어요. 다른 딕셔너리를 넣을 수도 있다.
person = {"name":"Alice", "age": 16, "scores": {"math": 81, "science": 92, "Korean": 84}}
print(person["scores"]) # {'math': 81, 'science': 92, 'Korean': 84}
print(person["scores"]["science"]) # 92
딕셔너리 안에 해당 키가 존재하는지 알고 싶을 때는 in을 사용합니다.
person = {"name":"Bob", "age": 21}
print("name" in person) # True
print("email" in person) # False
print("phone" not in person) # True
리스트와 딕셔너리의 조합
people = [{'name': 'bob', 'age': 20}, {'name': 'carry', 'age': 38}]
# people[0]['name']의 값은? 'bob'
# people[1]['name']의 값은? 'carry'
person = {'name': 'john', 'age': 7}
people.append(person)
# people의 값은? [{'name':'bob','age':20}, {'name':'carry','age':38}, {'name':'john','age':7}]
# people[2]['name']의 값은? 'john'
핵심! 리스트에 참거짓 변수 숫자 담을수 있고 리스트도 리스트를 담을수있다.
a_list = [2,'배',False,['사과','감']]
list[-1] 맨 마지막
5 in a_list => 리스트안에 5가있으면 참 없으면 거짓
요소가 리스트 안에 있는지 알아보기
a = [2, 1, 4, "2", 6]
print(1 in a) # True
print("1" in a) # False
print(0 not in a) # True
result = a_dict['name']
people = [
{'name': 'bob', 'age': 20, 'score':{'math':90,'science':70}},
{'name': 'carry', 'age': 38, 'score':{'math':40,'science':72}},
{'name': 'smith', 'age': 28, 'score':{'math':80,'science':90}},
{'name': 'john', 'age': 34, 'score':{'math':75,'science':100}}
]
result = people[2]['score']['science']
print(result)
a_dict = {'name':'bob','age':27} 키:밸류
if elif else
elif는안쓰는경우가 많은듯
money = 3000
if money > 3800:
print('택시를 타자!')
elif money > 1200:
print('버스를 타자')
else:
print('걸어가자')
for i, person in enumerate(people):
name = person['name']
age = person['age']
print(i,name,age)
if i > 3:
break
enumerate: 요소의 순서를 나타낸다.
def check_gender(pin):
num = pin.split('-')[1][0]
if int(num) % 2 == 0:
print('여성')
else:
print('남성')
split의 연장 응용
그리고 int(변수) 이런식으로 문자를 정수화시킴
check_gender('150101-1012345')
check_gender('150101-2012345')
check_gender('150101-4012345')
튜플은 리스트와 비슷하지만 불변인 자료형 입니다. 마찬가지로 순서가 존재
a = ['사과','감','수박','참외','딸기']
b = ['사과','멜론','청포도','토마토','참외']
print(a & b) # 교집합
print(a | b) # 합집합
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}점입니다.')
f스트링 효과적이다
a_list = [1,3,2,5,1,2]
b_list = []
for a in a_list:
b_list.append(a*2)
b_list = [a*2 for a in a_list]
print(b_list)
for 문 축약
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}
]
def check_adult(person):
if person['age'] > 20:
return '성인'
else:
return '청소년'
result = map(check_adult, people)
print(list(result))
people을 check_adult에 한번한번씩 넣어라 그게 map
클래스를 나눠주는것이 객체 지향적이다
출처:https://tykimos.github.io/2019/12/25/Python_Lambda/
람다는 필요할 때 바로 정의해서 사용한 후 버리는 일시적인 함수
출처: https://tykimos.github.io/2019/12/29/Python_Lambda_Function/
람다자체가 함수라서 람다함수라고 부르기엔 애매합니다만 풀어서 말하면 람다를 반환하는 함수
출처: https://tykimos.github.io/2020/01/01/Python_Lambda_Map/
람다함수에 대한 궁금증이있었는데 lamda 식이
def check_adult(person):
return '성인' if person['age'] > 20 else '청소년'
result = map(check_adult, people)
print(list(result))
ex) result =map(lambda x:x,people)
여기에다가 위의 코드에서 x에다가 person을 각각 넣어주고
ex) result =map(lambda person:person(여기에다가 그<'성인' if person['age'] > 20 else '청소년'>구문을 넣어준다),people)
결론:result = map(lambda x: ('성인' if x['age'] > 20 else '청소년'), people) print(list(result)) 이렇게 만드는거 한줄짜리함수로 만드는법
def get_kwargs(**kwargs):
print(kwargs)
get_kwargs(name='bob')
get_kwargs(name='john', age='27')
키워드 인수를 여러 개 받는 방법
딕셔너리로 만드는 것
def call_names(*args):
for name in args:
print(f'{name}야 밥먹어라~')
call_names('철수','영수','희재')
이렇게 여러 개의 인수를 하나의 매개변수로 받을 때 관례적으로 args라는 이름을 사용합니다. arguments라는 뜻
filter는 나중에 좀 깊게 다시한번 공부해봐야될것같다 오늘은 해야될 프로젝트가있기때문에.. 이만 마치도록한다.
'스파르타 내일배움캠프' 카테고리의 다른 글
TIL 6개인프로젝트 파이썬 윷놀이 만들기 Day-2 (3일 프로젝트) (2) | 2022.04.26 |
---|---|
TIL 5-2 개인프로젝트 파이썬 윷놀이 만들기 Day-1 (3일 프로젝트) (2) | 2022.04.25 |
WIL 1주차 WEEK I LEARNED (0) | 2022.04.22 |
10조 KPT 회 (0) | 2022.04.22 |
TIL 4 | 개인페이지 만들기 부제:hover 태그(에니메이션 기능 css) (0) | 2022.04.21 |