Python / / 2022. 8. 28. 19:22

Python 기초 - for , 이중for 문 ,range함수

반복문? 

 

반복문이란,  특정 코드를 반복 실행 하는것 

 

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문을 이용해서 구구단 구현하기 

#구구단 구현 반복문은 끝나야 밑으로 내려간다
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])

 

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유