중첩 for문
for <반복 변수1> in <반복 범위1>:
for <반복 변수2> in 반복 범위2>:
<코드블록>
반복횟수가 정해져있을때
l1 = {0,1,2,3,4,5}
l2 = {6,7,8,9,10}
for i in l1:
for k in l2:
if k<8 :
print(k)
// l1 이 6번 반복되는 동안 두번째 for문이 계속 반복되므로 6번 실행됨
6
7
6
7
6
7
6
7
6
7
6
7
구구단 만들기는 72번 반복되는거시다
for i in range(2,10):
print (i,'단')
for k in range(1,10):
print (i, "*",k,"=",i*k)
- 조건에 따라 반복 여부를 결정
while문의 구조
while<조건문> :
<코드블록>- while문의 흐름도 : 조건문이 거짓일 때 까지
- 반복횟수를 알수없을때 씀
- 무한 반복 while문
+ ㄹㄹ
- 코드 블록을 무조건 반복하라고.. 서버에서 주로 사용
i = 0;
sum = 0;
while (sum<20) :
i = i+1
sum = sum + i
print (i,sum)
print (i, sum)
1 1
2 3
3 6
4 10
5 15
6 21
6 21
// 무한루프
while True :
print ("test")
- 반복문을 빠져나오는 break
- 조건절에 상관없이 바로 반복문에서 빠져나옴
- 보통 무한루프에서 많이 쓰임
사용예
j = 0
while True :
j = j+1
if(j>3):
break
print (j)
// 파이썬 오류
// unexpected indent : 들여쓰기 오류
- skip의 개념
- 반복문은 보통 모든 data를 조회하는데, 조건에 따라 연산을 skip할 data를 거르는 것
- break는 종료, continue는 계속
for i in range (10) :
if(i%2) == 0 :
continue
print(i)
1
3
5
7
9
컴프리헨션
- 리스트 컴프리헨션
- 세트 컴프리헨션
- 딕셔너리 컴프리헨션
리스트 컴프리헨션이 기본 구조
<반복 실행문 > for <반복 변수> in <반복 범위>
number = [1,2,3,4,5]
square = [ i**2 for i in number ]
print (square)
printed : [1, 4, 9, 16, 25]
// 밑에와 동일
number = [1,2,3,4,5]
square = []
for i in number :
square.append(i ** 2)
print (square)
조건문을 추가해보자
number = [1,2,3,4,5]
square = [ i**2 for i in number if i>=3]
print (square)
printed : [9, 16, 25]
// 하기와 동일
number = [1,2,3,4,5]
square = []
for i in number :
if i>=3 :
square.append(i ** 2)
print (square)
- print() 함수를 이용해 화면으로 출력
- 기본 출력 : 출력 형식을 지정하지 않음
- 형식 지정 출력 : 다양한 형식으로 출력 가능
기본 출력
In : print("Hello World")
Out : Hello World
In : print("Best","Python","Book")
Out : Best Python Book
줄바꿈
- \n : line change
- \t : tab key
여러 출력을 한 줄에
- end=""
print ("Hello Python")
print("Best","Python","Book",sep=".....")
// printed
Hello Python
Best.....Python.....Book
print("James is my friend. \nHe is the best.")
print ("Donnie is free,", end=" ")
print ("That's me.")
Printed: Donnie is free, That's me.
형식 지정 출력
- print ("%type" %variable)
- 문자열보다 숫자에서 더 쓰임
- 위치 지정을 해주고 variable을 출력하라고 지정
print ("{0} {1} {2}".format(data_0, data_2, data_3))
숫자의 출력 형식 지정
데이터 | 출력 형식 | 쳘력 결과 | 설명 |
---|---|---|---|
3 | {N:2d} | []3 | 정수를 공백 포함해 두 자리로 표시 []는 공백 한 칸을 의미함 |
3 | {N:05d} | 00003 | 정수를 다섯 자리로 표시, 앞의 공백은 0으로 채움 |
12 | {N:>5d} | [][][]12 | 정수를 다섯 자리로 표시, 숫자는 오른쪽으로 정렬 |
0.12345 | {N:.3f} | 0.123 | 실수를 소수점 셋째자리까지 표시 |
7456000 | {N:,} | 7,456,000 | 통화 표시처럼 끝에서 셋째자리마다 콤마를 표시 |
0.3258 | {N:.1%} | 32.6% | 소수를 퍼센트로 표시, 퍼센트 소수점 자리수는 '.'의 다음 숫자로 표시 |
92500000000 | {N:.2e} | 9.25e+10 | 숫자를 지수로 표시, 지수 소수점 자리수는 '.'의 다음 숫자로 표시 |
16 | {N:#x} | 0x10 | 숫자를 16진수로 표시, #기호가 없으면 0x 없이 출력됨 |
8 | {N:#o} | 0o8 | 숫자를 8진수로 표시, #기호가 없으면 0o 없이 출력됨 |
2 | {N:#b} | 0b10 | 숫자를 2진수로 표시, #기호가 없으면 0b 없이 출력됨 |
name = "은정"
print ("%s이는 제 이름입니다." %name)
animal_0 = "cat"
animal_1 = "dog"
animal_2 = "fox"
print ("{0}".format(animal_0))
print ("{0}, {1}, {2}".format(animal_0, animal_1, animal_2))
print (1)
print (12345)
//printed : 1
// 12345
print ("{:5d}".format(1))
print ("{:5d}".format(12345))
// printed : 1
// 12345
print ("{:010d}".format(1))
// printed :0000000001
- 키보드로 데이터를 입려갛기 위해서는 input()함수를 이용
- 기본 구조
data = input("문자열")- input() 함수로부터 입력받은 데이터를 print()함수로 출력
In : yourName = input("당신의 이름은?") print("당신은 {}입니다.".format(yourName))
- input() 함수로부터 입력받은 데이터를 숫자로 변환
name = input("당신의 이름은") print("당신은{0} 이군료".format(name)) // Printed : 당신의 이름은 멉니까 // 당신은 멉니까 이군료 age = input("몇살입니까?") print ("{0}살이군요.".format(age)) // Printed : 몇살입니까?29 // 29살이군요. a = input("정사각형 한 변의 길이는?") area = int(a) ** 2 print ("정사각형d의 넓이:" + str(area)) print("정사각형의 넓이:{0}".format(area))