ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python 기초 #5] 제어문 if, while, for
    Programming 기초/Python 2023. 4. 18. 17:56

    * if 문

    • if 조건문 형식으로, 조건문이 참일 때 아래 문장을 실행한다. 여기서 if 문에 속하는 모든 문장은 같은 너비로 들여쓰기(identation)를 해주어야 한다.
    • 조건문 뒤에는 반드시 콜론(:)이 붙는다.(문법)
    money = 2000
    card = True
    if money >= 3000 and card:
        print("택시를 타고 가라")
    else:
        print("걸어 가라")
    --------------------------------
    걸어 가라

     

    * x in s, x not in s

    in not in
    x in 리스트 x not in 리스트
    x in 튜플 x not in 튜플
    x in 문자열 x not in 문자열

    * pass : 조건문에서 아무 일도 하지 않게 설정하고 싶을 때 

    poket = ['paper', 'money', 'cellphone']
    
    if 'money' in poket:
        pass	# 한 줄일 때는 콜론(:) 옆에 바로 이어서 써도 된다.
    else: print("카드를 꺼내라")  
    ----------------------------------------------

     

    * elif 다양한 조건을 판단할 때

    poket = ['paper', 'cellphone']
    card = True
    
    if 'money' in poket:    # 주머니에 돈이 있으면
        print("택시를 타고 가라1")
        
    elif card:  # 주머니에 돈이 없고 카드가 있으면
        print("택시를 타고 가라2")
        
    else:   #주머니에 돈도 없고 카드도 없으면
        print("걸어 가라")
    -------------------------------------------
    택시를 타고 가라2

     

    * 조건부 표현식

    if score >= 60:
    	message = "success"
    else:
    	message = "failure"

    위 코드에 (가독성을 높이고자 한 줄로 줄이는) 조건부 표현식을 적용하면 아래와 같다.

    조건문이 참인 경우 if 조건문 else 조건문이 거짓인 경우
    message = "success" if score >= 60 else "failure"

     

     * while문

    prompt = """
    1. Add
    2. Del
    3. List
    4. Quit
    
    Enter number: """
    
    number = 0
    while number != 4:	# 4가 아니면 prompt 문자열을 다시 출력한다.
        print(prompt)
        number = int(input())	# input()은 입력받는 함수다.

     

    * break문과 continue문

    - break 문은 while문을 탈출한다.

    - continue문은 처음으로 돌아간다.

    coffee = 10
    while True:
        money = int(input("돈을 넣어주세요 :"))
    
        if money == 300:
            print("커피 한 잔 나왔습니다. 남은 커피 양은 %d 입니다.\n" % (coffee-1))
            coffee -= 1
        elif money <= 300:
            print("돈이 부족합니다. 금액을 반환합니다.\n")
            continue	# 맨 처음으로 돌아간다.
        else:
            print("커피 한 잔 나왔습니다.")
            print("남은 커피 양은 %d 입니다. 거스름돈 : %d를 반환합니다.\n" % (coffee-1, money-300))
            coffee -= 1
        if coffee == 0:
            print("재고가 소진됐습니다. 판매를 종료합니다.")
            break	# while문을 탈출한다.
    ---------------------------------------------------------
    돈을 넣어주세요 :200
    돈이 부족합니다. 금액을 반환합니다.
    
    돈을 넣어주세요 :300
    커피 한 잔 나왔습니다. 남은 커피 양은 9 입니다.
    
    돈을 넣어주세요 :400
    커피 한 잔 나왔습니다.
    남은 커피 양은 8 입니다. 거스름돈 : 100를 반환합니다.
    
    ...
    ...
    ...
    
    돈을 넣어주세요 :1000
    커피 한 잔 나왔습니다.
    남은 커피 양은 0 입니다. 거스름돈 : 700를 반환합니다.
    
    재고가 소진됐습니다. 판매를 종료합니다.

     

    *for문

    리스트나 튜플, 문자열의 첫 번째 요소부터 마지막 요소까지 차례로 변수에 대입된다.

    a = [(1, 2), (3, 4), (5, 6)]
    for i in a:	# a의 요소를 순서대로 i에 대입
        print(i)
        
    for (first, last) in a:	#a 리스트의 요솟값이 튜플이기 때문에 각각의 요소가 자동으로 (first, last)변수에 대입된다.
        print(first + last)
    -----------------------
    (1, 2)
    (3, 4)
    (5, 6)
    3
    7
    11

     

    * for문과 함께 자주 사용하는 ragne 함수

    - range 함수 : 숫자 리스트를 자동으로 만들어 주는 함수

    - range(시작 숫자, 끝 숫자, 간격)

    a = range(5)	# range(끝 숫자) 
    print(a)
    print(a[2])
    
    a = range(1, 10)[4]
    print(a)
    
    a = range(1, 10, 2)
    print(a[3])
    -----------------------
    range(0, 5)
    2
    5
    7

     

    * range(), len(), continue문을 활용한 예시

    - len함수 : 리스트 안의 요소 개수를 돌려주는 함수

    marks = [90, 25, 67, 45, 80]
    for number in range(len(marks)):    # len()은 리스트 안의 요소 개수를 반환한다.
        if marks[number] < 60:
            continue  # 점수가 60점 미만이면 맨 처음으로 돌아간다.
        print("%d번 " % (number+1), end="")  # end=""를 붙이면 다음줄로 넘기지 않고 이어서 출력한다.
    print("학생 축하합니다.")
    print("Congratulation!!")
    ------------------------------
    1번 3번 5번 학생 축하합니다.
    Congratulation!!

     

    * List comprehension(리스트 내포)

    [표현식 for  항목1 in 반복 가능 객체1 if 조건1
                 for  항목2 in 반복 가능 객체2 if 조건2
                 for  항목n in 반복 가능 객체n if 조건n]
    a = [1, 2, 3, 4]
    result = [num*3 for num in a if num % 2 == 0]
    print(result)
    ----------------------------
    [6, 12]
    # 구구단의 모든 결과
    result = [x*y for x in range(2, 10)
              for y in range(1, 10)]
    print(result)
    -------------------------------------
    [2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 4, 8, 12, 16, 20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45, 6, 12, 18, 24, 30, 36, 42, 48, 54, 7, 14, 21, 28, 35, 42, 49, 56, 63, 8, 
    16, 24, 32, 40, 48, 56, 64, 72, 9, 18, 27, 36, 45, 54, 63, 72, 81]

     

    댓글

Designed by Tistory.