반복문?
반복문이란, 특정 코드를 반복 실행 하는것
ex) 리스트를 for 문으로 순차적으로 출력하기
# 퀴즈1. [1,2,3,4,5,6,7,8,9]의 리스트가 있을때 1부터 9까지 순차적으로 출력
list_1 = [1,2,3,4,5,6,7,8,9]
for a in list_1:
print(a)
출력:
123456789
2) 리스트 안에 튜플이 있더라도 for문 사용이 가능하다.
for a in [(1,3),{5,7},9]: #리스트안에 튜플이 있더라도 for문 사용 가능하다.
print(a)
출력:
(1, 3)
{5, 7}
9
3) a 에 1,3,5, b에 2,4,6 대입후 a+b 출력
# ex) a에 1 , 3, 5 // b에 2,4,6 변수대입 후, for문 출력
for (a,b) in [(1,2),(3,4),(5,6)]: #반드시 쌍으로 맞춰줘야 한다. 변수가(a,b)일땐 리스트 안에도 (1,2)이런식
print(a+b)
반복문을 사용할때 문자열을 넣을 경우, 하나하나 출력된다.
#Q1. 문자열 넣었을 경우, 하나하나 출력 된다 .
data_str = 'Hello!'
for a in data_str:
print(a)
출력:
H
e
l
l
o
!
< range 함수 >
- 반복할 대상 자리에는 range가 들어갈수있음
range(end) range(start,end) range(start,end,증감값) >>> ex) range(1,5,1)일 경우, 1부터 5전까지(4) 1씩 (1,2,3,4)
Q1. range 함수를 이용해 1~9까지 출력
#Q1. [1,2,3,4,5,6,7,8,9]의 리스트가 있을때 1부터 9까지 순차적으로 출력
a = [1,2,3,4,5,6,7,8,9]
for i in a[0:]:
print(i)
#Q2. 1에서 999까지 정수를 포함한 리스트가 있을때 1부터 999까지 순차적 출력하세요.
#range 함수 이용
B = range(1,1000)
for i in B:
print(i)
a = 0
for i in range(10): #0부터 9까지
a = i+a #더하기 할당 연산자 a += i로도 가능하다. a+i 총합 구하기
print(a)
Q. input문을 이용하여 '-'하이픈을 뺀 휴대폰 번호를 입력하세요.
number = input("하이픈(-)을 포함한 휴대폰 번호를 입력하세요.")
for i in number: #넘버를 i에 저장
if not i == '-': # 하이픈이 존재하지 않는것만 출력해야한다 (숫자만)
print(i, end='')
Q. input문을 이용해 하이픈을 포함한 휴대폰 번호를 입력하기.
phone = input("하이픈 뺀 번호 입력")
number ='' # 넘버 변수를 비워주고,
for i in range(len(phone)): #폰번호의 길이(인덱스를 가져온다)
if i == 2 or i == 6: #폰번호가 3번째 자리,7번째 자리에 -가 와야하기 때문에
number = number + phone[i] + '-' #넘버 + phone[자리] + 하이픈(-)을 추가한다.
else:
number = number + phone[i] #그외의 경우엔 그냥 작성한다.
print(number)
이중 FOR 문
- for 변수 in 반복할 대상 :
- for 변수 in 반복할 대상:
- 반복할 문장1
- 반복할 문장2
- for 변수 in 반복할 대상:
이중 For문을 이용해서 구구단 구현하기
#구구단 구현 반복문은 끝나야 밑으로 내려간다
for x in range(2,10): # 2 3 4
for y in range(1,10):#1~9 1~9 1~9
# print(x,'x',y,'=',x*y)
print(f'{x} x {y} = {x*y}') #f를 붙이면 문자열이 변수값으로 바뀐다.
print() #줄바꿈
오른쪽 방향 별 트리 만들기
#오른쪽 방향으로 별 트리 만들기
for x in range(1,10):
for y in range(1,x+1): #집에서 x만 출력해보기
print("*", end='') #end 이용해서 가로로 쓰기
print() # x가 돌고 나서 줄바꿈
왼쪽 방향 별 트리 만들기
#왼쪽 방향으로 별 트리 만들기
for x in range(1,10): # x변수에 1부터 10까지 넣는다.
for y in range(1,11-x): # 공백값 y 변수에 1부터 11-x
print(" ", end='') #end 이용해서 공백을 가로로 쓰기
for z in range(1,x+1): #별 찍기
print("*", end='') #end 이용해서 가로로 쓰기
print() # x가 돌고 나서 줄바꿈
양방향으로 별 트리 만들기
#for문 왼쪽방향으로 별트리를 만들기
for i in range(1,11):
for x in range(1,11-i):
print('', end =' ')
for i in range(1,1+i):
print('*', end = '')
for z in range(1,1+i):
print('*', end = '')
print()
영화관 빈 좌석 0은 흰색 1은 검은색 네모 박스로 출력하기
seats = [[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[1,1,1,0,0,0,0,0,1,0],
[0,0,0,0,0,1,0,0,0,0],
[0,1,0,0,0,1,0,1,0,0],
[0,0,0,0,0,0,1,0,0,0],
[1,0,1,0,0,0,0,0,0,1]]
for a in range(len(seats)): # len = 8 세로를 알려준다.
# print(a)
for b in range(len(seats[a])): # 가로
if seats[a][b] == 0:
print('□', end="")
else:
print('■', end='')
print()
# print('□: 예약 가능, ■: 예약 불가능')
# print(seats[a][b]) # 프린트
##################행과 열의 개념을 더 숙지하자
enumerate()
#반복문 사용시 몇번째 반복문인지 확인할때 사용 #인덱스 번호와 요소값을 tuple 형태로 변환
name_list =['홍길동','박철수','김형석']
for a,i in enumerate(name_list): # enumerate를 사용하면 튜플형태로 나온다. print(f'no: {a}, name: {i}') ######
ZIP()
#zip 함수는 두개의 같은 인덱스넘버를 가진 배열이 있어야한다.
name = ['hong', 'park', 'kim']
no = ['one']
for i in zip(name, no):
print(i[0], i[1])
'Python' 카테고리의 다른 글
python 초급 - dict 와 for문 이용 (0) | 2022.08.29 |
---|---|
Python 기초 - While문, 분기문 (0) | 2022.08.29 |
Python 기초 - tuple , set (집합) (0) | 2022.08.28 |
Python 기초 - list comprehension /dict / 이중 for문 (0) | 2022.08.28 |
Python 기초 - list , index ,정렬 (0) | 2022.08.28 |