-
[부스트코스] 모두를 위한 파이썬(PY4E) 3주차 루프와 반복문PYTHON/부스트코스 PY4E 2022. 9. 14. 00:38728x90
2주차는 5. 루프와 반복문에 대해 학습했다
05. <루프와 반복문>
핵심 키워드 미리보기
반복문
while 루프 break continue
for 루프
**모든 반복문은 if 조건식과 마찬가지로 들여쓰기를 사용해서 조건을 나타낸다
While 루프
위에 코드를 해석해보면
n >0 동안 계속 실행해라 (즉, n=0이면 루프가 멈춤)
n을 출력해라
n-1을 해라
계속 n-1이 반복되다가 n이 0이되는 순간 멈추게 된다
멈추면 Blastoff!가 출력되고 마지막으로 0이 출력된다
break
예시 코드와 함께 break는 언제 쓰이는지 살펴보자
While True: 라는 뜻은 계속 반복하라는 뜻이다
그렇기때문에 해당 코드는 오류를 발생시키지 않으면 멈추지 않는다
하지만 아래 코드에서 done을 입력하면 break는 해당식을 멈추고 해당식 바깥으로 가서 맨마지막을 수행하라는 뜻이다
그래서break 입력시 수행이 중단된다
그리고 루프를 빠져나와 맨 마지막으로 가니까 Done!이 출력된다
continue
예시 코드와 함께 continue는 언제 쓰이는지 살펴보자
#을 입력시 continue를 해라라고 나와있다
continue는 아래 식을 다 무시하고 처음으로 돌아가서 계속해라라는 뜻이다
그래서 #을 입력하자 아무것도 출력되지 않고 다시 입력하라고 뜬다
#이나 done 외의 문자를 입력시 해당 줄을 수행한다
done은 아까 위에 코드와 마찬가지로 break니까 루프를 빠져나와 마지막 줄로 가서 출력한다
for 루프
for문도 while문처럼 반복할 때 쓴다
위에 코드를 보면 for i in [5,4,3,2,1]:은 [5,4,3,2,1]을 다 사용할 때까지 반복하라는 것이다
i자리에는 어떤 문자를 써도 되고 심지어 필요없는경우 _ 만 적고 비워놓을 수도 있다
왜냐하면 i자리에 [5,4,3,2,1]이 차례로 들어가서 i는 의미가 없기 때문이다
그래서 출력문을 보면 5,4,3,2,1차례로 다 출력 후 루프에서 나온 뒤 마지막 출력물 Blastoff!가 나온 것을 볼 수 있다
또다른 for문 코드를 살펴보자
이번에는 직접 리스트를 넣지 않고 리스트를 변수에 주고 변수를 이용해서 코드를 만들었다
리스트에 대해서는 다른 강의에서 살펴보도록 하겠다
friends에 리스트를 주고 for friend in friends:를 이용해 반복했다
['Connect', 'Korea', 'NHN']를 friend에 하나씩 넣으라는 얘기다그리고 Happy New Year!! friend를 반복해서 출력해라라는 뜻이다모든 반복이 끝나면 루프를 빠져나와 마지막 줄이 시행된다<08.리스트강의 들으러 가기>모두를 위한 파이썬 (PY4E)
부스트코스 무료 강의
www.boostcourse.org
반복문 응용
반복문을 활용해서 가장 큰 수 찾기
-1과 다른 수들을 하나씩 차례로 비교해서 가장 큰 수를 찾아낸다
만약 이전에 가장 큰 값보다 크면 largest_so_far에 넣고 아니면 그냥 넘어간다
그리고 마지막으로 가장 큰 수를 출력해준다
반복문을 활용해서 숫자 개수세기
숫자개수를 세어줄 zork를 0으로 초기화한다
numbers가 하나씩 들어갈 때마다 zork는 1씩 증가한다
하나씩 나열해서 보여주고 마지막에 최종 개수를 보여준다
3주차 미션부터는 난이도가 어려웠다
3주차에 주어진 미션도 2주차와 마찬가지로 총 4가지 문제였다
Q1. 숫자를 입력 받고 그 숫자의 구구단을 출력하는 함수를 만들어 봅시다. 다만 아래의 조건을 만족해 주세요.
더보기def gugudan(number): #구구단 함수 정의print("몇단?:",number) #입력받은 값 출력for i in [number]: #해당 숫자 출력for j in range(1, 10, 2): #홀수만 곱함if i*j < 50:#곱한 값이 50이하일때만 출력print(i, "x" ,j, "=",i*j)number = int(input("몇단?:")) #숫자 입력받기gugudan(number)Q2. 가위바위보 업그레이드 버젼을 함수로 만들어 봅시다. 아래와 같은 조건을 만족해 주세요.
더보기import random#변수 횟수 0으로 지정해놓기YouWin = 0ComWin = 0Draw = 0
#반복 횟수 입력받기num = int(input("몇판을 진행하시겠습니까?:"))#반복문for i in range(1,num+1):#사용자 입력you = input("(가위(0), 바위(1), 보(2)) 중에서 하나를 선택하세요: ")if not(you == "가위" or you == "바위" or you == "보") :print("다시입력하세요")break#랜덤값 지정하기number = random.randint(0,2)if(number == 0):com = "가위"if(number == 1):com = "바위"if(number == 2):com = "보"#사용자와 컴퓨터의 입력 확인print("나: ", you, "컴퓨터: ", com)
#승패 결과 출력if (you == com):print("비겼음!")Draw+=1elif(you == "바위" and com == "보"):print("컴퓨터의 승리!")ComWin+=1elif(you == "가위" and com == "바위"):print("컴퓨터의 승리!")ComWin+=1elif(you == "보" and com == "가위"):print("컴퓨터의 승리!")ComWin+=1elif(you == "보" and com == "바위"):print("나의 승리!")YouWin+=1elif(you == "바위" and com == "가위"):print("나의 승리!")YouWin+=1elif(you == "가위" and com == "보"):print("나의 승리!")YouWin+=1print("나:",you)print("컴퓨터:",com)# 전적 확인print("나의 전적: 승:",YouWin,"무:",Draw," 패:",ComWin)print("컴퓨터의 전적: 승:",ComWin,"무:",Draw," 패:",YouWin)Q3. 2개의 숫자를 입력하여 그 사이에 짝수만 출력하는 함수를 만들어 봅시다. 그리고 중앙값도 함께 출력 해봅시다.(단, 중앙값이 짝수가 아닐 경우에는 중앙값은 출력을 하지 않고, 짝수인 수만 출력한다)
더보기def find_even_number(n,m):for find_even_number in range(n ,m+1): # 두 수 사이범위if find_even_number % 2 == 0: #2로 나눠서 0인 경우if find_even_number == mid: #중앙값이 짝수 인 경우 중앙값 출력print(mid,"중앙값")print(find_even_number,"짝수")n = int(input("첫번째 숫자 입력:")) #첫번째 숫자 받기m = int(input("두번째 숫자 입력:")) #두번째 숫자 받기mid = int((n+m)/2) #두수의 중앙값find_even_number(n,m)Q4. 2개의 숫자를 입력하여 그 사이에 소수가 몇 개인지 출력하는 함수를 만들어 봅시다.
https://codingdojang.com/scode/503?orderby=time&langby=python
코딩도장
프로그래밍 문제풀이를 통해서 코딩 실력을 수련
codingdojang.com
지난 미션에서 가장 복잡하다고 생각했던 가위바위보 문제는 응용을 하도록 문제가 출제되었다
각각 문제마다 조건들이 있어서 조건을 충족시키는 것이 까다로웠다
그래서 아무리 생각해도 모르겠는 문제는 조건 생각하지 않고 작동만 할 수 있게 간신히 구현해서 제출했다
다른 팀들 미션을 보면서 대단하다고 느꼈다
<05.루프와 반복문 강의 들으러 가기>
https://www.boostcourse.org/cs122/lecture/315087?isDesc=false
모두를 위한 파이썬 (PY4E)
부스트코스 무료 강의
www.boostcourse.org
<오늘 올린 코드 자료>
https://colab.research.google.com/drive/1pTz7k2QjUMHsxUqutBzhyqXlMzXL0yOi?usp=sharing
부스트코스 py4e 3주차
Colaboratory notebook
colab.research.google.com
<미션문제 코드만 모아보기>
mission3
Colaboratory notebook
colab.research.google.com
'PYTHON > 부스트코스 PY4E' 카테고리의 다른 글
[부스트코스] 모두를 위한 파이썬(PY4E) 5주차 리스트 (0) 2022.09.28 [부스트코스] 모두를 위한 파이썬(PY4E) 4주차 문자열,파일 (0) 2022.09.22 [부스트코스] 모두를 위한 파이썬(PY4E) 2주차 조건부 실행, 함수 (0) 2022.09.13 [부스트코스]PY4E 수료증 인증 (0) 2022.08.30 [부스트코스] 모두를 위한 파이썬(PY4E) 1주차 파이썬?, 변수, 표현식 (0) 2022.08.30