데이터 구조 : 리스트
적고 많은 데이터를 한 곳에 넣기 위해서 리스트를 사용한다.
다른 언어(C 언어)와 거의 동일하지만 사용하는 게 훨씬 쉽다.
여기서 리스트를 간단하게 설명하는 이유는, 리스트를 반복문에서 사용이 가능하기 때문입니다. 그러니 자세한 것은 다음에 자세히 하고 여기서는 그냥 이런 게 있고 이렇게 쓰는 거다 정도만 하면 됩니다.
리스트를 만드는 법
Snack = [] 이렇게 빈 리스트를 생성 후에 데이터를 추가하면 됩니다. 혹은 아래처럼 값을 넣은 리스트를 생성해도 됩니다.
Snack =[“닭다리”,”스윙칩”,”오감자”]
데이터 추가하는 법
Snack.append(“고래밥”)
Snack.append(“뿌셔뿌셔”)
print로 Snack을 보면 결과 변화를 확인할 수 있습니다.
리스트는 C언어에 있는 배열과 매우 많이 유사합니다. 하지만 큰 차이점이 있는데, 배열의 경우에는 같은 타입의 변수만 같은 배열에 들어갈 수 있습니다. 즉, 정수와 char가 같은 배열에는 절대로 들어갈 수가 없는 것입니다. 하지만 리스트는 다른 종류의 타입의 변수가 같은 리스트에 들어갈 수가 있습니다. 여기서는 리스트가 다양한 타입의 변수를 가질 수 있다는 것도 예시에 넣었다.
출력 결과
전에 배운 if를 사용도 가능합니다.
예를 들어서,
if “닭다리” in Snack:
print(“닭다리 있음”)
else:
print(“닭다리없음”)
출력 결과
리스트 안에 또 리스트를 넣을 수도 있습니다.
예를 들어서 Snack의 리스트에 또 다른 리스트를 추가해 보겠습니다.
Snack = ["닭다리","스위칩", "오감자"]
Snack.append(["과자","라면"])
print(Snack)
반복문(loop)
이제 리스트에 데이터를 넣어야 할 텐데, 적은 수의 데이터의 경우는 직접 넣어도 되지만, 매우 귀찮고 실수가 나올 수 있기 때문에 이런 경우에 반복문을 이용하면 됩니다.
혹은 데이터 검색을 할 때 반복문을 이용하면 됩니다.
이 반복문도 if와 마찬가지로 코딩을 직업으로 할 거면 엄청나게 사용되는 것입니다. 시간이 있을 때 조건문(if)과 반복문(for, while) 사용을 해서 익숙해 지시기 바랍니다.
반복문은 어떤 조건에서 같은 동작을 반복적으로 하는 것입니다. 그래서 단순 작업을 반복적으로 하는 걸 Ctrl + C, V 해서 하는 것보다는 반복문을 활용해서 하면 훨씬 적은 실수로 이해하고 보기 쉽게 코딩을 할 수 있습니다. 아무래도 사람이 똑같은 일을 반복하면 귀찮고 시간도 걸리고 실수도 할 수 있기 때문에, 반복 작업의 경우에는 컴퓨터 코딩을 이용해서 하면 더 빠르고 적은 오류로 결과를 만들 수가 있습니다. 예를 들어서 “Hello Python”을 print 하는 코드를 작업하는데, 이것을 1~10번 정도 print 하세요 하면 그냥 쓰면 됩니다. 하지만 이것을 99999 쓰세요 하면 시킨 사람 멱살을 잡고 싶을 겁니다. 혹은 Copy Paste를 해서 할 수도 있지만 정확하게 99999를 쓰는 것은 쉽지가 않을 겁니다. 혹은 999998번만 print를 해서 오류를 만들 수도 있습니다. 조금 극단적인 예시이지만, 반복문을 왜 사용하고 쓰는지 설명할 때 적합한 예시라고 생각합니다.
반복문 예시 00
print("Hello Python")
print("Hello Python")
print("Hello Python")
print("Hello Python")
print("Hello Python")
print("Hello Python")
print("Hello Python")
print("Hello Python")
print("Hello Python")
print("Hello Python")
이렇게 쓰나 아래처럼 쓰나 같은 결과가 나옵니다. 하지만 위에 처럼 하는 경우에는 코드의 줄이 늘어나서 나쁘고, 보기도 좀 별로입니다. 아래처럼 하면 간단하게 2줄로 설명이 됩니다. 거기다가 10번 print를 하는 거였는데, 갑자기 23개로 늘려야 한다 이렇게 변경이 있는 경우, 위에처럼 하면 바꾸는 게 쉽지가 않습니다. 하지만 아래처럼 했을 경우, 간단하게 숫자만 바꿔서 해결이 가능합니다.
for i in range(10):
print("Hello Python")
반복문 예시 01
MyName = "Mary"
for letter in MyName:
print(letter)
FlowChart 반복문
반복문 방식은 크게 for과 while이 있습니다.
for문의 개념
기본 형식
for 변수 in range(시작값, 끝값+1,증가값):
이 부분을 반복합니다.
시작 값 : 시작하는 값을 지정합니다.
끝 값 : 끝나는 값을 지정합니다. (중요한 건 것은 이 끝 바로 전까지 한다는 의미입니다.)
증가 값(Optional) : 얼마만큼 증가시킬 건지 정하는 부분(Default로 1로 되어있습니다.)
이때, “이 부분을 반복합니다”부분을 Tab 1만큼 띄어서(들여 쓰기) 쓰시면 됩니다.( 그렇지 않으면 오류가 나옵니다.)
예시
여기서 x 값을 print에 사용할 수 있다. 전에 공부한 print부분을 보시면 쉽게 따라 할 수 있을 겁니다.
num = range(3)
print(num[0])
print(num[1])
print(num[2])
여기서 range를 숫자 리스트를 입력하는 방식으로 사용도 가능합니다.
여기서 num [3]을 print 하는 경우 오류가 발생합니다. 왜냐하면 num은 [0,1,2] 이렇게 3개만 들어가 있기 때문에, num [3]은 존재를 하지 않기 때문입니다.
다른 예시
예시 1
for i in range(3):
print(i)
print()
for i in range(5,10):
print(i)
print()
for i in range(2,9,3):
print(i)
print()
이 for반복문 경우도 코딩을 계속하게 되면 처음부터 끝까지 사용되는 부분이니 이것 또한 꼭 마스터하는 것 추천합니다.
break와 continue 사용법
이 2개 또한 반복문을 사용하다 보면 꼭 사용되는 것들입니다. 저 같은 경우는 예외 처리 같은 경우에 많이 사용했습니다.
break
반복문을 전체 다 돌리지 않고, 조건에 맞으면 반복문 중간에 나오는 방법이 있는데, break입니다. 여러 가지 이유로 사용되는데, 예외의 경우에 반복문을 중간에 멈춰야 하는 경우, 반복문을 통해서 숫자를 찾는데, 찾았을 경우, 그다음의 리스트를 볼 필요가 없는 경우, 등등 많은 이유로 사용되는 break입니다.
for i in range():
if(조건):
break
for loop 다음 코드
조건이 맞는 경우 위의 반복문을 바로 끝내고 “for loop 다음 코드”로 넘어갑니다.
예시
continue
break와 마찬가지로 반복문에서 continue라는 것도 사용이 되는데, continue는 반복문에서 반복문으로 다시 돌아가게 해주는 것입니다. Break와 비슷한데 다름 점은, break 같은 경우는 반복문을 바로 끝내고 다음 코드로 넘어가는 데 continue 같은 경우는 지금 돌고 있는 iteration만 다음 iteration으로 넘어가서 반복문을 진행하는 것입니다.
for i in range():
if(조건):
continue
for loop 다음 코드
조건이 맞는 경우 위의 반복문을 바로 끝내서 “for loop 다음 코드”로 넘어가는 것이 아니라, 다음 iteration으로 넘어가서 반복문을 진행합니다.
예시
for loop 안에 for loop (Nested Loop)
프로젝트를 하다 보면 반복문 안에 반복문을 넣는 경우가 있습니다. 아마 이 부분을 공부할 때 자주 사용되는 예시 중 하나는 구구단을 print 하세요.
예시
for i in range(0,10):
for j in range(0,10):
print("%d * %d = %d"%(i,j,i*j))
print()
이런 식으로 0~9까지 나올 겁니다. 반복문 안에 반복문 넣을 경우 조금 생각을 해야 하는 부분이 있습니다. 그것은 데이터의 양입니다. 그냥 간단하게 반복문 이해를 하는 경우에는 상관이 없지만, 반복문 안에 반복문을 넣은 경우 데이터가 많으면 반복문 부분을 끝내는데 까지 걸리는 시간이 기하급수적으로 늘어납니다. O(n) 이런 식으로 걸리는 시간을 표현하는데, O(n2)이면 걸리는 시간이 더 늘어날 것이고, 만약에 반복문 안에 반복문을 넣고, 그 반복문 안에 또 반복문을 추가하면 걸리는 시간 표현이 O(n3) 이렇게 되는데, 이렇게 되면 데이터가 많은 경우 엄청난 시간이 걸립니다. 그러니 반복문 안에 반복문을 넣을 때에는 데이터 양을 고려해서 추가해야 합니다.
for loop에 있는 else
제 개인적으로는 이 else는 잘 사용하지 않는 것 같습니다. 리스트 마지막까지 사용이 되면 else안에 있는 코드를 실행합니다.
예시
MyName = "Mary"
for letter in MyName:
print(letter)
else:
print("Done")
print()
while문의 개념
for반복문 말고도 while반복문도 있는데, 둘 중 무엇을 알아야 하고 뭐가 중요하냐고 물어보면 답을 할 수가 없습니다. 반복문을 보고 이해하는 정도로 해야 합니다. 하지만, 2개 중 하나만 사용을 해도 코딩을 하는데 에는 큰 문제가 없습니다.
기본 형식
while 조건:
이 부분을 반복합니다.
while loop의 단점이 있는데, for loop과 다르게 무한 반복에 걸릴 수가 있습니다. 일반적으로 while loop은 무한으로 반복문을 돌릴 때 사용됩니다. 무한 반복문에 걸리면 오류 찾는 게 어려우니, 프로젝트를 할 경우에는 간단하게 코드를 짜서 확인을 하고 프로젝트에 추가하는 방식을 하면 좋습니다.
예시
while loop도 for loop과 마찬가지고 break, continue를 사용이 가능합니다. 그리고 else 또한 사용이 가능합니다.
'Python' 카테고리의 다른 글
05. Python기초 문자열과 함수 (0) | 2019.06.21 |
---|---|
04. Python기초 리스트 튜플 딕셔너리 (0) | 2019.06.20 |
02. Python기초 연산 및 제어문 if-else (0) | 2019.06.18 |
01. Python 기초 Print와 변수 (0) | 2019.06.17 |
00. Python 3.7.3 윈도우에 설치 및 제거 (0) | 2019.06.16 |