: while문의 조건부분과 상관 없이 반복문에서 나오고 싶으면, break
문을 사용하자
중간에 탈출할 수 있게 비상구를 만들어주는 것
# num이 5일 때 while문을 빠져나오게 되는 코드
num = 0
while num < 10:
num += 1
if num == 5:
break # break를 통해 num이 5가 되면 print가 실행되지 않고
# 반복문 빠져나오면서 실행 종료.
print(num)
# while문을 벗어남
출력
1
2
3
4
: 현재 진행되고 있는 수행 부분을 중단하고 앞의 조건부분을 확인하고 싶으면 continue
문을 사용하자!
num = 0
while num < 8:
num = num + 1
if num == 4: # num값이 4가 되면
continue # print(num) 실행하지 않고
# 바로 while문의 조건으로 넘어감
print(num)
출력
1
2
3
5
6
7
8
변수에 값을 여러개 넣고 싶으면 어떻게 해야 할까?
→ 리스트
이용하기!
✔ 리스트 사용법
변수 = [요소1, 요소2, 요소3, ...]
* 대괄호로 묶고, 콤마로 구분한다. 그 안에 값 넣어주기!
예시
numbers = [2, 4, 6, 8, 10, 12] # 정수형 리스트
names = ["사과", "바나나", "딸기", "포도"] # 문자열 리스트
print(numbers)
print(names)
실행
[2, 4, 6, 8, 10, 12]
['사과', '바나나', '딸기', '포도']
*대괄호도 그대로 출력된다는 특징이 있당
✔ 리스트의 요소를 하나씩 끄집어내고 싶을때
→ 인덱싱(indexing)
리스트명 = [요소1, 요소2, 요소3, ...]
-----> 리스트 안 요소1이 있는 위치 → 인덱스
요소 1만 출력하고 싶으면 print(리스트명[0])
이렇게 써주면 됨
왜? 요소 1은 리스트의 인덱스 0번째이기 때문
😌 파이썬에서는 인덱스가 1번, 2번 ... 이게 아니라 0번부터 시작함
그래서, print(리스트명[0]) 을 실행하면 출력결과는 요소1이 됨.
리스트명 = [요소1, 요소2, 요소3, 요소4]
0번 1번 2번 3번
-4번 -3번 -2번 -1번 → 마이너스 인덱스도 있다!
∴ 인덱스 사용가능 범위 → -4 ~ 3
활용
numbers = [2, 4, 6, 8, 10, 12]
names = ["사과", "바나나", "딸기", "포도"]
🤔 numbers 리스트 요소들을 더하고 싶음~!
print(numbers[1] + numbers[4])
이렇게 하면 1번 인덱스의 4와 4번 인덱스인 10을 더한값 출력 가능하다~!
+ 변수에 요소를 넣어서 그 변수를 이용할 수도 있다!
num_1 = number[1]
num_3 = number[3]
print(num_1 + num_3)
✔ 리스트 슬라이싱(list slicing)
: 리스트의 일부를 통째로 잘라서 사용하는 방법
numbers = [2, 4, 6, 8, 10, 12]
names = ["사과", "바나나", "딸기", "포도"]
<예시>
print(numbers[0:4]) → [0(인덱스 0번부터):4(4번째 요소까지)]
🩸 주의 🩸 인덱스 4번까지의 의미가 아니다!!!!!!!!
print(numbers[2:]) → [2(인덱스 2번부터): (리스트 끝 요소까지)]
print(numbers[:2]) → [ (리스트 처음부터):2(2번째 요소까지만]
<출력>
[2, 4, 6, 8]
[6, 8, 10, 12]
[2, 4]
✔ 슬라이싱한 리스트를 다른 변수에 넣어서도 활용가능
new_list = numbers[:3] # [2, 4, 6] - numbers에서 처음부터 3개 요소 뺌
print(new_list[2]) - 새 리스트의 인덱스 2번
<출력>
6
✔ 리스트의 요소 바꾸기
numbers[0] = 7 #numbers 리스트의 0번 인덱스 값을 7로 바꿔라
numbers[0] = numbers[0] + numbers[1] #numbers 리스트의 0번 인덱스 값을 0번 값과 1번 값을 더한 값으로 바꿔라
# 7 + 4 = 11이 0번 인덱스에 지정됨
print(numbers[0])
<출력>
11
✔ 리스트 요소의 갯수 확인하는 함수
len()
→ length 의 len, 파라미터에 리스트명만 넣어주면 됨!
예시
happy = []
print(len(happy)) # happy 리스트의 요소 갯수 확인
결과
0
🤔 왜? happy 리스트에는 요소가 하나도 없잖어~
✔ 리스트 요소 추가하고 싶을 때(1개)
.append()
함수 사용 (= 추가연산)
.extend()
요소 여러개 추가하고 싶을 때
→ 괄호 안에 추가하고 싶은 내용 넣으면 됨
예시
happy = []
happy.append(4)
happy.append(6)
print(happy)
실행
[4, 6]
ㄴ 가장 오른쪽 끝으로 추가해줌
✔ 리스트 요소 삭제하고 싶을 때
del
함수 사용
예시
happy = [4, 6, 8, 9, 11]
del happy[3] # happy 리스트의 3번 인덱스 지우기
print(happy)
결과
[4, 6, 8, 11] # 인덱스 3번(=9) 지워진 값 출력
✔ 원하는 위치의 요소 추가하고 싶을 때
.insert(인덱스번호, 추가요소)
(=삽입연산)
예시
happy = [3, 4, 6, 8, 9]
happy.insert(3, 10)
#3번 인덱스에 10값 넣기
print(happy)
결과
[3, 4, 6, 10, 8, 9]
✔ 리스트 정렬
① sorted()
→ 파라미터 안에 리스트 이름 써주기
예시
numbers = [19, 13, 2, 5, 3, 11, 7, 17]
numbers = sorted(numbers)
print(numbers)
출력
[2, 3, 5, 7, 11, 13, 17, 19] # 오름차순 정렬
+ 반대로 큰 수가 먼저오게 하고 싶으면?
→ sorted(리스트명, reverse=True
)
🙃 sorted 함수는 기존의 numbers 리스트는 건들지 않는다! 리턴만 해줌...
numbers = [19, 13, 2, 5, 3, 11, 7, 17]
sorted(numbers)
print(numbers)
결과
[19, 13, 2, 5, 3, 11, 7, 17]
# sorted 함수를 적용했는데도 그대로 나오지~!
# 원본을 정렬시키진 않음 ~
② .sort()
리턴하지 않고 직접 원본을 정렬시킴
예시
numbers = [19, 13, 2, 5, 3, 11, 7, 17]
numbers.sort()
print(numbers) 🤨주의! ≠ print(numbers.sort())
결과
[2, 3, 5, 7, 11, 13, 17, 19]
+ 반대로 큰 수가 먼저오게 하고 싶으면?
→ .sort(reverse=True
)