KDT/Python
제어문 - 반복문
jhwannabe
2023. 3. 7. 14:27
2. 반복문
자료형 참/거짓 판단하기
- 파이썬에서 사용하는 모든 자료형은 참 또는 거짓으로 표현이 가능
bool1 = True
print(bool1)
print(type(bool1))
# 0이 아닌 숫자는 모두 True, 0은 False
num1 = 10
print(num1)
print(type(num1))
print(bool(num1)) # 모든 값들은 bool형으로 형변환 가능 True
num2 = 0
print(num2)
print(type(num2))
print(bool(num2)) # False
str1 = '안녕'
print(str1)
print(type(str1))
print(bool(str1)) # True
str2 = ''
print(str2)
print(type(str2))
print(bool(str2)) # False
list1 = [1, 2, 3]
print(list1)
print(type(list1))
print(bool(list1)) # True
list2 = []
print(list2)
print(type(list2))
print(bool(list2)) # False
list1 = [1, 3, 5]
if list1:
print('요소가 있습니다.')
else:
print('요소가 없습니다.')
대입 연산자
- =, += -=, *=, /=, %=
- 왼쪽에 저장된 값과 오른쪽에 값을 연산한 뒤 다시 왼쪽에 대입(inplace 연산)
num = 10
num += 1
print(num)
num -= 1
print(num)
num *= 10
print(num)
num /= 10
print(num)
num %= 2
print(num)
While 문
while 조건식:
조건식의 결과가 True인 동안 반복할 문장
# 1 ~ 100까지의 총합
i = 1
sum = 0
while i <= 100:
sum += i
i += 1
print('총합:', sum)
문제 1
- 1 ~ 100까지의 짝수의 총합을 구하라.
i = 1
sum = 0
while i <= 100:
if i % 2 == 0:
sum += i
i += 1
print('총합:', sum)
문제 2
- 원하는 단을 입력받아 해당 단의 구구단을 출력하라
num = int(input('원하는 단을 입력하세요:'))
i = 1
print('%d단' % num)
while i < 10:
print('%d * %d = %d' % (num,i,num*i))
i += 1
For 문
for 변수 in iterable 객체:
이터러블 객체의 요소 갯수만큼 반복할 문장
list1 = [10, 20, 30, 40]
for li in list1:
print(li)
import collections
# isinstance(이터러블한 객체인지 확인하고자 하는 객체, collections.Iterable)
isinstance(list1, collections.Iterable)
- range() 함수
# range(): 범위를 생성해주는 함수
# range(시작인덱스, 종료인덱스, 증가값)
num = range(0, 10, 1)
print(num)
for i in num:
print(i, end=' ')
isinstance(num, collections.Iterable) # True
num = 10
# print(num)
for i in num:
print(i, end=' ') # 에러남
isinstance(num, collections.Iterable) # False
for i in range(0, 10 ,1):
print(i, end=' ')
# 증가값을 생략하면 default = 1
for i in range(0, 10):
print(i, end=' ')
# 시작값을 생략하면 default = 0
for i in range(10):
print(i, end=' ')
# 시작값은 1, 종료값은 10, 증가값은 2
for i in range(1, 10, 2):
print(i, end=' ')
문제 3
- for문을 이용하여 1 ~ 100까지의 짝수의 총합을 구하라
sum = 0
for i in range(2, 101, 2):
sum += i
print('총합: ', sum)
enumerate
- 반복문 사용 시 몇번째 반복인지 인덱스 번호로 확인
- 인덱스 번호와 요소를 튜플 형태로 변환
li1 = [10, 20, 30, 40, 50]
for e in enumerate(li1):
print(e)
# (0, 10)
# (1, 20)
# (2, 30)
# (3, 40)
# (4, 50)
for i, v in enumerate(li1):
print(f'index: {i}, value: {v}')
# index: 0, value: 10
# index: 1, value: 20
# index: 2, value: 30
# index: 3, value: 40
# index: 4, value: 50
zip() 함수
- 객체가 담고 있는 원소를 엮어서 튜플의 형태로 반환
- 매개변수의 길이가 다를 때는 짧은 매개변수 기준으로 데이터가 엮이고, 나머지는 버려짐
li1 = [10, 20, 30]
li2 = ['apple','banana','orange']
# (10, 'apple')
# (20, 'banana')
# (30, 'orange')
# 좋지 않은 코드
for i in range(len(li1)):
print((li1[i], li2[i]))
for l1, l2 in zip(li1, li2):
print((l1, l2))
for li in zip(li1, li2):
print(li)
# (10, 'apple')
# (20, 'banana')
# (30, 'orange')
for n, A, a in zip('12345', 'ABCDE', 'abcde'):
print((n, A, a))
for n, A, a in zip('123456', 'ABCDE', 'abcde'):
print((n, A, a))
# ('1', 'A', 'a')
# ('2', 'B', 'b')
# ('3', 'C', 'c')
# ('4', 'D', 'd')
# ('5', 'E', 'e')
list와 tuple을 for문과 함께 사용하기
li1 = ['apple', 'banana', 'orange', 'melon']
for i in li1:
print(i , end=' ')
tu1 = ('apple', 'banana', 'orange', 'melon')
for i in tu1:
print(i , end=' ')
문제 4
- 아래 score 리스트에 저장된 점수가 60점 이상인 학생이 몇 명인지 알아보는 프로그램을 작성해보자
score = [90, 30, 50, 60, 80, 70, 100, 40, 20, 10]
count = 0;
for i in score:
if i >= 60:
count += 1
print('60점 이상인 학생 수:', count)
728x90
반응형