선미 파이썬 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 정수 중 하나를 반환