python wecode TIL day-3

yo·2020년 5월 27일
0

09:00 in
20:33 out
short diary
-TIL 적어놓은 게 증발했다.....짬 나는대로 다시 적어놓자.
-하루 10~12시간은 코딩에 투자해라.
-코드치는 절대 시간이 중요하다.
-첫 날 대표님이 하신 말.
-저걸 지키기 위해 교육기간에 (불가피한 일이 없는 이상) 최소한 위코드 10~12시간 이상 머무르기로 정하고 첫 날 부터 in n out 시간 기록중이다.
-한 문제를 풀기 위해 한 시간 넘게 while, if, elif, continue, break 등 온갖 아는 것 다 써가면서 씨름했다. 겨우겨우 통과한 후 mentor님이 써놓은 정답 코드를 봤더니, while하나 쓰고 딱 4줄이었다. 뒤통수를 맞은 듯 하다.
효율적으로 압축된 고수의 코드와 비효율의 극을 달리는 나의 코드.
-결론은 replit문제 푼 다음 mentor님들이 작성해놓은 코드를 꼭 읽어야 한다.
그거 읽으면서 배우는 게 엄청 크다.
오늘도 고생 많았다.

list

-list에 string, 숫자, boolean 등 모든 type저장 가능.
ex) random_values = [1, "two", True]
-list 값들은 순차적으로 저장된다, 순서(order)을 갖는다.
-순서를index라 하고 0~ n-1까지다.

adding(append, +, insert) & updating

  1. append
    리스트의 맨 뒤에 요소를 추가하는 기능.
    아래는 예시.
    a = [1,2,3]
    a.append(4) #-> a = [1,2,3,4]

  2. +(플러스 부호)
    추가하고자 하는 element가 1개 이상일 때 사용.
    [] 형태로 더해주어야 한다.
    더한 리스트를 받아줄 변수가 필요하다.
    a = [1,2,3]
    a = a + [4,5] #-> a = [1,2,3,4,5]

  3. insert
    index를 이용해 원하는 위치에 element를 추가할 수 있다.
    a = [1,2,3]
    a.insert(0, 4) # -> a =[4,1,2,3]

  4. Updating Elements
    element를 새로운 값으로 대체할 수 있다.
    a = [1,2,3]
    a[0] = 4 # -> a=[4,2,3]

Deleting elements from list
twice = [ "나연", "사나", "정연", "모모", "미나", "채영", "다현", "쯔위", "지효"]

del
del은 인덱스로 지운다.
삭제 후 똑똑한 파이썬이 자동으로 인덱스를 정렬해준다.(사라진 칸 만큼 밀어서 빈 곳 채움)
del twice[0]
->twice = [ "사나", "정연", "모모", "미나", "채영", "다현", "쯔위", "지효"]

remove
remove는 element를 써서 지운다.
remove 는 리스트의 메소드다.
twice.remove("나연")
-> 나연만 지워진다.

for loops

문법

for element in list:
do_something_with_element

for문은 튜플, 리스트, set등 다른 자료구조와도 사용 가능하다.

-iteration

앞서 보았듯이 for 구문에서는 리스트가 가지고 있는 요소의 수 만큼 for 구문에 속해있는 코드를 실행합니다.
이걸 iteration 이라고 합니다. 만일 리스트가 5개의 요소를 가지고 있으면 5 iterations 이라고 합니다.
즉 5번 반복한다는 뜻이죠. 그래서 for loops를 한국어로 for 반복구문 이라고 하기도 합니다.

break

for문을 강제로 중단시키는 것.

continue

break는 원치 않고, 단지 다음 iteration으로 넘어가고자 할 때

nested for loops

if문처럼 for문도 중첩해서 쓸 수 있다.
(질문: if 문은 2번 초과 중첩하면 안좋다고 배웠는데, for 문도 마찬가지인가?)

numbers1 = [1, 2, 3, 4, 5]
numbers2 = [10, 20, 30, 40, 50]

for num1 in numbers1:
for num2 in numbers2:
print(f"{num1} {num2} == {num1 num2}")

while loops

for 구문은 list나 set, dictionary 등의 data structure 등을 기반으로 코드블록을 반복 실행한다.

하지만 list같은 data structure 기반이 아니더라도 코드블록을 반복해야 할 때가 있다.
이럴 때 while 구문이 사용된다.
while 구문은 특정 조건문이 True일 동안 코드블록을 반복 실행한다.

while <조건문>:
<수행할 문장1>
<수행할 문장2>
<수행할 문장3>
...
<수행할 문장N>

예를 들어, 어떠한 특정 변수의 값의 초기 값이 0인데, 1씩 증가하여 10이 되기전까지 값의 변화를 출력하는 코드는 다음처럼 구현할 수 있다.

number = 0

while number <= 10:
print(number)
number += 1
결과
0
1
2
3
4
5
6
7
8
9
10

이렇게 list 같은 자료구조 없이도 반복구문을 실행할 수 있다.

while loop의 continue, break

while, else

질문.
굳이 while에 else를 써야하나?
else가 없어도 어차피 number는 while문 후에 11이되니, else 안에 담긴 내용을 else없이 써도 그만 아닌가?

profile
Never stop asking why

0개의 댓글