window.onload = ()=>{
console.log('로딩 완료!')
}
def solution(order):
# 아메리카노 4500 카페라떼 5000
# 메뉴만 적으면 차가운거, 아무거나는 차가운 아메
sum = 0
for menu in order:
# 아메리카노
if menu.find('americano') >= 0:
sum += 4500
# 카페라떼
elif menu.find('cafelatte') >= 0:
sum += 5000
# 아무거나
else:
sum += 4500
# 최종 가격 return
return sum
find
메소드를 사용해서 찾는 값이 없으면 -1이 return 되는 걸 이용했다.
for 문을 돌면서 경우에 따라 맞는 숫자를 더해줬다.
def solution(order):
sum = 0
for menu in order:
sum += 5000 if menu.find('cafelatte') >= 0 else 4500
return sum
애초에 카페라떼를 제외하면 나머지는 가격이 똑같기 때문에,
카페라떼를 예외로 두고 나머지는 전부 else
문으로 통과시켜줬다.
팀원들과 다 같이 for문을 쓰지 않고 어떻게 해결하면 좋을지 탐구해봤다.
def solution(order):
latte = (''.join(order)).count('latte')
return latte*5000 + (len(order) - latte)*4500
먼저, 주문 리스트를 .join
을 이용해 문자열로 만들어준다.
그러고, count
메소드를 사용해서
해당 문자열에 latte
라는 글자가 몇 개 있는지 찾아준다!
마지막으로, 라떼의 개수와 라떼가 아닌 것의 개수를 세어 더해준다.
라떼가 아닌 것의 개수는 리스트의 전체 길이 len()
에서 라떼의 개수를 빼주면 된다.
리스트 메소드를 공부하다가 조금 독특하게 생긴 녀석을 발견했다
[a::b]
아니... 대체 [a:b]
면 [a:b]
일것이지 왜 콜론이 두개나 들어가는거임?!??!?
이라고 생각했다....
잘 이해가 안돼서 이것저것 도움을 받았는데, for range
문과 비슷하다고 생각하면 된다.
my_list = [1, 2, 3, 4, 5]
이런 리스트가 있다고 생각해보자.
만약, 내가 2랑 4만 뽑아서 리스트로 만들고 싶다!!
그럼 이때까지의 나라면 for range
문을 사용했을 것이다.
new_list = []
for i in range(2, 5, 2):
new_list.append(i)
print(new_list) # [2, 4]
이런식으로!!
근데 이제 이런식으로 안해도 된다는 거다. [a::b]
를 사용하면!
print(my_list[1::2]) # [2, 4]
혁명....
그러니까, ::
의 앞쪽에 붙는 건 시작점, 뒤쪽에 붙는 건 증가시킬 숫자라고 생각하면 된다!
for range
문의 첫 번째 인수랑 세 번째 인수라고 생각하면 이해가 쉽다.
window.onload = ()=>{
console.log('로딩 완료!')
}
async function handleSignin() {
const email = document.getElementById('email').value
const password = document.getElementById('password').value
const response = await fetch('http://127.0.0.1:8000/users/signup/', {
headers:{
'Content-Type': 'application/json',
},
method:'POST',
body: JSON.stringify({
'email':email,
'password':password
})
})
console.log(response)
}
js에서 이렇게 코드를 작성했는데 ERR_CONNECTION_REFUSED
오류가 뜨면서 작동이 안된다.
백엔드에서 확인해보니 signup
함수의 문제는 아닌 것 같다. 에러가 400 BAD REQUEST
인것도 그렇고, 뭔가 클라이언트 쪽에서 리퀘스트가 안된 것 같은데...
설마 예전에 그랬던 것 처럼 윈도우는 ' '
말고 " "
를 써야하나? 하고 바꿔봤다.
응. 여전히 안된다.
하.....
혹시 ,
를 안찍어줘서 그런 건 아닐까?
async function handleSignin() {
const email = document.getElementById("email").value
const password = document.getElementById("password").value
const response = await fetch("http://127.0.0.1:8000/users/signup/", {
headers:{
"Content-Type": "application/json",
},
method:"POST",
body: JSON.stringify({
"email":email,
"password":password,
}),
})
console.log(response)
}
찍어줬는데... 여전히 안됨.
아!!!!!!!!!!!!!!!
liveserver
문제였다!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
껐다켜니까 해결됨!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
야!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
하......................
내가 잘못한 게 아니었음.
컴퓨터 잘못이었음.
뭔가 문제가 생기면 일단 껐다 켜는 습관을 들여보자...