선미 파이썬 0322 9일차
azuremei
필기
#07_repetitive ''' 프로그래밍의 단계 1단계 : 코드가 위에서부터 아래로 쭉 수행 2단계 : 코드가 조건에 따라 이 코드 혹은 저 코드를 수행(조건문>써져있는게 다 수행되지는 않는다.) 3단계 : 코드가 조건에 따라 반복수행 ''' ''' [반복문] (제어문 중 하나) 조건이 만복하면 수행 >몇 번? 언제까지? >>조건이 만족하지 않을때까지(회수는 코드로 설정할 수 있다.) 1. while문 - 조건식이 참이면 수행(if와 동일) -기본 구조는 if와 동같다 >if는 참이면 한 번 수행 >while 참이면 수행 후 다시 조건 비교 후 수행할 수도 있고 아닐수도 있다. [while문의 기본 구조] while 조건식 : 수행문 *반복문 공통 문법 1. break문 : 반복문 탈출(빠져나간다) 2. cuntinue : 더 이상 수행문을 수행하지 않고 수행문이 끝난 뒤 시점으로 돌아감(=점프) while문에서는 조건식으로 점프, 수행문이 다 끝난 뒤 다시 조건문으로 돌아감>while에서 컨티뉴를 사용하면 조건식으로 점프 for문에서는?? ''' ''' print("=========반복문=========") print("[while문") num=0 while num<3 : print("num={}".format(num)) num+=1 # num=num+1 ''' #num의 값을 조절해주지 않으면(변경시켜주지 않으면) 계쏙해서 출력함 #이러한 현상을 무한반복, 무한루프에 빠졌다고 하며 프로그램이 무한히 수행되다 에러가 난다. #이 때 num과 같이 조건식에 들어가는 변수는 조건변수이다. #반복문을 사용할 때는 '''조건변수'''를 유의해서 써야 한다.>>>'''반복문이 끝날 조건이 되도록 코드를 짜자''' #while True : #무한반복 시키는 반복문 # print("무한반복 빠져나가기 : Ctrl+c") #조건식에 들어가는 변수는 조건 비교를 위해 사용되는 변수이다. #미리 변수를 만들어놓지 않ㅇ면 오류가 난다.(if도 동일) #my_num <10 : # 오류! 변수가 없어서 오류가 난다. # print("whlie문!") ''' [일반적인 while문의 사용] while 조건식 : 수행문(반복할 코드+조건변수의 변화식(빠져나갈 코드)) 조건변수는 어라든지 자유롭게 사용가능함, 증가, 감소, 곱셈, 나눗셈 등....빠져나갈 구멍을 잘 생각해서 변화시켜야 함 ''' #반복횟수 지정 ''' count = int( input ("반복횟수 입력 : ")) while count > 0 : print("count = {}".format(count)) count -=1 # count의 값 1 감소 #while문이 끝난 뒤 카운트의 값은 0 #count가 0일 때 (0>0) 조건이 false를 반환 ''' #특정 조건 만족(특정 조건을 만족시킬때까지 반복) ''' num=0 while num !=9 : #num이 9가 아니면 수행 num=int(input("9를 입력하면 정료 : ")) ''' #break문 사용(반복문 탈출) ''' while True : #무한반복 num=int(input("9를 입력하면 정료 : ")) if num == 9 : break # 들여쓰기는 맞춰주자 print("ㅋㅋㅋ") # 와일분의 코드, 수행문 아님 print("ㅋㅋㅋ") 3와일문 바깥 #브레이크를 수행하는 순간 모든 것에서 빠져나옴(앞에 나열한 것도 신경쓰지 않음..) #while문은 위처럼 무한반복 조건을 만들거나 수행문 안에서 빠져 나올 조건을 따로 설정한다. #이게 정석은 아니고 이런식으로 많이 사용한다. #빠져나오는 조건이 복잡할 때 사용.(프로그램의 규모가 많이 커지고 복잡할때) ''' #continue문 사용(와일에서는 조건식으로 점프) num=1 while num<= 10:#(넘이 십 미만이면 수행) print(num) if num%2 ==1 : # num을 2로 나눈 나머지가 1이면(홀수)??????????? continue #컨티뉴를 만나면 다음코드 수행하지 않고 점프 num+=1 #결과창에는 티가 안 나지만 파이썬이 계속해서 컨티뉴를 반복하고 있어서 과부하에 걸릴 염려가 있음 #>시작부터 증가를 시켜 놓고 조건.... #시장부터 조건변경, ??????필기 배껴오고 다른거 찾아보기 #연습 ''' 1. 1부터 10까지 합을 구하기 [출력 결과] 1~10까지 합은 55입니다. 2. 1부터 입력받은 수까지 합을 구하기 [출력 결과] 정수 입력 : 5 1~5까지의 합은 55입니다. 3. 구구단 7단 출력하기 7*1=7 ... =63 4. 입력 받은 단 출력하기 [출력결과] 단 입력 : 5 5*1=5 .... ....=45 5. 입력된 숫자만큼 아래와 같은 모양으로 별찍기 힌트 : 곱셈 연산 활용(파이썬의 특징 활용하기) [출력결과] 숫자 입력: 5 * ** *** **** ***** 6. 숫자맞추기 게임 1~100까지 정답 숫자를 생성 while문 안에서 숫자를 입력받고 그 숫자가 정답이면 탈출 랜덤 만들기 import random 랜덤 만들기 import random answer =random.randint(1, 100) [출력] 정답이 70이라면 정답 숫자 입력 50 더 큰 수를 입력해보세요 정답 숫자 입력 : 80 더 작은 수를 입력해보세요 정답 숫자 : 70 ㅇㅇ회만에 맞추셨습니다 [심화]몇 회만에 맞췄느지도 출력해보 '''
강의노트
# 07_repetitive.py ''' [반복문] 조건이 만족하면 수행한다. 몇 번? 언제까지? --> 조건이 만족하지 않을 때까지... 1. while문 - 조건식이 참이면 수행 (if문과 동일) - 기본 구조는 if문과 같다. > if문 : 참이면 한 번 수행 > while문 : 참이면 수행 후 다시 조건식 비교 [while문의 기본 구조] while 조건식 : 수행문 2. for문 - 내일 * 반복문 공통 1. break문 : 반복문 탈출 (빠져나간다!) 2. continue문 : 더이상 수행문을 수행하지 않고 수행문이 끝난 뒤 시점으로 점프 while문 : 조건식으로 점프 for문 : 내일 ''' print("="*20) print("반복문") print("="*20) print("[while문]") ''' num = 0 # if num < 3 : while num < 3 : print("num = {}".format(num)) num += 1 # num = num + 1 # num의 값을 조절해주지 않으면 반복문이 계속 수행된다! # 이러한 현상을 무한루프, 무한반복에 빠졌다 ''' # 반복문은 잘 다뤄야한다. # 이때, num 과 같이 '조건식'에 들어가는 변수는 '조건변수' # 조건변수를 내가 원하는 수행에 맞게 잘 다뤄야한다. # >> 반복문이 끝날 조건이 되도록 코드를 짠다! ''' while True : # 무한반복시키는 반복문 print("무한반복 빠져나가기 Ctrl+C") ''' # 조건식에 들어가는 변수는 조건비교를 위해 '사용'되는 변수! # 미리 만들어놓지 않으면 오류가 난다. (if문도 동일) # my_num = 0 # 이런식으로 만들어놓아야 한다! ''' while my_num < 10 : print("while문!") ''' ''' [일반적인 while문의 사용] 초기값 (조건변수 생성) while 조건식 : 수행문 (반복할 코드 + 조건변수의 변화식) 조건변수는 얼마든지 자유롭게 사용 가능. 증가, 감소, 곱셈, 나눗셈 등... 빠져나갈 구멍을 잘 생각해서 변화시킨다!! ''' # 반복 횟수 지정 ''' count = int( input("반복 횟수 입력 : ") ) while count > 0 : # count의 값이 0보다 크면 수행! print("count = {}".format(count)) count -= 1 # count의 값 1 감소 # while문이 끝난 뒤 count의 값은 0이다. # count가 0일 때 , (0 > 0) 조건식이 False를 반환했음. ''' # 특정 조건 만족 ''' num = 0 while num != 9 : # num이 9가 아니면 수행! num = int( input("9를 입력하면 종료 : ") ) ''' # break문 사용 (반복문 탈출) ''' while True : # 무한반복 num = int( input("9를 입력하면 종료 : ") ) if num == 9 : break # 들여쓰기는 맞춰준다 (당연) print("ㅋㅋㅋ") # while문의 수행문 print("ㅎㅎㅎ") # 바깥의 코드 (while문 밖) ''' # while문의 경우는 위와 같이, 무한반복 조건으로 만든 뒤, # 수행문 안에서 빠져나올 조건을 따로 설정하여 break로 끝낸다. # 이게 정석은 아니고, 이런식으로 많이 사용한다. # 왜?? --> 빠져나올 조건이 복잡할 때. (이게 편할 수 있다) # continue문 사용 (while문 조건식으로 점프) num = 1 while num < 10 : # num이 10미만이면 수행! #num += 1 # (1) 시작부터 조건변수 값을 변화 if num % 2 == 1 : # num을 2로 나눈 나머지가 1이면, (홀수) num += 1 # (2) 수행문이 끝날 때 조건변수 값을 변화 continue # continue를 만나면 다음코드 수행 X, 점프 print(num) num += 1 # (2) 수행문이 끝날 때 조건변수 값을 변화 # while문 연습 ''' 1. 1부터 10까지 합을 구하기 [출력결과] 1~10까지 합은 55입니다. 2. 1부터 입력 받은 수까지 합을 구하기 [출력결과] 정수 입력 : 5 1~5까지 합은 15입니다. 3. 구구단 7단 출력하기 [출력결과] 7 * 1 = 7 ... 7 * 9 = 63 4. 입력 받은 단 출력하기 [출력결과] 단 입력 : 5 5 * 1 = 5 ... 5 * 9 = 45 5. * 찍기 입력된 숫자만큼 아래와 같은 모양으로 별찍기 hint. 곱셈연산 활용 [출력결과] 숫자 입력 : 5 * ** *** **** ***** 6. 숫자맞추기 게임 1~100까지 랜덤으로 정답숫자 생성 while문 안에서 숫자를 입력 받고, 그 숫자가 정답이면 탈출! [출력결과] (정답이 70이라면) 정답 숫자 입력 : 50 더 큰 수를 입력해보세요. 정답 숫자 입력 : 80 더 작은 수를 입력해보세요. 정답 숫자 입력 : 70 정답입니다! 3회만에 맞추셨습니다! [심화] 몇 회 만에 맞췄는지도 출력해보기 ''' import random answer = random.randint(1, 100) # 1~100 정수 중 하나를 반환