728x90
반응형
SMALL
1. 다중반복문
- 반복문이 2가지 이상 겹쳐져 있는 형태
for i in range(1, 4): # 증가값 1
print(f'🥙 1:{i}')
for j in range(1, 4):
print(f' 🥗 1:{j}')
>>>
🥙 1:1
🥙 1:2
🥙 1:3
🥗 1:1
🥗 1:2
🥗 1:3
# 블록처리
for i in range(1, 4): # 증가값 1
print(f'🥙 1:{i}')
for j in range(1, 4): # 증가값 1
print(f' 🥗 1:{j}')
>>>
🥙 1:1
🥗 1:1
🥗 1:2
🥗 1:3
🥙 1:2
🥗 1:1
🥗 1:2
🥗 1:3
🥙 1:3
🥗 1:1
🥗 1:2
🥗 1:3
📌문제
- '🌷'를 이용하여 아래와 같은 도형을 만들어보자.
1)
🌷 🌷 🌷 🌷 🌷
🌷 🌷 🌷 🌷 🌷
🌷 🌷 🌷 🌷 🌷
🌷 🌷 🌷 🌷 🌷
🌷 🌷 🌷 🌷 🌷
for i in range(5):
for j in range(5):
print('🌷', end=' ')
print() # enter키의 기능
>>>
🌷 🌷 🌷 🌷 🌷
🌷 🌷 🌷 🌷 🌷
🌷 🌷 🌷 🌷 🌷
🌷 🌷 🌷 🌷 🌷
🌷 🌷 🌷 🌷 🌷
2)
🌷 🌷 🌷 🌷 🌷
🌷 🌷 🌷 🌷
🌷 🌷 🌷
🌷 🌷
🌷
# 첫번째 방법
for i in range(5):
for j in range(i, 5): # i 값은 1씩 증가
print('🌷', end=' ')
print()
>>>
🌷 🌷 🌷 🌷 🌷
🌷 🌷 🌷 🌷
🌷 🌷 🌷
🌷 🌷
🌷
# 두번째 방법
for i in range(5):
for j in range(5-i):
print('🌷', end=' ')
print()
>>>
🌷 🌷 🌷 🌷 🌷
🌷 🌷 🌷 🌷
🌷 🌷 🌷
🌷 🌷
🌷
3)
🌷
🌷 🌷
🌷 🌷 🌷
🌷 🌷 🌷 🌷
🌷 🌷 🌷 🌷 🌷
for i in range(5):
for j in range(0, i+1):
print('🌷', end=' ')
print()
>>>
🌷
🌷 🌷
🌷 🌷 🌷
🌷 🌷 🌷 🌷
🌷 🌷 🌷 🌷 🌷
📌문제
- 2단부터 9단까지의 구구단을 출력하는 프로그램을 작성하여보자.
1) for in 문
for i in range(2, 10):
print('{}단'.format(i))
for j in range(1, 10):
print('{} * {} = {}'.format(i, j, i*j))
print()
>>>
2단
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
3단
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
4단
4 * 1 = 4
4 * 2 = 8
4 * 3 = 12
4 * 4 = 16
4 * 5 = 20
4 * 6 = 24
4 * 7 = 28
4 * 8 = 32
4 * 9 = 36
5단
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
6단
6 * 1 = 6
6 * 2 = 12
6 * 3 = 18
6 * 4 = 24
6 * 5 = 30
6 * 6 = 36
6 * 7 = 42
6 * 8 = 48
6 * 9 = 54
7단
7 * 1 = 7
7 * 2 = 14
7 * 3 = 21
7 * 4 = 28
7 * 5 = 35
7 * 6 = 42
7 * 7 = 49
7 * 8 = 56
7 * 9 = 63
8단
8 * 1 = 8
8 * 2 = 16
8 * 3 = 24
8 * 4 = 32
8 * 5 = 40
8 * 6 = 48
8 * 7 = 56
8 * 8 = 64
8 * 9 = 72
9단
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
2) while문
# 첫번째 방법
i = 1
while i < 9:
i += 1
j =1
print('{}단'.format(i))
while j < 10:
print('{} * {} = {}'.format(i, j, i*j))
j += 1
print()
# 두번째 방법
i = 2
j = 1
while i <= 9:
print(f'{i}단')
while j <= 9:
print(f'{i} * {j} = {i*j}')
j += 1
i += 1
j = 1 # j가 9까지 돌고 끝나버리기 때문에 초기화 해주어야 함.
print()
>>>
2단
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
3단
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
4단
4 * 1 = 4
4 * 2 = 8
4 * 3 = 12
4 * 4 = 16
4 * 5 = 20
4 * 6 = 24
4 * 7 = 28
4 * 8 = 32
4 * 9 = 36
5단
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
6단
6 * 1 = 6
6 * 2 = 12
6 * 3 = 18
6 * 4 = 24
6 * 5 = 30
6 * 6 = 36
6 * 7 = 42
6 * 8 = 48
6 * 9 = 54
7단
7 * 1 = 7
7 * 2 = 14
7 * 3 = 21
7 * 4 = 28
7 * 5 = 35
7 * 6 = 42
7 * 7 = 49
7 * 8 = 56
7 * 9 = 63
8단
8 * 1 = 8
8 * 2 = 16
8 * 3 = 24
8 * 4 = 32
8 * 5 = 40
8 * 6 = 48
8 * 7 = 56
8 * 8 = 64
8 * 9 = 72
9단
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
📌문제
- 아래 score 리스트의 요소를 모두 출력하는 프로그램을 작성해보자.
- score = [[80, 90, 50], [40, 70, 30], [90, 50, 100]]
score = [[80, 90, 50], [40, 70, 30], [90, 50, 100]]
for i in score:
for j in i:
print(j, end=' ')
>>> 80 90 50 40 70 30 90 50 100
2. 컴프리헨션(Comprehension)
- 이터러블한 오브젝트를 생성하기 위한 방법 중 하나로 파이썬에서 사용할 수 있는 유용한 기능
# 0~9 까지 10번 반복하면서 0을 채워 리스트로 반환(iterable한 객체로 반환)
result = [0 for i in range(10)]
print(result)
>>> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
# 0~9까지의 수를 반복하여 리스트에 담아줌
result = [i for i in range(n)]
print(result)
>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# arr의 데이터만큼 반복하여 n을 저장한 list를 반환
arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] #iterable
result = [n for n in arr]
print(result)
>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# arr의 데이터만큼 반복하여 n*n을 저장한 list를 반환
arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
result = [n*n for n in arr]
print(result)
>>> [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
- 문자열의 길이를 반환하는 리스트를 만들어보자.
arr = ['apple','banana','orange','melon']
print([len(string) for string in arr])
>>> [5, 6, 6, 5]
- if 문을 사용하여 1 부터 10까지의 짝수를 리스트로 만들어보자.
result = [n for n in range(1, 11) if n % 2 == 0]
print(result)
>>> [2, 4, 6, 8, 10]
- 0 부터100까지의 숫자 중 3의 배수이며, 홀수인 숫자만 리스트에 저장해보자.
# 첫번째 코드
res = [n for n in range(100) if n % 3 ==0 if n % 2 != 0]
print(res)
>>> [3, 9, 15, 21, 27, 33, 39, 45, 51, 57, 63, 69, 75, 81, 87, 93, 99
# 두번째 코드
res = [n for n in range(100) if n % 3 == 0 and n % 2 != 0]
print(res)
>>> [3, 9, 15, 21, 27, 33, 39, 45, 51, 57, 63, 69, 75, 81, 87, 93, 99
- 양수는 리스트에 그대로 저장하고, 음수는 0으로 변환해서 저장해보자.
arr = [-1, 0, -4, 24, 5, -10, 2]
res = [n if n > 0 else 0 for n in arr]
print(res)
>>> [0, 0, 0, 24, 5, 0, 2]
- 컴프리헨션을 이용한 다중반복문을 작성해보자.
# 일반 다중반복문
arr = []
for i in range(1, 4):
for j in range(1,3):
arr.append(i * j)
print(arr)
>>> [1, 2, 2, 4, 3, 6]
# 컴프리헨션
# 저장되어야 할 데이터는 가장 맨 앞에 작성
res = [i*j for i in range(1,4) for j in range(1,3
print(arr)
>>> [1, 2, 2, 4, 3, 6]
- 컴프리헨션을 이용하여 다차원의 리스트를 만들어보자.
res = [['🍑' for i in range(2)] for i in range(3)]
print(res)
>>> [['🍑', '🍑'], ['🍑', '🍑'], ['🍑', '🍑']]
728x90
반응형
LIST
'Python > Basic' 카테고리의 다른 글
[파이썬, Python] 자료구조(Data Structure) - 4️⃣ 세트(set) (0) | 2023.03.08 |
---|---|
[파이썬, Python] 자료구조(Data Structure) - 3️⃣ 딕셔너리(Dictionary, dict) (0) | 2023.03.08 |
[파이썬, Python] 제어문 - 2️⃣ 반복문(1)_bool(), 대입연산자, while문, for in 문, zip함수, enumerate함수 (0) | 2023.03.08 |
[파이썬, Python] 제어문 - 1️⃣ 조건문_ if문, 삼항 연산자, 논리 연산자 (0) | 2023.03.07 |
[파이썬, Python] 부동 소수점(floating point number) - 실수의 연산, 부동 소수점 오차, 실수의 비교 (0) | 2023.03.07 |