파이썬 for문은 C나 자바와 좀 다르다.
가장 기본적인 for문 형식은 아래와 같다. print를 입력할때 indentation(들여쓰기)를 잊지말자.
for i in range(10):
print('Hello')
i는 for 루프 안에서 사용할 변수를 뜻한다. range(10) 는 0부터 9까지 10개의 정수를 반환해서 i에 대입한 후 for문을 반복한다. Java에서는 for(int i=0; i<10; i++){ } 와 같은 뜻이다. range(10)은 range(0,10)과도 같다.
for루프가 진행되는 동안 0,1,2,3,4,5,6,7,8,9 가 차례로 i에 대입된다.
for i in range(3):
num = eval(input('Enter a number: '))
print ('The square of your number is', num*num)
입력을 받아 제곱을 출력하는 것을 3회 반복한다.
num = eval(input()) 에서 input( )함수는 사용자에게 키보드로 input을 받아 문자열로 리턴한다. eval( ) 함수는 받은 문자열을 표현식으로 바꾼다. 그래서 아래처럼 수식도 입력가능하다.
print('A')
print('B')
for i in range(5):
print('C') # 여기만 코드블록에 해당
print('D')
print('E')
들여쓰기는 python 에서 코드블록을 분리하는 기준이다. 들여쓰기를 정확히 지키지 않으면 코드 읽기가 혼란스러워진다. 들여쓰기는 공백 ' ' 으로 표시하는데 몇칸이라는 제한은 없다. 커뮤니티에서는 4칸을 권장한다. 대부분 IDE Default 값이 4칸임.
4) for 루프의 i 변수 사용하기 (인덱스)
for i in range(100):
print(i)
range(100) 은 range(0,100)이다. 0부터 99까지 값을 i에 대입한다. print 함수로 숫자를 출력한다.
반복횟수를 보여줄때는 i+1 을 한다. 0부터 시작하므로.
*잘못 입력한 경우
for wacky_name in range(100):
print(i)
for 요소의 이름은 무엇으로 정해도 상관없다. 식별자 규칙에 맞으면. 그러나 i값은 for문의 인덱스와 연결되지 못하고 엉뚱한 값이 출력된다.
파이썬에서 for문을 잘 사용하려면 range 함수에 대하여 잘 알아야 한다. range(5,0,-1)은 5에서 시작해서 1까지 -1의 간격으로 수를 반환한다. 5는 시작 숫자. 0은 루프를 멈출 기준이 되는 수. -1은 간격을 의미한다. 즉
range(5)는 5에서 시작하여 루프를 한번 돌면 조건식을 검사하고 (0보다 작은지?) 5-1의 연산을 실행한다. 4가 나온다. 이렇게 1까지 반복하고 0에서 식을 검사하면 종료가 된다.
for i in range(5,0,-1):
print(i, end=' ')
print('Blast off!!')
C언어 때부터 for문 하면 별모양 도형으로 놀기가 있다. 파이썬은 형식이 조금 다르다.
for i in range(4):
print('*'*6)
range(4)는 0,1,2,3 까지 네번을 의미한다. 0부터 시작하니 헷갈리지 말도록 주의한다.
print('*' * 6 )의 곱하기 표시(아스테리크스)는 문자열 연산자이다. 숫자 곱하기의 뜻이 아니다. 문자 '*' 자체를 6개 출력하는 식이다.
for i in range(7):
print('*'*(i+1))
높이가 7인 삼각형을 만들어 봤다. i변수를 사용해서 하나씩 증가시키면 된다.
공백을 먼저 찍고 숫자를 줄어들게 하면 삼각형이 반대가 된다.
rg = 5
for i in range(rg,0,-1):
print(i,' '*(i),end='')
print('*'*(rg-(i-1)))
이름을 반복한다. 입력받은 내용을 반복하는 포맷이다.
name = input("your name :")
times = eval(input("how many times you want to print your name?"))
for i in range(times):
print(i+1,"your name",name)
높이와 너비를 입력받아서 박스를 만든다. 가운데는 공백문자로 채운다.
height = eval(input('box height : '))
width = eval(input('box width : '))
for i in range(height):
if i == 0:
print(i,"*"*width,sep="")
else:
print(i,"*"," "*(width-2),"*",sep="")
print(i+1,"*"*width,sep="")
높이를 입력받아서 삼각형을 그린다. range가 높은 숫자에서 아래로 내려와야 하고 처음에 공백문자를 채워서 가운데로 뾰족하게 그린다.
rg = eval(input("input triangle height: "))
for i in range(rg ,0 ,-1):
print(" " *i ,end='')
print("* " *(rg - i +1) ,end='')
print("* " *(rg -i) ,end='')
print(" " *i)
길이를 입력받아 다이아몬드를 그린다. 하나는 내려가고 하나는 올라가는 for 루프를 구성한다.
rg = eval(input("input triangle length: "))
for i in range(rg, 0, -1):
print(" " * i, end='')
print("*" * (rg - i + 1), end='')
print("*" * (rg - i), end='\n')
print("",end="")
for i in range(1,rg):
print(" "*(i+1),end='')
print("*"*(rg-i),end='')
print("*"*(rg-i-1))
* 참고 For 루프 유튜브 튜토리얼 영상