2017 멀티캠퍼스/Python

[Python] #6 파이썬 반복문 while과 제어문

꿈꾸는어린이 2018. 1. 3. 10:58


//

일시 : 2018.01.03 9:00AM ~ 11:00AM

장소 : 멀티스퀘어 12층

내용 : star3 숙제 검사, for문 복습, while문, chap 6 연습문제 풀이

//



HW star3


가로7 x 세로7, 이중 for loop

가로-> (0,0) (1,1)(2,2)(3,3)(4,4)(5,5)(6,6) i==j 일 때, *출력

i = 0, j =6 (6-i)==j 일 때, *출력 if (i==j) or (6-i)==j :

i = 1, j =5

i = 2, j =4

i = 3, j =3

i = 4, j =2

i = 5, j =1

i = 6, j =0

  i, j = 0, 0

for i in range(7):
for j in range(7):
if (i == j) or ((6-i) == j) :
print("*", end=' ')
else :
print(" ", end=' ')
print(" ")


이렇게나 간략한 코드였다니.... 코딩 많이 해보고 생각하는 힘을 길러야겠다.

원래 내가 짠 소스코드;

  
i, j, k= 0, 0, 0

for i in range(0, 7, 1) :
if i <= 2 :
for j in range(0, i, 1):
print(end=' ')
print("*", end=' ')
for j in range(0,(7-2)-(i*2),1):
print(end=' ')
print("*", end=' ')
for j in range(0, i, 1):
print(end=' ')
print(" ")
elif i == 3 :
for j in range(0, i, 1):
print(end=' ')
print("*", end=' ')
for j in range(0, i, 1):
print(end=' ')
print(" ")

else :
k = 7-i-1
for j in range(0, k, 1):
print(end=' ')
print("*", end=' ')
for j in range(0,(7-2)-(k*2), 1):
print(end=' ')
print("*", end=' ')
for j in range(0, k, 1):
print(end=' ')
print(" ")





While문

  • for문과 비교

    for i in range(0, 3, 1):

    ​ print("%d 안녕" % i)

  • i = 0

    while i < 3 :

    ​ print("%d 안녕" % i)

    ​ i+=1

  • 무한루프 하려면 while 조건식 : 에서 조건식부분에 True를 지정, 빠져나오려면 ctrl+c

  • 반복문(for, while)을 제어하기 위해 break

  • break -> 무한 루프를 돌다가 if 문과 함께 특정 조건이 되면 반복문이 빠져나가도록 할 때
  • continue문을 쓰면 남아 있는 코드를 건너뛰고 반복문의 처음으로 돌아감

  • str = "abc" 에서 str은 문자열 객체. str[0], str[1], str[2] 로 참조 가능




실습

하트 출력 프로그램

  
numStr = input("숫자를 여러 개 입력하세요 : ")
heartNum, heartStr = ' ', ' '

i =0
while True :
heartNum = int(numStr[i])
heartStr = ' '
for k in range(0, heartNum) :
heartStr += "\u2665"

print(heartStr)

i+=1
if(i > len(numStr)-1) :
break
  
numStr = input("숫자를 여러개 입력하세요 : ")
i, k, heartNum = 0, 0, 0

while True :
heartNum = int(numStr[i])
for k in range(0, heartNum):
print("\u2665", end=' ')
print("")

i+=1

if (i > len(numStr)-1) :
break



구구단 출력


  
i, dan = 0, 0

dan = int(input("출력할 구구단 단을 입력하시오 : "))

for i in range(1, 10):
print("%d x %d = %d" % (dan, i, (dan*i)))



가로로 출력하는 구구단


  
i, j, guguLine = 0, 0, ' '

for i in range(2, 10):
guguLine += (" # %d단 # " % i)

print(guguLine+"\n")

for i in range(1, 10):
guguLine = ' '
for j in range(2, 10):
guguLine += ("%2d x %2d = %2d " % (j, i, (i*j)))
print(guguLine)
print("")





continue 연습


  print("## 1부터 입력값까지의 3의 배수를 제외하고 더하는 코드입니다.")
num = int(input("값을 입력하시오 : "))
i, sum = 0, 0

for i in range(1, num+1):
if i % 3 == 0 :
continue

sum += i

print("1 ~ %d까지의 합계(3의 배수는 제외) : %d" % (num, sum))